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

From ArchWiki
Jump to navigation Jump to search
(疑难问题: fcitx和firefox的冲突依然常见,并未解决)
(update Pkg/AUR templates)
(Tag: wiki-scripts)
 
(122 intermediate revisions by 40 users not shown)
Line 1: Line 1:
[[Category:简体中文]]
+
[[Category:Localization (简体中文)]]
[[Category:Internationalization (简体中文)]]
 
 
[[en:Fcitx]]
 
[[en:Fcitx]]
'''Fcitx''' (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台(即原来的 G 五笔),包括五笔、拼音(全拼和双拼)、二笔、区位等输入模块,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。
+
[[ja:Fcitx]]
 +
{{Related articles start}}
 +
{{Related|IBus}}
 +
{{Related|SCIM}}
 +
{{Related|UIM}}
 +
{{Related articles end}}
 +
{{TranslationStatus (简体中文)|Fcitx|2018-08-31|535074}}
 +
[[Wikipedia:Fcitx|Fcitx]] (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的[[wikipedia:Input_method|输入法]]平台,可以通过安装引擎支持多种输入法,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。
  
==安装 FCITX ==
+
== 安装 ==
{{Pkg|fcitx}} 在 [community] 库中,可以通过 [[Pacman]] 来安装:
 
  
为了在 gtk 与 qt 程序中获得良好的输入体验(例如光标跟随与显示预编辑字符串)并避免一些 xim 无法解决的 bug, 请根据需要安装对应的输入法模块: {{Pkg|fcitx-gtk2}}, {{Pkg|fcitx-gtk3}} 以及 {{Pkg|fcitx-qt}}.
+
[[安装]]软件包 {{Pkg|fcitx}}
  
==使用 FCITX 输入中文==
+
=== 输入法引擎 ===
 +
Fcitx 内置的输入法支持中文 [[wikipedia:Pinyin|拼音]] 和基于字符表的输入(例如[[wikipedia:Wubi method|五笔]]). 根据语言的不同,有不同的输入法引擎可以选择。
  
使用 FCITX 之前,你必须先进行一些环境设定:
+
==== 中文 ====
*如果你采用 KDM、GDM、LightDM 等显示管理器,请在~/.xprofile (没有则新建一个)中加入如下3行,如果你采用 startx 或者 Slim 启动 (即使用.xinitrc的场合),则在 ~/.xinitrc 中加入:
 
  
  export GTK_IM_MODULE=fcitx
+
在 Fcitx 支持的拼音输入法中,内置拼音响应速度最快。Fcitx 同样支持流行的第三方拼音输入法以提供更好的整句输入效果.
  export QT_IM_MODULE=fcitx
+
 
  export XMODIFIERS="@im=fcitx"
+
* {{Pkg|fcitx-sunpinyin}} 在输入速度和输入精度之间有较好的平衡。
 +
* {{Pkg|fcitx-libpinyin}} 算法比 sunpinyin 先进。
 +
* {{Pkg|fcitx-rime}}, 即著名中文输入法 [[Rime IME]]的 Fcitx 版本。但它不支持 Fcitx 本身的 [[#特殊符号]] 和 [[#快速输入]] 功能,自定义设置请参见[http://rime.im 官方],
 +
* {{Pkg|fcitx-googlepinyin}}, Google 拼音输入法 for Android.
 +
* {{AUR|fcitx-sogoupinyin}}, 搜狗输入法for linux—支持全拼、简拼、模糊音、云输入、皮肤、中英混输入。[http://pinyin.sogou.com/linux/ 官方网址]
 +
也可以通过添加[https://www.archlinuxcn.org/archlinux-cn-repo-and-mirror/ archlinuxcn源]后用pacman安装。
 +
* {{Pkg|fcitx-cloudpinyin}} 可以提供云拼音输入的支持,支持 Fcitx 下的所有拼音输入法,Fcitx-rime 除外。
 +
* {{Pkg|fcitx-chewing}} 为 Fcitx 添加 chewing (繁体中文注音) 输入引擎支持。依赖 {{Pkg|libchewing}}.
 +
* {{Pkg|fcitx-table-extra}}  adds [[wikipedia:Cangjie_input_method|Cangjie]], [[wikipedia:Zhengma_method|Zhengma]], [[wikipedia:Boshiamy_method|Boshiamy]] support.
 +
 
 +
==== Japanese ====
 +
 
 +
* {{Pkg|fcitx-mozc}}, 为 Fcitx 添加 mozc (日语) 输入引擎支持,mozc 是 Google 日语输入法的开源版本。
 +
* {{Pkg|fcitx-kkc}}, a new Japanese Kana Kanji input engine, based on {{Pkg|libkkc}}.
 +
* {{Pkg|fcitx-anthy}}, 为 Fcitx 添加 anthy (日语) 输入引擎支持。
 +
 
 +
==== 其它语言 ====
 +
* {{Pkg|fcitx-hangul}}, 为 Fcitx 添加 hangul (韩语) 输入引擎支持。
 +
* {{Pkg|fcitx-m17n}}, 为 Fcitx 添加 m17n (多国语言码表) 输入引擎支持。
 +
* {{Pkg|fcitx-unikey}}, 为 Fcitx 添加 unikey (越南语) 输入引擎支持。
 +
* {{Pkg|fcitx-sayura}}, 为 Fcitx 添加 sayura (僧伽罗语) 输入引擎支持。
 +
 
 +
=== 输入法模块 ===
 +
 
 +
Fcitx 提供对 Gtk+/Qt 提供了输入法模块,请根据需要安装 {{Pkg|fcitx-gtk2}}, {{Pkg|fcitx-gtk3}}, {{AUR|fcitx-qt4}} 和 {{Pkg|fcitx-qt5}}. 软件包组 {{Grp|fcitx-im}} 包含了全部模块。如果没有安装对应的模块,一般还是可以在大部分程序中使用输入法的。不过很可能出现从无法光标跟随、无法显示预编辑字符串、无法输入甚至程序卡死等情况。
  
以上设置使用了fcitx提供的gtk/qt输入法模块, 请根据需要安装 {{Pkg|fcitx-gtk2}}, {{Pkg|fcitx-gtk3}} 以及 {{Pkg|fcitx-qt}}.
+
某些程序不使用 Gtk+/Qt 的输入法模块,这些程序包括:
  
你可以选择在gtk/qt程序中使用xim, 为此你可以将上面的环境变量的对应设置改成如下的值
+
* 所有不使用 Gtk+/Qt的程序,如使用 Tk, motif, 甚至 xlib 的程序
 +
* Emacs,Opera,OpenOffice,LibreOffice,Skype,Wine,Java,Xterm,urxvt,WPS
  
  export GTK_IM_MODULE=xim
+
=== 其它 ===
  export QT_IM_MODULE=xim
 
  
{{warning| 使用xim输入很可能会遇到一些包括不能输入, 没有光标跟随, 重启输入法时应用程序卡死在内的无法由fcitx解决的问题. 对于在使用xim时遇到的这些问题, fcitx无法提供任何支持.}}
+
* {{Pkg|fcitx-ui-light}}, Fcitx 的轻量 UI.
 +
* {{Pkg|fcitx-table-extra}} Fcitx 的一些额外码表支持,包括仓颉 3, 仓颉 5, 粤拼, 速成, 五笔, 郑码等等
 +
* {{Pkg|fcitx-table-other}}, Fcitx 的一些更奇怪的码表支持,包括 Latex, Emoji, 以及一大堆不明字符等等。
  
*重新登录后让环境变量生效。
+
您还可以在 [[Arch User Repository (简体中文)]] 找到更多以上软件包的 Git 版以及其它。
  
如果你使用 XDG 兼容的桌面环境如 [[KDE]], [[GNOME]], [[XFCE]], [[LXDE]], 当你重新登录后,Fcitx 应该会自动启动,如果没有的话,可以打开控制台并运行:
+
== 使用 ==
  
  fcitx
+
=== 桌面环境下自动启动(Autostart) ===
  
为检验 fcitx 是否正常运行, 打开一个程序,比如 leafpad, 按 CTRL+Space 激活 Fcitx 并试着输入几个字。
+
如果您用 XDG 兼容的桌面环境,比如 [[KDE]], [[GNOME]], [[Xfce]], [[LXDE]], 那么当您安装好 Fcitx 并重新登录后,Fcitx 应该会自动启动。如果没有的话,可以打开控制台并运行{{ic|fcitx}}。为检验 Fcitx 是否正常运行, 打开一个程序,比如 leafpad, 按 CTRL+Space 激活 Fcitx 并试着输入几个字。
  
如果 Fcitx 没有随桌面环境自动启动或者希望修改fcitx启动参数,请用桌面环境提供的自动启动工具配置或者编辑用户目录{{ic|~/.config/autostart/}}下的{{ic|fcitx-autostart.desktop}}文件确认自动启动是否被禁用. 如果用户目录下的文件尚不存在, 你可以复制自动启动文件 {{ic|/etc/xdg/autostart/fcitx-autostart.desktop}} 到用户目录
+
如果 Fcitx 没有随桌面环境自动启动,或者您想修改下 Fcitx 启动参数,请用桌面环境提供的自动启动工具配置,或者直接编辑用户目录{{ic|~/.config/autostart/}} 下的 {{ic|fcitx-autostart.desktop}} 文件以确认自动启动是否被禁用。如果用户目录下的文件并不存在,您可以复制自动启动文件 {{ic|/etc/xdg/autostart/fcitx-autostart.desktop}} 到用户目录:
  
 
  cp /etc/xdg/autostart/fcitx-autostart.desktop ~/.config/autostart/
 
  cp /etc/xdg/autostart/fcitx-autostart.desktop ~/.config/autostart/
  
如果你使用的桌面环境不自动支持xdg的自动启动设置, 请在你使用的启动脚本里面添加
+
如果您使用的桌面环境并不自动支持 XDG 自动启动, 请在您使用的启动脚本里面添加 {{ic|fcitx}} 以实现自动启动。
 +
 
 +
当 iBus 等其它输入法程序同时启动且开启了 Xim 支持时, 可能会害 Fcitx 启动不了,请确保已禁用了其它输入法程序的自动启动。
 +
 
 +
以及请按以下方式设置环境变量,以便 Gtk/Qt 程序使用输入法插件(IM module)与 fcitx 通讯,而不是依赖 XIM 。
 +
 
 +
=== 设置环境变量 ===
 +
 
 +
将下面内容加入桌面的启动脚本,以注册输入法模块并支持 xim 程序。
 +
 
 +
{{hc|~/.pam_environment|<nowiki>
 +
GTK_IM_MODULE=fcitx
 +
QT_IM_MODULE=fcitx
 +
XMODIFIERS=@im=fcitx</nowiki>
 +
}}
 +
 
 +
重新登录后让环境变量生效。
 +
 
 +
如果 ''fcitx'' 没有自动启动,请将 {{ic|fcitx &}} 加入 {{ic|~/.xinitrc}}。
 +
 
 +
* 请不要在 {{ic|.bashrc}} 设置这些环境变量。{{ic|bashrc}}只应用于交互性 bash 会话的初始化,并不应用于非交互性脚本或 X 会话的初始化。
 +
* 如果 Qt 使用 fcitx 有问题,请执行 qtconfig (qtconfig-qt4),在输入法配置中将 fcitx 设置为 "Default Input Method"。
 +
 
 +
=== Xim ===
 +
 
 +
您还可以在 Gtk+/Qt 程序中用 xim, 为此您要将上面设置的变量改成如下的值:
 +
 
 +
GTK_IM_MODULE=xim
 +
QT_IM_MODULE=xim
 +
 
 +
{{警告|使用 xim, 很可能会遇到一些包括不能输入, 没有光标跟随, 重启输入法时应用程序卡死在内的无法由 Fcitx 解决的问题,且官方不支持解决。}}
 +
 
 +
重新登录后让环境变量生效。
 +
 
 +
{{Note|Gtk2 从  2.24.20 开始,使用 {{ic|/usr/lib/gtk-2.0/2.10.0/immodules.cache}} 作为缓存文件。如果设置了 {{ic|GTK_IM_MODULE_FILE}} 环境变量或在安装后修改了配置,请清掉环境变量并使用 {{ic|/usr/bin/gtk-query-immodules-2.0 --update-cache}} 更新缓存。}}
 +
{{Note|Qt5 应用程序不再像 Qt4 那样支持 XIM 输入法协议,因此完全依赖输入法模块(IM Module)和 fcitx 沟通。}}
 +
 
 +
== 配置==
 +
 
 +
=== 配置工具 ===
 +
 
 +
Fcitx 提供了若干图形界面的配置程序:KDE 中的 {{Pkg|kcm-fcitx}}, 基于 GTK+3 的 {{Pkg|fcitx-configtool}}。
  
  fcitx
+
安装完配置工具{{Pkg|fcitx-configtool}}之后打开配置工具的方法是用终端运行fcitx-config-gtk3,打开这个配置工具之后还要添加中文输入法。对于新安装的英文系统,要取消只显示当前语言的输入法(Only Show Current Language),才能看到和添加中文输入法(Pinyin, Libpinyin等)。
  
以实现自动启动
+
如果要手工编辑 fcitx 的配置文件,请确保系统中并没有在运行 fcitx ,否则手工编辑的配置内容可能丢失。
  
当ibus等其它输入法程序同时启动且开启了xim支持时, 可能会造成fcitx启动失败, 请确认禁用了其它输入法程序的自动启动.
+
=== 替换自带的经典界面 ===
  
== 全局配置说明 ==
+
Fcitx 支持使用 kimpanel 协议的界面,以提供更好的桌面整合体验.
  
Fcitx 提供了图形界面的配置程序,你可以安装他们:{{Pkg|kcm-fcitx}}(基于KDE 的 kcm), {{Pkg|fcitx-configtool}}(基于 gtk3), 或者从 [[Arch User Repository|AUR]] 安装 {{AUR|fcitx-configtool-gtk2}}(基于 gtk2, 不支持)。
+
* Gnome-Shell: 安装 {{AUR|gnome-shell-extension-kimpanel-git}}, 它提供了类似 ibus-gjs 的用户体验,其候选框界面将会采用 Gnome-Shell 的主题风格, 同时在状态栏中增加 Fcitx 的输入法状态图标。
 +
* KDE: {{Pkg|kimtoy}} 可以使用搜狗输入法和 Fcitx 本身的皮肤。
  
==桌面环境整合==
+
=== 输入法 ===
  
===Gnome-Shell===
+
您可以在配置界面工具中添加/移除启用的输入法。列表第一项将作为「未激活」状态使用,请遵从界面上的提示将列表中的此项设为键盘布局输入法,比如「(键盘 - 英文)」,列表第二项则是默认输入法,其它项则为可切换到的输入法。
  
你可以在 [[Arch User Repository|AUR]] 安装 {{AUR|gnome-shell-extension-kimpanel-git}}, 它提供了类似 ibus-gjs 的用户体验.
+
{{警告|请必须将键盘布局输入法设为列表中第一项, 否则可能会无法禁用中文输入。}}
  
===KDE===
+
=== 扩充内置拼音词库 ===
  
你可以安装 {{Pkg|kcm-fcitx}} 以及 {{Pkg|kdeplasma-addons-applets-kimpanel}}.
+
用户配置拼音词库在 {{ic|~/.config/fcitx/pinyin}}, 其中 {{ic|pybase.mb}} 为拼音单字库,{{ic|pyphrase.mb}} 为拼音词库。如果这两文件并不存在,直接将您下载的词库放置到 {{ic|/usr/share/fcitx/pinyin}}. 重启 Fcitx 即可。
  
== 快捷键 ==
+
=== 皮肤 ===
默认快捷键
 
  Ctrl+Space 激活输入法
 
  左Shift    临时切换到英文
 
  Ctrl+Shift 输入法间切换
 
  -/=       向前/向后翻页
 
  
你可以在配置界面的全局配置中修改这些快捷键
+
下载皮肤并解压缩到下面任一目录,如果没有可以新建目录:
  
== 禁用输入法 ==
+
/usr/share/fcitx/skin  ##全局设置
或许你并不希望看到一些输入法,比如双拼。那么你可以在配置界面里禁用相应的输入法
+
~/.config/fcitx/skin    #特定用户设置
  
== 扩充拼音词库 ==
+
=== 云拼音 ===
用户配置拼音词库是在~/.config/fcitx/pinyin下,其中pybase.mb是拼音单字库 pyphrase.mb拼音词库(如果这两文件没有,那么fcitx就读取此目录/usr/share/fcitx/pinyin),将你下载的词库放置到此目录后,重启(ctrl+5)fcitx就可以了。
+
安装后重启 Fcitx 即可,所选的云拼音输入结果会自动添加到当前输入法的词库中。提醒:建议在fcitx设置里面将“云拼音来源”由Google改为“百度”,Google国内访问不是很顺畅。
mv pybase.mb pyphrase.mb ~/.config/fcitx/pinyin/
+
 
 +
启用云拼音后,从云拼音获得的候选词会默认添加到候选词列表中的第二个,显示位置可以通过云拼音的设置配置。如果云拼音的结果和本地输入法给出的结果一致,云拼音后选项会和本地产生的候选项自动合并,不会产生重复的候选项。
 +
 
 +
若安装fcitx-cloudpinyin后,在配置程序里却没有看见云拼音,记得勾上“高级”复选框。这时云拼音会显示出来,再勾上云拼音。
 +
{{注意|不推荐将云拼音候选词设为第一个候选词,因为当网络情况不好,没有及时返回云拼音结果,那么云拼音结果将默认降到第二候选词的位置,于是这个过程可能会涉及到默认候选词的改变。}}
 +
 
 +
== 提示与技巧 ==
 +
 
 +
=== 快捷键 ===
 +
 
 +
部分常用默认快捷键:
 +
 
 +
* Ctrl + Space 激活输入法
 +
* 左Shift    临时切换到英文
 +
* Ctrl + Shift 输入法间切换
 +
* -/=        向前/向后翻页
 +
* Shift + Space 全角、半角切换
 +
 
 +
{{注意|您可以在配置界面的全局配置中修改这些快捷键。}}
 +
 
 +
=== Vim ===
 +
 
 +
如果您经常在 Vim 下使用 Fcitx, 可以安装 {{AUR|vim-fcitx}} 插件,或者在 {{ic|~/.vimrc}} 添加如下代码。以退出插入模式时,自动关闭 Fcitx, 反之则反:
  
== Vim ==
 
如果你经常在vim下使用fcitx,可以安装[http://www.vim.org/scripts/script.php?script_id=3764 fcitx.vim]。或者简单地在{{ic|~/.vimrc}}添加如下代码,可实现退出插入模式时,关闭fcitx;进入插入模式时,启用fcitx:
 
 
  "##### auto fcitx  ###########
 
  "##### auto fcitx  ###########
 
  let g:input_toggle = 1
 
  let g:input_toggle = 1
Line 104: Line 192:
 
  "##### auto fcitx end ######
 
  "##### auto fcitx end ######
  
要注意的是,由于要调用外部程序,这将明显拖慢会反复进出插入模式的映射。建议改写这样的映射。使用带 Python 支持的 Vim 配合 fcitx.vim 亦可改善这种情况。
+
{{注意|由于要调用外部程序,这将明显拖慢会反复进出插入模式的映射。建议改写相关映射,用带 Python 支持的 Vim 加以配合 fcitx.vim 亦可改善效率。}}
 +
 
 +
=== 剪贴板 ===
 +
 
 +
[https://www.csslayer.info/wordpress/fcitx-dev/fcitx-clipboard/ Fcitx 自带剪贴板],其快捷键为 {{ic|Ctrl + ;}}, 小小功能拯救世界。
 +
 
 +
=== 特殊符号 ===
 +
 
 +
创建 {{ic|~/.config/fcitx/data/pySym.mb}}, 文件内容示范如下:
 +
 
 +
  #第一个字符为“#”的行是注释
 +
  #格式:编码 符号
 +
  #编码只能为小写字母,经拼音解析后最长为10(如py为2,pinyin也为2)
 +
  #数学符号
 +
  sxfh +
 +
  sxfh -
 +
  sxfh <
 +
  sxfh =
 +
  sxfh >
 +
  sxfh ±
 +
  sxfh ×
 +
  sxfh ÷
 +
  sxfh ∈
 +
  sxfh ∏
 +
  sxfh ∑
 +
  sxfh ∕
 +
  sxfh √
 +
  sxfh ∝
 +
 
 +
直接输入某编码,可以匹配出对应的特殊符号。
 +
 
 +
{{注意|编码只能用二十六个小写字母表示;以 v 开头,无效。}}
 +
 
 +
=== 快速输入 ===
 +
 
 +
确保在 {{ic|~/.config/fcitx/config}} 里把 {{ic|SemiColonAction}} 修改为 {{ic|QuickPhrase}}.
 +
 
 +
创建 {{ic|~/.config/fcitx/data/QuickPhrase.mb}}, 文件内容示范如下:
 +
 
 +
  #第一个字符为“#”的行是注释
 +
  #格式:编码 符号
 +
  #数学符号
 +
 
 +
  dianhua 123456789
 +
  youbian 123456
 +
  dizhi 中华人民共和国北京市长安街一号
 +
  aowu ┗<(=`O′=)>┛
 +
  mobai m<(_ _)>m
 +
  baobao <(=′▽')爻 (`▽`=)>
 +
  baobao <(=*′д`)爻(′д`*=)>
 +
  qiangbi ▄︻┻┳═一…… ☆<(= ̄□ ̄=!)>
 +
  xiaoku 😂
 +
  canyue 🌖
 +
  xuehua ❄
 +
 
 +
 
 +
按 {{ic|;}} 并输入编码,可实现快速输入,自然也能用来当 [http://blog.felixc.at/2012/05/kitty-for-fcitx-quickphrase/ 颜文字库]和[https://github.com/levinit/fcitx-emoji emoji表情库]。
 +
 
 +
{{注意|编码除了不得有空格,不得以 {{ic|;}} 开头之外,没有其它限制。}}
 +
 
 +
== 故障排除 ==
 +
 
 +
=== 停用或修改 ''Extra key for trigger input method'' ===
 +
 
 +
设置位于 ''全局配置'' 标签,默认是 ''SHIFT'', 也就是说两边的 shift 键都会修改输入法。这个设置可能在输入大写字母的时候引起误触,而且可能会在安装后恢复成默认值。要确保进行的修改没有被覆盖,请设置配置文件为只读:{{ic|# chattr +i ~/.config/fcitx/config}}.
 +
 
 +
=== 首先诊断问题所在 ===
 +
当你遇到任何 fcitx 有关的问题,比如 ctrl+space 在有的程序中不能工作,首先应该用 {{ic|fcitx-diagnose}} 命令诊断问题的原因。
 +
{{ic|fcitx-diagnose}} 会列出所有 fcitx 正常运行所需的前提条件,从输出结果中通常可以找到问题的原因。
 +
在网上(比如在 irc 或者论坛里)询问别人关于 fcitx 配置的问题时,也请首先提供你的 {{ic|fcitx-diagnose}} 输出结果(比如贴到 pastebin 服务),这将加速别人帮你找到问题所在。
 +
 
 +
=== Emacs 无法使用输入法 ===
 +
 
 +
当 {{ic|LC_CTYPE}} 为英文时, 在 Emacs 上可能无法使用输入法。若遇到此情况,请在启动 Emacs 时将 {{ic|LC_CTYPE}} 设为 {{ic|zh_CN.UTF-8}}. 终端下并不会遇到此现象,因为输入法会交给终端程序处理。
 +
 
 +
Emacs 默认 fontset 会使用 "-*-*-*-r-normal--14-*-*-*-*-*-*-*" 字体 (terminus, 75dpi 等等,可以通过 {{ic|xlsfonts}} 命令查看),如果您并没有匹配的字体,无法呼出 Fcitx.
 +
 
 +
=== Firefox 右键菜单不弹出 ===
 +
 
 +
[[Firefox]] 升级到 13 后可能与 xim 发生冲突,解决办法是确定安装了 {{Pkg|fcitx-gtk3}} 并且把环境配置文件中的
 +
 
 +
  export GTK_IM_MODULE=xim
 +
 
 +
换成
 +
 
 +
  export GTK_IM_MODULE=fcitx
 +
 
 +
=== 在 GTK2 程序中用 {{ic|Ctrl + Space}} 不能调出输入法 ===
 +
 
 +
当 {{ic|locale}} 为英文时,在 GTK+2 程序中有可能无法正常使用 Fcitx,例如 [[Chromium (简体中文)]] 或 [[Firefox (简体中文)]] 等。请确认 {{Pkg|fcitx-gtk2}} 已安装且已设置 {{ic|GTK_IM_MODULE}}。
 +
 
 +
=== 在 gnome-terminal中 {{ic|Ctrl + Space}} 不能调出输入法 ===
 +
 
 +
使用 GDM 3.16 启动 GNOME,可能在某些程序中无法使用 {{ic|Ctrl + Space}} 调出输入法。解决方法是修改GSettings配置
 +
 
 +
gsettings set \
 +
  org.gnome.settings-daemon.plugins.xsettings overrides \
 +
  "{'Gtk/IMModule':<'fcitx'>}"
 +
 
 +
=== {{ic|Ctrl + ;}} 会调出 Fcitx 的剪贴板 ===
 +
 
 +
严格的说,这不是 BUG, Fcitx 的 {{ic|Ctrl + ;}} 会覆盖很多用户自己的快捷键,特别是 Emacs 用户。有必要时,可以在配置界面中禁用剪贴板插件,或更改其激活快捷键。
 +
 
 +
=== fcitx-sogoupinyin 卡死、联想失败 ===
 +
 
 +
如果您遇到下列的问题:
 +
 
 +
* 输入类似「安装」、「暗影」等 "a" 开头的词语,出现卡死的情况。
 +
* 输入并不以拼音 "a" 开头的词语时,却出现「阿拉伯」、「阿里巴巴」等以 "a" 开头的错误联想词语等。
 +
 
 +
可以通过删除 {{ic|~/.config/fcitx/sogou}} 下的所有内容的方式解决。
 +
 
 +
{{注意|此操作会清空用户词库。}}
 +
 
 +
=== 在某些程序下输入法总是被切换到美语键盘 ===
 +
 
 +
比如在 XMind 下,当 Enter 出新结点时,输入法就会被切换到美语键盘,不得不按 Ctrl-Space 以重新切回中文输入法。
  
==疑难问题==
+
启动 Fcitx 的 Config, 在 Global Config 选项卡下的「Share State Among Window」选项里选中「PerProgram」或「All」即可解决。
  
* '''注意:'''
+
=== Gnome On Wayland 用户无法使用 fcitx ===
当LC_CTYPE为英文时, 会出现Emacs下无法使用输入法的情况, 如出现此情况, 请在启动Emacs时将LC_CTYPE设为zh_CN.UTF-8. (终端下使用emacs无此问题, 输入法会由终端程序处理).
 
  
* '''输入法模块'''
+
由于 wayland 无法读取 {{ic|~/.xprofile}} 中的环境变量,所以请在{{ic|/etc/environment}}中加入:
{{warning|即使未安装输入法模块, 一般还是可以在大部分程序中使用输入法, 不过很可能出现从无法光标跟随, 无法显示预编辑字符串, 到无法输入甚至程序卡死等情况. 如无特殊情况请安装全部输入法模块}}
 
  
{{warning|firefox升级到13后可能与xim发生冲突造成菜单无法弹出等问题,可能可以安装fcitx-gtk2解决.}}
+
GTK_IM_MODULE=fcitx
如果你已经将IM MODULE设定为fcitx且遇到了无法激活输入法的问题, 请根据出现问题的程序检查对应的输入法模块包是否已经安装
+
QT_IM_MODULE=fcitx
 +
XMODIFIERS=@im=fcitx
  
部分程序无法使用gtk/qt的输入法模块, 如果你需要使用这些程序, 请注意xim设置以及xim下可能遇到的以上问题. 这些程序包括: 所有不使用gtk/qt的程序(如使用tk, motif, 或者直接使用xlib的程序), emacs, opera, openoffice, libreoffice, skype
+
或在登录时选择 '''运行于 Xorg 的 Gnome''' 。
  
* '''Ctrl + Space 在GTK2程序中无法调出输入法'''
+
== 参见 ==
locale为英文时,有可能会出现在GTK2程序中无法用Ctrl+Space键调出输入法,此时应该手动进行如下设置( [http://fcitx.github.com/handbook/faq.html#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相应模块时有可能会重新生成此文件,此时请重新编辑该文件.}}
 
  
== 外部资源 ==
 
 
*[https://github.com/fcitx/fcitx/ Fcitx GitHub]
 
*[https://github.com/fcitx/fcitx/ Fcitx GitHub]
 
*[https://code.google.com/p/fcitx/ Fcitx Google Code]
 
*[https://code.google.com/p/fcitx/ Fcitx Google Code]
 
*[http://fcitx-im.org/ Fcitx Wiki]
 
*[http://fcitx-im.org/ Fcitx Wiki]
 +
*[http://kde-look.org/index.php?xcontentmode=88 Fcitx Themes]
 +
*[http://blog.felixc.at/2012/05/kitty-for-fcitx-quickphrase/ 猫颜文字 For Fcitx QuickPhrase]
 +
*[https://github.com/levinit/fcitx-emoji emoji常用表情-fcitx-emoji]
 +
*[https://forum.suse.org.cn/viewtopic.php?f=16&t=731 史前大坑 Fcitx 官方 Artwork 团队出品:Fcitx 输入法皮肤制作全教程]
 +
*[https://bintray.com/rime-aca/dictionaries/luna_pinyin.dict/view/general rime 朙(ming)月拼音擴充詞庫]
 +
*[https://bugzilla.gnome.org/show_bug.cgi?id=747825#c6 Fcitx not work in terminal, nautilus, gedit]

Latest revision as of 12:46, 30 June 2019

翻译状态: 本文是英文页面 Fcitx翻译,最后翻译时间:2018-08-31,点击这里可以查看翻译后英文页面的改动。

Fcitx (Flexible Input Method Framework) ──即小企鹅输入法,它是一个以 GPL 方式发布的输入法平台,可以通过安装引擎支持多种输入法,支持简入繁出,是在 Linux 操作系统中常用的中文输入法。它的优点是,短小精悍、跟程序的兼容性比较好。

安装

安装软件包 fcitx

输入法引擎

Fcitx 内置的输入法支持中文 拼音 和基于字符表的输入(例如五笔). 根据语言的不同,有不同的输入法引擎可以选择。

中文

在 Fcitx 支持的拼音输入法中,内置拼音响应速度最快。Fcitx 同样支持流行的第三方拼音输入法以提供更好的整句输入效果.

也可以通过添加archlinuxcn源后用pacman安装。

Japanese

  • fcitx-mozc, 为 Fcitx 添加 mozc (日语) 输入引擎支持,mozc 是 Google 日语输入法的开源版本。
  • fcitx-kkc, a new Japanese Kana Kanji input engine, based on libkkc.
  • fcitx-anthy, 为 Fcitx 添加 anthy (日语) 输入引擎支持。

其它语言

  • fcitx-hangul, 为 Fcitx 添加 hangul (韩语) 输入引擎支持。
  • fcitx-m17n, 为 Fcitx 添加 m17n (多国语言码表) 输入引擎支持。
  • fcitx-unikey, 为 Fcitx 添加 unikey (越南语) 输入引擎支持。
  • fcitx-sayura, 为 Fcitx 添加 sayura (僧伽罗语) 输入引擎支持。

输入法模块

Fcitx 提供对 Gtk+/Qt 提供了输入法模块,请根据需要安装 fcitx-gtk2, fcitx-gtk3, fcitx-qt4AURfcitx-qt5. 软件包组 fcitx-im 包含了全部模块。如果没有安装对应的模块,一般还是可以在大部分程序中使用输入法的。不过很可能出现从无法光标跟随、无法显示预编辑字符串、无法输入甚至程序卡死等情况。

某些程序不使用 Gtk+/Qt 的输入法模块,这些程序包括:

  • 所有不使用 Gtk+/Qt的程序,如使用 Tk, motif, 甚至 xlib 的程序
  • Emacs,Opera,OpenOffice,LibreOffice,Skype,Wine,Java,Xterm,urxvt,WPS

其它

  • fcitx-ui-light, Fcitx 的轻量 UI.
  • fcitx-table-extra Fcitx 的一些额外码表支持,包括仓颉 3, 仓颉 5, 粤拼, 速成, 五笔, 郑码等等
  • fcitx-table-other, Fcitx 的一些更奇怪的码表支持,包括 Latex, Emoji, 以及一大堆不明字符等等。

您还可以在 Arch User Repository (简体中文) 找到更多以上软件包的 Git 版以及其它。

使用

桌面环境下自动启动(Autostart)

如果您用 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 以实现自动启动。

当 iBus 等其它输入法程序同时启动且开启了 Xim 支持时, 可能会害 Fcitx 启动不了,请确保已禁用了其它输入法程序的自动启动。

以及请按以下方式设置环境变量,以便 Gtk/Qt 程序使用输入法插件(IM module)与 fcitx 通讯,而不是依赖 XIM 。

设置环境变量

将下面内容加入桌面的启动脚本,以注册输入法模块并支持 xim 程序。

~/.pam_environment
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

重新登录后让环境变量生效。

如果 fcitx 没有自动启动,请将 fcitx & 加入 ~/.xinitrc

  • 请不要在 .bashrc 设置这些环境变量。bashrc只应用于交互性 bash 会话的初始化,并不应用于非交互性脚本或 X 会话的初始化。
  • 如果 Qt 使用 fcitx 有问题,请执行 qtconfig (qtconfig-qt4),在输入法配置中将 fcitx 设置为 "Default Input Method"。

Xim

您还可以在 Gtk+/Qt 程序中用 xim, 为此您要将上面设置的变量改成如下的值:

GTK_IM_MODULE=xim
QT_IM_MODULE=xim
警告: 使用 xim, 很可能会遇到一些包括不能输入, 没有光标跟随, 重启输入法时应用程序卡死在内的无法由 Fcitx 解决的问题,且官方不支持解决。

重新登录后让环境变量生效。

Note: Gtk2 从 2.24.20 开始,使用 /usr/lib/gtk-2.0/2.10.0/immodules.cache 作为缓存文件。如果设置了 GTK_IM_MODULE_FILE 环境变量或在安装后修改了配置,请清掉环境变量并使用 /usr/bin/gtk-query-immodules-2.0 --update-cache 更新缓存。
Note: Qt5 应用程序不再像 Qt4 那样支持 XIM 输入法协议,因此完全依赖输入法模块(IM Module)和 fcitx 沟通。

配置

配置工具

Fcitx 提供了若干图形界面的配置程序:KDE 中的 kcm-fcitx, 基于 GTK+3 的 fcitx-configtool

安装完配置工具fcitx-configtool之后打开配置工具的方法是用终端运行fcitx-config-gtk3,打开这个配置工具之后还要添加中文输入法。对于新安装的英文系统,要取消只显示当前语言的输入法(Only Show Current Language),才能看到和添加中文输入法(Pinyin, Libpinyin等)。

如果要手工编辑 fcitx 的配置文件,请确保系统中并没有在运行 fcitx ,否则手工编辑的配置内容可能丢失。

替换自带的经典界面

Fcitx 支持使用 kimpanel 协议的界面,以提供更好的桌面整合体验.

  • Gnome-Shell: 安装 gnome-shell-extension-kimpanel-gitAUR, 它提供了类似 ibus-gjs 的用户体验,其候选框界面将会采用 Gnome-Shell 的主题风格, 同时在状态栏中增加 Fcitx 的输入法状态图标。
  • KDE: kimtoy 可以使用搜狗输入法和 Fcitx 本身的皮肤。

输入法

您可以在配置界面工具中添加/移除启用的输入法。列表第一项将作为「未激活」状态使用,请遵从界面上的提示将列表中的此项设为键盘布局输入法,比如「(键盘 - 英文)」,列表第二项则是默认输入法,其它项则为可切换到的输入法。

警告: 请必须将键盘布局输入法设为列表中第一项, 否则可能会无法禁用中文输入。

扩充内置拼音词库

用户配置拼音词库在 ~/.config/fcitx/pinyin, 其中 pybase.mb 为拼音单字库,pyphrase.mb 为拼音词库。如果这两文件并不存在,直接将您下载的词库放置到 /usr/share/fcitx/pinyin. 重启 Fcitx 即可。

皮肤

下载皮肤并解压缩到下面任一目录,如果没有可以新建目录:

/usr/share/fcitx/skin   ##全局设置
~/.config/fcitx/skin    #特定用户设置

云拼音

安装后重启 Fcitx 即可,所选的云拼音输入结果会自动添加到当前输入法的词库中。提醒:建议在fcitx设置里面将“云拼音来源”由Google改为“百度”,Google国内访问不是很顺畅。

启用云拼音后,从云拼音获得的候选词会默认添加到候选词列表中的第二个,显示位置可以通过云拼音的设置配置。如果云拼音的结果和本地输入法给出的结果一致,云拼音后选项会和本地产生的候选项自动合并,不会产生重复的候选项。

若安装fcitx-cloudpinyin后,在配置程序里却没有看见云拼音,记得勾上“高级”复选框。这时云拼音会显示出来,再勾上云拼音。

注意: 不推荐将云拼音候选词设为第一个候选词,因为当网络情况不好,没有及时返回云拼音结果,那么云拼音结果将默认降到第二候选词的位置,于是这个过程可能会涉及到默认候选词的改变。

提示与技巧

快捷键

部分常用默认快捷键:

  • 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 ######
注意: 由于要调用外部程序,这将明显拖慢会反复进出插入模式的映射。建议改写相关映射,用带 Python 支持的 Vim 加以配合 fcitx.vim 亦可改善效率。

剪贴板

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 ∝

直接输入某编码,可以匹配出对应的特殊符号。

注意: 编码只能用二十六个小写字母表示;以 v 开头,无效。

快速输入

确保在 ~/.config/fcitx/config 里把 SemiColonAction 修改为 QuickPhrase.

创建 ~/.config/fcitx/data/QuickPhrase.mb, 文件内容示范如下:

 #第一个字符为“#”的行是注释
 #格式:编码 符号
 #数学符号
 
 dianhua 123456789
 youbian 123456
 dizhi 中华人民共和国北京市长安街一号
 aowu ┗<(=`O′=)>┛ 
 mobai m<(_ _)>m 
 baobao <(=′▽')爻 (`▽`=)> 
 baobao <(=*′д`)爻(′д`*=)> 
 qiangbi ▄︻┻┳═一…… ☆<(= ̄□ ̄=!)>
 xiaoku 😂
 canyue 🌖
 xuehua ❄


; 并输入编码,可实现快速输入,自然也能用来当 颜文字库emoji表情库

注意: 编码除了不得有空格,不得以 ; 开头之外,没有其它限制。

故障排除

停用或修改 Extra key for trigger input method

设置位于 全局配置 标签,默认是 SHIFT, 也就是说两边的 shift 键都会修改输入法。这个设置可能在输入大写字母的时候引起误触,而且可能会在安装后恢复成默认值。要确保进行的修改没有被覆盖,请设置配置文件为只读:# chattr +i ~/.config/fcitx/config.

首先诊断问题所在

当你遇到任何 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-gtk3 并且把环境配置文件中的

 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 中的环境变量,所以请在/etc/environment中加入:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

或在登录时选择 运行于 Xorg 的 Gnome

参见