Fcitx (简体中文)
Fcitx (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台(即原来的 G 五笔),包括五笔、拼音(全拼和双拼)、二笔、区位等输入模块,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。
Contents |
安装 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-qt4和fcitx-qt5.
你可以选择在gtk/qt程序中使用xim, 为此你可以将上面的环境变量的对应设置改成如下的值
export GTK_IM_MODULE=xim export QT_IM_MODULE=xim
- 重新登录后让环境变量生效。
如果你使用 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-gtk2(基于 gtk2, 不支持)。
替换自带的经典界面
Fcitx 支持使用 kimpanel 协议的界面,以提供更好的桌面整合.
Gnome-Shell
你可以在 AUR 安装 gnome-shell-extension-kimpanel-git, 它提供了类似 ibus-gjs 的用户体验 (候选框界面将会采用 Gnome-Shell 的主题风格, 同时在状态栏中增加 fcitx 的输入法状态图标).
KDE
您可以安装 kdeplasma-addons-applets-kimpanel 使用 plasma 作为输入法界面, 候选框风格将与plasma主题保持一致.
独立 kimpanel 界面
目前作为独立程序运行的 kimpanel 界面有 kimtoy 以及 gimpanel (作者没有进一步开发的打算且尚未打包). 其中 kimtoy 可以使用搜狗输入法的皮肤文件(目前linux环境下唯一能使用搜狗输入法皮肤的程序)和fcitx自身的皮肤文件.
配置 fcitx
配置输入法
您可以在配置界面中设置启用的输入法. 列表中的第一个输入法将作为"未激活"状态使用, 请遵从界面上的提示将列表中的此项设为键盘布局输入法 (键盘 - 英文). 列表中的第二项将作为您的默认输入法. 您同样可以在这里通过从列表中移除禁用不希望在切换列表中看到的输入法.
快捷键
部分常用默认快捷键
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/
第三方拼音输入法
在提供自带的拼音输入法的同时, fcitx 同样支持流行的第三方拼音输入法以提供更好的整句输入效果. 在 fcitx 支持的拼音输入法中, 内置拼音响应速度最快, fcitx-sunpinyin 的综合效果最好, fcitx-libpinyin 采用了比 sunpinyin 先进的算法但是尚有很多 bug 而且欠缺良好的词库.
使用云拼音
fcitx-cloudpinyin可以提供云拼音输入的支持, 支持fcitx下的全部拼音输入法, 安装后重启 fcitx 即会自动启用, 所选的云拼音输入结果会自动添加到当前输入法的词库中.
启用云拼音后, 从云拼音获得的候选词会默认添加到候选词列表中的第二个, 添加位置可以通过云拼音的设置配置. 如果云拼音的结果和本地输入法给出的结果一致,云拼音后选项会和本地产生的候选项自动合并,不会产生重复的候选项。
不推荐将云拼音候选词设为第一个候选词, 如果网络情况不好,没有及时返回云拼音结果,那么云拼音结果将默认降到第二候选词的位置。这个过程可能会涉及到默认候选词的改变,如果您使用的网络情况不够好,请酌情考虑云拼音结果默认候选顺序。
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无此问题, 输入法会由终端程序处理).
Emacs默认fontset会使用"-*-*-*-r-normal--14-*-*-*-*-*-*-*"字体(terminus、75dpi等等,可以通过`xlsfonts'命令查看),如果你没有匹配的字体,fcitx将不能呼出。
- 输入法模块
如果你已经将IM MODULE设定为fcitx且遇到了无法激活输入法的问题, 请根据出现问题的程序检查对应的输入法模块包是否已经安装
部分程序无法使用gtk/qt的输入法模块, 如果你需要使用这些程序, 请注意xim设置以及xim下可能遇到的以上问题. 这些程序包括: 所有不使用gtk/qt的程序(如使用tk, motif, 或者直接使用xlib的程序), emacs, opera, openoffice, libreoffice, skype
- 火狐右键和菜单无法弹出的问题
firefox升级到13后可能与xim发生冲突造成菜单无法弹出等问题,解决办法是确定安装了 fcitx-gtk2 并且把环境配置文件中的
export GTK_IM_MODULE=xim
换成
export GTK_IM_MODULE=fcitx
- Ctrl + Space 在GTK2程序中无法调出输入法
locale为英文时,有可能会出现在GTK2程序中无法用Ctrl+Space键调出输入法,请确认 fcitx-gtk2 已安装且 GTK_IM_MODULE 已设置.
- Ctrl + ; 会调出fcitx的粘贴插件
严格的说, 这不是一个问题, Ctrl + ; 会覆盖很多用户自己的快捷键. (emacs用户居多). 并且, 由于这不是一个输入法的基本功能, 所以在升级fcitx 4.2.7后会不知道是何程序覆盖了自己的快捷键. 关闭这个插件的方法为修改文件: 在配置界面中禁用剪贴板插件或更改其激活快捷键