Difference between revisions of "Fcitx (简体中文)"

From ArchWiki
Jump to: navigation, search
(安装 FCITX: fcitx-im)
(疑难杂症)
Line 134: Line 134:
 
  "xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:th:zh"
 
  "xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:th:zh"
 
{{warning|升级gtk相应模块时有可能会重新生成此文件,此时请重新编辑该文件.}}
 
{{warning|升级gtk相应模块时有可能会重新生成此文件,此时请重新编辑该文件.}}
 +
 +
* '''Ctrl + ; 会调出fcitx的粘贴插件'''
 +
严格的说, 这不是一个问题, Ctrl + ; 会覆盖很多用户自己的快捷键. (emacs用户居多). 并且, 由于这不是一个输入法的基本功能, 所以在升级fcitx 4.2.7后会不知道是何程序覆盖了自己的快捷键. 关闭这个插件的方法为修改文件: /usr/share/fcitx/addon/fcitx-clipboard.conf
 +
设置为: 
 +
  Enabled=False
  
 
== 外部资源 ==
 
== 外部资源 ==

Revision as of 08:31, 28 February 2013

Fcitx (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台(即原来的 G 五笔),包括五笔、拼音(全拼和双拼)、二笔、区位等输入模块,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。

安装 FCITX

fcitx 在 [community] 库中,可以通过 Pacman 来安装:

为了在 gtk 与 qt 程序中获得良好的输入体验(例如光标跟随与显示预编辑字符串)并避免一些 xim 无法解决的 bug, 请根据需要安装对应的输入法模块: fcitx-gtk2, fcitx-gtk3 以及 fcitx-qt. 若要一次性安装 Fcitx 主程序和相关的模块,可使用此命令:

 pacman -S fcitx-im

使用 FCITX 输入中文

使用 FCITX 之前,你必须先进行一些环境设定:

  • 如果你采用 KDM、GDM、LightDM 等显示管理器,请在~/.xprofile (没有则新建一个)中加入如下3行,如果你采用 startx 或者 Slim 启动 (即使用.xinitrc的场合),则在 ~/.xinitrc 中加入:
 export GTK_IM_MODULE=fcitx
 export QT_IM_MODULE=fcitx
 export XMODIFIERS="@im=fcitx"

以上设置使用了fcitx提供的gtk/qt输入法模块, 请根据需要安装 fcitx-gtk2, fcitx-gtk3 以及 fcitx-qt.

你可以选择在gtk/qt程序中使用xim, 为此你可以将上面的环境变量的对应设置改成如下的值

 export GTK_IM_MODULE=xim
 export QT_IM_MODULE=xim
Warning: 使用xim输入很可能会遇到一些包括不能输入, 没有光标跟随, 重启输入法时应用程序卡死在内的无法由fcitx解决的问题. 对于在使用xim时遇到的这些问题, fcitx无法提供任何支持.
  • 重新登录后让环境变量生效。

如果你使用 XDG 兼容的桌面环境如 KDE, GNOME, XFCE, LXDE, 当你重新登录后,Fcitx 应该会自动启动,如果没有的话,可以打开控制台并运行:

  fcitx

为检验 fcitx 是否正常运行, 打开一个程序,比如 leafpad, 按 CTRL+Space 激活 Fcitx 并试着输入几个字。

如果 Fcitx 没有随桌面环境自动启动或者希望修改fcitx启动参数,请用桌面环境提供的自动启动工具配置或者编辑用户目录~/.config/autostart/下的fcitx-autostart.desktop文件确认自动启动是否被禁用. 如果用户目录下的文件尚不存在, 你可以复制自动启动文件 /etc/xdg/autostart/fcitx-autostart.desktop 到用户目录

cp /etc/xdg/autostart/fcitx-autostart.desktop ~/.config/autostart/

如果你使用的桌面环境不自动支持xdg的自动启动设置, 请在你使用的启动脚本里面添加

 fcitx

以实现自动启动

当ibus等其它输入法程序同时启动且开启了xim支持时, 可能会造成fcitx启动失败, 请确认禁用了其它输入法程序的自动启动.

全局配置说明

Fcitx 提供了图形界面的配置程序,你可以安装他们:kcm-fcitx(基于KDE 的 kcm), fcitx-configtool(基于 gtk3), 或者从 AUR 安装 fcitx-configtool-gtk2AUR(基于 gtk2, 不支持)。

桌面环境整合

Gnome-Shell

你可以在 AUR 安装 gnome-shell-extension-kimpanel-gitAUR, 它提供了类似 ibus-gjs 的用户体验.

KDE

你可以安装 kcm-fcitx 以及 kdeplasma-addons-applets-kimpanel.

快捷键

默认快捷键

 Ctrl+Space 激活输入法
 左Shift    临时切换到英文
 Ctrl+Shift 输入法间切换
 -/=        向前/向后翻页

你可以在配置界面的全局配置中修改这些快捷键

禁用输入法

或许你并不希望看到一些输入法,比如双拼。那么你可以在配置界面里禁用相应的输入法

扩充拼音词库

用户配置拼音词库是在~/.config/fcitx/pinyin下,其中pybase.mb是拼音单字库 pyphrase.mb拼音词库(如果这两文件没有,那么fcitx就读取此目录/usr/share/fcitx/pinyin),将你下载的词库放置到此目录后,重启(ctrl+5)fcitx就可以了。

mv pybase.mb pyphrase.mb ~/.config/fcitx/pinyin/

Vim

如果你经常在vim下使用fcitx,可以安装fcitx.vim。或者简单地在~/.vimrc添加如下代码,可实现退出插入模式时,关闭fcitx;进入插入模式时,启用fcitx:

"##### auto fcitx  ###########
let g:input_toggle = 1
function! Fcitx2en()
   let s:input_status = system("fcitx-remote")
   if s:input_status == 2
      let g:input_toggle = 1
      let l:a = system("fcitx-remote -c")
   endif
endfunction

function! Fcitx2zh()
   let s:input_status = system("fcitx-remote")
   if s:input_status != 2 && g:input_toggle == 1
      let l:a = system("fcitx-remote -o")
      let g:input_toggle = 0
   endif
endfunction

set ttimeoutlen=150
"退出插入模式
autocmd InsertLeave * call Fcitx2en()
"进入插入模式
autocmd InsertEnter * call Fcitx2zh()
"##### auto fcitx end ######

要注意的是,由于要调用外部程序,这将明显拖慢会反复进出插入模式的映射。建议改写这样的映射。使用带 Python 支持的 Vim 配合 fcitx.vim 亦可改善这种情况。

疑难杂症

  • 注意:

当LC_CTYPE为英文时, 会出现Emacs下无法使用输入法的情况, 如出现此情况, 请在启动Emacs时将LC_CTYPE设为zh_CN.UTF-8. (终端下使用emacs无此问题, 输入法会由终端程序处理).

  • 输入法模块
Warning: 即使未安装输入法模块, 一般还是可以在大部分程序中使用输入法, 不过很可能出现从无法光标跟随, 无法显示预编辑字符串, 到无法输入甚至程序卡死等情况. 如无特殊情况请安装全部输入法模块

如果你已经将IM MODULE设定为fcitx且遇到了无法激活输入法的问题, 请根据出现问题的程序检查对应的输入法模块包是否已经安装

部分程序无法使用gtk/qt的输入法模块, 如果你需要使用这些程序, 请注意xim设置以及xim下可能遇到的以上问题. 这些程序包括: 所有不使用gtk/qt的程序(如使用tk, motif, 或者直接使用xlib的程序), emacs, opera, openoffice, libreoffice, skype

  • 火狐右键和菜单无法弹出的问题

firefox升级到13后可能与xim发生冲突造成菜单无法弹出等问题,解决办法是把环境配置文件中的

 export GTK_IM_MODULE=xim
 export QT_IM_MODULE=xim

换成

 export GTK_IM_MODULE=fcitx
 export QT_IM_MODULE=fcitx
  • Ctrl + Space 在GTK2程序中无法调出输入法

locale为英文时,有可能会出现在GTK2程序中无法用Ctrl+Space键调出输入法,此时应该手动进行如下设置( FAQ)

gtk-query-immodules-2.0 > /etc/gtk-2.0/gtk.immodules
#编辑 gtk.immodules,找到类似于以下的行,并如下添加 en:
"xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:th:zh"
Warning: 升级gtk相应模块时有可能会重新生成此文件,此时请重新编辑该文件.
  • Ctrl + ; 会调出fcitx的粘贴插件

严格的说, 这不是一个问题, Ctrl + ; 会覆盖很多用户自己的快捷键. (emacs用户居多). 并且, 由于这不是一个输入法的基本功能, 所以在升级fcitx 4.2.7后会不知道是何程序覆盖了自己的快捷键. 关闭这个插件的方法为修改文件: /usr/share/fcitx/addon/fcitx-clipboard.conf 设置为:

 Enabled=False

外部资源