Fcitx (简体中文)
Fcitx (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台(即原来的 G 五笔),包括五笔、拼音(全拼和双拼)、二笔、区位等输入模块,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。
安装
安装位于 Official repositories (简体中文) 里的 fcitx.
输入法
第三方拼音输入法
Fcitx 同样支持流行的第三方拼音输入法以提供更好的整句输入效果. 在 Fcitx 支持的拼音输入法中,内置拼音响应速度最快,fcitx-sunpinyin 在输入速度和输入精度之间有较好的平衡,fcitx-libpinyin 算法比 sunpinyin 先进。其它的还有:
- fcitx-rime, 即著名中文输入法 Rime 的 Fcitx 版本。但它不支持 Fcitx 本身的 #特殊符号 和 #快速输入 功能,自定义设置请参见官方,
- fcitx-googlepinyin, Google 拼音输入法 for Android.
- fcitx-sogoupinyinAUR, 搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输入。官方网址
云拼音
fcitx-cloudpinyin 可以提供云拼音输入的支持,支持 Fcitx 下的所有拼音输入法,Fcitx-rime 除外。安装后重启 Fcitx 即可,所选的云拼音输入结果会自动添加到当前输入法的词库中。 提醒:建议在fcitx设置里面将“云拼音来源”由Google改为“百度”,Google国内访问不是很顺畅。
启用云拼音后,从云拼音获得的候选词会默认添加到候选词列表中的第二个,显示位置可以通过云拼音的设置配置。如果云拼音的结果和本地输入法给出的结果一致,云拼音后选项会和本地产生的候选项自动合并,不会产生重复的候选项。
若安装fcitx-cloudpinyin后,在配置程序里却没有看见云拼音,记得勾上“高级”复选框。这时云拼音会显示出来,再勾上云拼音。
异国语言输入引擎
- fcitx-anthy, 为 Fcitx 添加 anthy (日语) 输入引擎支持。
- fcitx-chewing, 为 Fcitx 添加 chewing (繁体中文注音) 输入引擎支持。
- fcitx-hangul, 为 Fcitx 添加 hangul (韩语) 输入引擎支持。
- fcitx-m17n, 为 Fcitx 添加 m17n (多国语言码表) 输入引擎支持。
- fcitx-mozc, 为 Fcitx 添加 mozc (日语) 输入引擎支持,mozc 是 Google 日语输入法的开源版本。
- fcitx-unikey, 为 Fcitx 添加 unikey (越南语) 输入引擎支持。
- fcitx-sayura, 为 Fcitx 添加 sayura (僧伽罗语) 输入引擎支持。
输入法模块
Fcitx 提供对 Gtk+/Qt 提供了输入法模块,请根据需要安装 fcitx-gtk2, fcitx-gtk3, fcitx-qt4 和 fcitx-qt5. 多软件包 fcitx-im 打包了全部.(现在已经包括 fcitx-qt5).
某些程序不使用 Gtk+/Qt 的输入法模块,这些程序包括:
- 所有不使用 Gtk+/Qt的程序,如使用 Tk, motif, 甚至 xlib 的程序
- Emacs
- Opera
- OpenOffice
- LibreOffice
- Skype
- Wine
- Java
- Xterm
- urxvt
- WPS
其它
- fcitx-ui-light, Fcitx 的轻量 UI.
- fcitx-fbterm[broken link: archived in aur-mirror], Fbterm 对 Fcitx 的支持。
- fcitx-table-extra Fcitx 的一些额外码表支持,包括仓颉 3, 仓颉 5, 粤拼, 速成, 五笔, 郑码等等
- fcitx-table-other, Fcitx 的一些更奇怪的码表支持,包括 Latex, Emoji, 以及一大堆不明字符等等。
- kcm-fcitx, KDE 的 Fcitx 输入法模块。
您还可以在 Arch User Repository (简体中文) 找到更多以上软件包的 Git 版以及其它。
使用
桌面环境
如果您用 XDG 兼容的桌面环境,比如 KDE, GNOME, Xfce, LXDE, 那么当您安装好 Fcitx 并重新登录后,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
以实现自动启动。
非桌面环境
使用 Fcitx 之前,您必须先设置一些环境设定变量:
如果您用 KDM, GDM, LightDM 等显示管理器,请在 ~/.xprofile
中加入以下代码;如果您用 startx
或者 Slim 启动,即使用 .xinitrc
的场合,则改在 ~/.xinitrc
中加入:
export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx
重新登录后让环境变量生效。
Xim
您还可以在 Gtk+/Qt 程序中用 xim, 为此您要将 #非桌面环境 里的环境变量改成如下的值:
export GTK_IM_MODULE=xim export QT_IM_MODULE=xim
重新登录后让环境变量生效。
配置
配置工具
Fcitx 提供了若干图形界面的配置程序:基于 KDE 之 kcm 的 kcm-fcitx, 基于 GTK+3 的 fcitx-configtool, 或者来自 AUR, 基于 GTK+2, 但不被官方支持的 fcitx-configtool-gtk2AUR[broken link: archived in aur-mirror]。
安装完配置工具fcitx-configtool之后打开配置工具的方法是用终端运行fcitx-config-gtk3,打开这个配置工具之后还要添加中文输入法。
添加中文输入法的方法是在第一个标签,点下面的加号,然后它默认本身是勾选了之显示当前语言的输入法的(Only Show Current Language),因为一般按照默认的方法安装Archlinux的是英文语言,在这种状态下是找不到中文输入法的,一定要先取消勾选这个选项,然后才能在上面的列表中找到中文输入法(可能叫Pinyin, Libpinyin之类的)。然后添加这个才会有中文输入法。
如果要手工编辑 fcitx 的配置文件,请确保系统中并没有在运行 fcitx ,否则手工编辑的配置内容可能丢失。
替换自带的经典界面
Fcitx 支持使用 kimpanel 协议的界面,以提供更好的桌面整合体验.
Gnome-Shell
您可以在 AUR 安装 gnome-shell-extension-kimpanel-gitAUR, 它提供了类似 ibus-gjs 的用户体验,其候选框界面将会采用 Gnome-Shell 的主题风格, 同时在状态栏中增加 Fcitx 的输入法状态图标。
KDE
- 您可以安装 kdeplasma-addons-applets-kimpanel[broken link: package not found], 其用 plasma 作为输入法界面, 候选框风格将与 plasma 主题保持一致。
- 目前有 kimtoy,它都可以使用搜狗输入法和 Fcitx 本身的皮肤。
输入法
您可以在配置界面工具中添加/移除启用的输入法。列表第一项将作为「未激活」状态使用,请遵从界面上的提示将列表中的此项设为键盘布局输入法,比如「(键盘 - 英文)」,列表第二项则是默认输入法,其它项则为可切换到的输入法。
扩充内置拼音词库
用户配置拼音词库在 ~/.config/fcitx/pinyin
, 其中 pybase.mb
为拼音单字库,pyphrase.mb
为拼音词库。如果这两文件并不存在,直接将您下载的词库放置到 /usr/share/fcitx/pinyin
. 重启 Fcitx 即可。
皮肤
下载皮肤并解压缩到下面任一目录,如果没有可以新建目录:
/usr/share/fcitx/skin ##全局设置 ~/.config/fcitx/skin #特定用户设置
提示与技巧
快捷键
部分常用默认快捷键:
- Ctrl + Space 激活输入法
- 左Shift 临时切换到英文
- Ctrl + Shift 输入法间切换
- -/= 向前/向后翻页
- Shift + Space 全角、半角切换
Vim
如果您经常在 Vim 下使用 Fcitx, 可以安装 vim-fcitxAUR 插件,或者在 ~/.vimrc
添加如下代码。以退出插入模式时,自动关闭 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 ######
剪贴板
Fcitx 自带剪贴板,其快捷键为 Ctrl + ;
, 小小功能拯救世界。
特殊符号
创建 ~/.config/fcitx/data/pySym.mb
, 文件内容示范如下:
#第一个字符为“#”的行是注释 #格式:编码 符号 #编码只能为小写字母,经拼音解析后最长为10(如py为2,pinyin也为2) #数学符号 sxfh + sxfh - sxfh < sxfh = sxfh > sxfh ± sxfh × sxfh ÷ sxfh ∈ sxfh ∏ sxfh ∑ sxfh ∕ sxfh √ sxfh ∝
直接输入某编码,可以匹配出对应的特殊符号。
快速输入
确保在 ~/.config/fcitx/config
里把 SemiColonAction
修改为 QuickPhrase
.
创建 ~/.config/fcitx/data/QuickPhrase.mb
, 文件内容示范如下:
#第一个字符为“#”的行是注释 #格式:编码 符号 #数学符号 dianhua 123456789 youbian 123456 dizhi 中华人民共和国北京市长安街一号 aowu ┗<(=`O′=)>┛ mobai m<(_ _)>m baobao <(=′▽')爻 (`▽`=)> baobao <(=*′д`)爻(′д`*=)> qiangbi ▄︻┻┳═一…… ☆<(= ̄□ ̄=!)>
按 ;
并输入编码,可实现快速输入,自然也能用来当 颜文字库。
故障排除
首先诊断问题所在
当你遇到任何 fcitx 有关的问题,比如 ctrl+space 在有的程序中不能工作,首先应该用 fcitx-diagnose
命令诊断问题的原因。
fcitx-diagnose
会列出所有 fcitx 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。
在网上(比如在 irc 或者论坛里)询问别人关于 fcitx 配置的问题时,也请首先提供你的 fcitx-diagnose
输出结果(比如贴到 pastebin 服务),这将加速别人帮你找到问题所在。
Emacs 无法使用输入法
当 LC_CTYPE
为英文时, 在 Emacs 上可能无法使用输入法。若遇到此情况,请在启动 Emacs 时将 LC_CTYPE
设为 zh_CN.UTF-8
. 终端下并不会遇到此现象,因为输入法会交给终端程序处理。
Emacs 默认 fontset 会使用 "-*-*-*-r-normal--14-*-*-*-*-*-*-*" 字体 (terminus, 75dpi 等等,可以通过 xlsfonts
命令查看),如果您并没有匹配的字体,无法呼出 Fcitx.
Firefox 右键菜单不弹出
Firefox 升级到 13 后可能与 xim 发生冲突,害得菜单没法弹出,解决办法是确定安装了 fcitx-gtk2 并且把环境配置文件中的
export GTK_IM_MODULE=xim
换成
export GTK_IM_MODULE=fcitx
在 GTK2 程序中用 Ctrl + Space
不能调出输入法
当 locale
为英文时,在 GTK+2 程序中有可能无法正常使用 Fcitx,例如 Chromium (简体中文) 或 Firefox (简体中文) 等。请确认 fcitx-gtk2 已安装且已设置 GTK_IM_MODULE
。
在 gnome-terminal中 Ctrl + Space
不能调出输入法
使用 GDM 3.16 启动 GNOME,可能在某些程序中无法使用 Ctrl + Space
调出输入法。解决方法是修改GSettings配置
gsettings set \ org.gnome.settings-daemon.plugins.xsettings overrides \ "{'Gtk/IMModule':<'fcitx'>}"
Ctrl + ;
会调出 Fcitx 的剪贴板
严格的说,这不是 BUG, Fcitx 的 Ctrl + ;
会覆盖很多用户自己的快捷键,特别是 Emacs 用户。有必要时,可以在配置界面中禁用剪贴板插件,或更改其激活快捷键。
fcitx-sogoupinyin 卡死、联想失败
如果您遇到下列的问题:
- 输入类似「安装」、「暗影」等 "a" 开头的词语,出现卡死的情况。
- 输入并不以拼音 "a" 开头的词语时,却出现「阿拉伯」、「阿里巴巴」等以 "a" 开头的错误联想词语等。
可以通过删除 ~/.config/fcitx/sogou
下的所有内容的方式解决。
在某些程序下输入法总是被切换到美语键盘
比如在 XMind 下,当 Enter 出新结点时,输入法就会被切换到美语键盘,不得不按 Ctrl-Space 以重新切回中文输入法。
启动 Fcitx 的 Config, 在 Global Config 选项卡下的「Share State Among Window」选项里选中「PerProgram」或「All」即可解决。
Gnome On Wayland 用户无法使用 fcitx
由于 wayland 无法读取 ~/.xprofile
中的环境变量,所以 fcitx 不能在 wayland 模式下正常工作,请在登录时选择 运行于 Xorg 的 Gnome 。