8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
使用中文Linux时,一个比较头疼的问题就是中文输入法的安装与配置。目前开发Linux发行版的大多是老外,他们不懂中文,很多人也不太清楚中文输入的问题。在中文化方面,中文的Linux发行版处理的都很好(比如Ubuntu Kylin和Deepin Linux)。但有时难免会用国外的发行版,这篇文章主要会介绍一下配置中文输入法时常见的问题和一些心得。
选对输入法框架
在Linux桌面下,输入法软件分为输入法框架和输入法引擎两部分。输入法框架是负责和操作系统以及应用程序打交道的。我们常见的fcitx和ibus都是输入法框架。而输入法引擎则负责把用户输入的英文字符(比如“woaikaiyuanzhongguo”)转变为中文字符(比如“我爱开源中国”)。Linux下比较著名的输入法引擎有libpinyin,rime,sougou等。常见的输入法软件包名字fcitx-libpinyin,fcitx-rime,ibus-rime等一般都是以”输入法框架-输入法引擎”来命名的。
很多不能正确输入的问题,都与输入法框架配置不正确有关系。因此选对一个输入法框架很重要!
在这里推荐使用fcitx输入法框架。原因有如下几点:fcitx目前的主力开发者csslayer是中国人,对于中文输入需求更了解。
fcitx强大的插件框架,使拼音输入法支持云拼音输入,大大提高了整句输入的正确率和效果。ibus因为架构受限,至今没有云拼音的成熟实现。
fcitx框架支持搜狗。
fcitx框架具有更加良好的配置诊断工具fcitx-diagnose,大大减轻排查困难度。
排查问题
下面假设你使用的是fcitx输入法框架,而且按照相关指示进行了配置(主要是配置环境变量)。如果不知道怎么配置中文输入法,可以参考Ubuntu的Wiki,Arch的Wiki教程。Ubuntu和Debian系会在系统设置中提供有关设置,一般在哪里设置好即可,如果还不行,可以安装im-switch程序进行设置。
安装、配置好后,启动输入法。
如果出现了问题,无法输出,那么怎么办呢?在运行fcitx后(您可以开启一个终端,然后再里面运行命令“fcitx”,这样可以看到fcitx的输出信息),请按如下步骤操作。
1. 打开终端(这个应该懂的什么意思),在终端中执行命令“fcitx-diagnose”。下面的说明检查都是针对fcitx-diagnose程序的输出。
2. 检查locale配置部分,至少保证有zh_CN的locale可用,下面是我的输出:
全部可用 locale:
C
en_US
en_US.iso88591
en_US.utf8
POSIX
zh_CN
zh_CN.gb18030
zh_CN.gb2312
zh_CN.gbk
zh_CN.utf8
zh_HK
zh_HK.big5hkscs
zh_HK.utf8
zh_TW
zh_TW.big5
zh_TW.utf8
3.检查前端设置,这一部分非常重要,需要仔细看里面的提示信息。一般出问题都在这里。本步骤检查主要是确保几个环境变量${GTK_IM_MODULE}、${QT_IM_MODULE}正确配置,以及Qt输入法模块文件、Gtk输入法模块文件均存在。如果有什么问题,工具会提示进行改进。
# 前端设置:
## Xim:
1. `${XMODIFIERS}`:
环境变量 XMODIFIERS 已经正确地设为了 "@im=fcitx".
从环境变量中获取的 Xim 服务名称为 fcitx.
2. 根窗口上的 XIM_SERVERS:
Xim 服务的名称与环境变量中设置的相同.
## Qt:
1. `${QT_IM_MODULE}`:
环境变量 QT_IM_MODULE 已经正确地设为了 "fcitx".
2. Qt 输入法模块文件:
找到了 Qt4 的输入法模块: `/usr/lib/qt4/plugins/inputmethods/qtim-fcitx.so`.
找到了 Qt5 的输入法模块: `/usr/lib/qt/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.so`.
找到了 fcitx 的 qt 模块: `/usr/lib/fcitx/qt/libfcitx-quickphrase-editor.so`.
找到了 fcitx 的 qt 模块: `/usr/lib/fcitx/qt/libfcitx-libpinyin-dictmanager.so`.
## Gtk:
1. `${GTK_IM_MODULE}`:
环境变量 GTK_IM_MODULE 已经正确地设为了 "fcitx".
2. `gtk-query-immodules`:
1. gtk 2:
在 `/usr/bin/gtk-query-immodules-2.0` 找到了 gtk `2.24.24` 的 `gtk-query-immodules`.
版本行:
# Created by /usr/bin/gtk-query-immodules-2.0 from gtk+-2.24.24
已找到 gtk `2.24.24` 的 fcitx 输入法模块.
"/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so"
"fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*"
在 `/usr/bin/gtk-query-immodules-2.0-32` 找到了 gtk `2.24.24` 的 `gtk-query-immodules`.
版本行:
# Created by /usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.24
**无法在 `/usr/bin/gtk-query-immodules-2.0-32` 的输出重找到 fcitx.**
2. gtk 3:
在 `/usr/bin/gtk-query-immodules-3.0` 找到了 gtk `3.12.2` 的 `gtk-query-immodules`.
版本行:
# Created by /usr/bin/gtk-query-immodules-3.0 from gtk+-3.12.2
已找到 gtk `3.12.2` 的 fcitx 输入法模块.
"/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so"
"fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*"
3. Gtk 输入法模块缓存:
1. gtk 2:
在 `/usr/lib/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.24` 的输入法模块缓存.
版本行:
# Created by gtk-query-immodules-2.0 from gtk+-2.24.24
已找到 gtk `2.24.24` 的 fcitx 输入法模块.
"/usr/lib/gtk-2.0/2.10.0/immodules/im-fcitx.so"
"fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*"
在 `/usr/lib32/gtk-2.0/2.10.0/immodules.cache` 找到了 gtk `2.24.24` 的输入法模块缓存.
版本行:
# Created by usr/bin/gtk-query-immodules-2.0-32 from gtk+-2.24.24
**无法输入法模块缓存 `/usr/lib32/gtk-2.0/2.10.0/immodules.cache` 中找到 fcitx**
2. gtk 3:
在 `/usr/lib/gtk-3.0/3.0.0/immodules.cache` 找到了 gtk `3.12.2` 的输入法模块缓存.
版本行:
# Created by gtk-query-immodules-3.0 from gtk+-3.12.2
已找到 gtk `3.12.2` 的 fcitx 输入法模块.
"/usr/lib/gtk-3.0/3.0.0/immodules/im-fcitx.so"
"fcitx" "Fcitx (Flexible Input Method Framework)" "fcitx" "/usr/share/locale" "ja:ko:zh:*"
4. Gtk 输入法模块文件:
1. gtk 2:
找到的全部 Gtk 2 输入法模块文件均存在.
2. gtk 3:
找到的全部 Gtk 3 输入法模块文件均存在.
一般经过如上几个步骤后,就能发现问题,根据提示进行修改就可以了。