网上关于中文输入的文章很多,此处只是想疏理一下几个概念。
1。输入法平台:
windows下输入法与输入法平台好像是分不清的,而在Linux下他们的概念还是分开的好,输入法平台是输入法的基础,有时候你安装了某个输入法,却怎么也调不出来,则有可能就是它所需要的平台还没有建立。
几个输入法平台:
xcin(x-ChineseInput) ;
iiimf(Intranet/Internet Input Method Framework) ;
chinaput;
ami;
XIM(X-InputMethod);
现在很多Linux都是使用xcin,但不巧,Fedora使用了iiimf。有一个地方可以增前一点直观概念:在Fedora中启动gedit,在文件中点右键,会出现输入框架的选择,一些朋友说在Fedora中ctrl+space怎么也唤不出输入法,在这里选择iiimf则可以实现。我想原因是某些软件讲原来Fedora默认使用的iiimf更改成了xcin。
2。输入法:
在 http://www.linuxfans.org 有中文输入法软件专栏,受到好评的有:Fcitx、Scim、Skim、红旗输入法等。
Fcitx:不是基于iiimf平台的(基于XIM),所以Fedora中用ctrl+space是唤不出的,除非你修改配置文件(/etc/gtk-2.0/gtk.immodules),或设置shell变量 “GTK_IM_MODULE=xim” 将你的输入法平台默认启动为XIM;
37c37
< "xim" "X Input Method" "gtk20" "/usr/share/locale" "ko:ja:zh"
---
> "xim" "X Input Method" "gtk20" "/usr/share/locale" "en:ko:ja:zh"
然后修改/etc/X11/xinit/xinitrc.d/xinput文件,配置默认启动的输入法,或者有朋友只修改“XMODIFIERS”、“XIM”两个shell变量,在终端中输入(或放在自己的 ~/.bashrc 中):
export XMODIFIERS=@im=fcitx
export XIM=fcitx
很遗憾,其他几个输入法和Fcitx一样,都不是基于 iiimf平台的;
还有,scim输入法还需要自己的scim平台支持,分别对应文件:scim-chinese-0.4.1-1fc2.i386.rpm 、 scim-1.0.0-1fc2.i386.rpm;
更加遗憾地告诉你,现在支持iiimf的中文输入只有自带的拼音,叫做 iiimf-le-inpinyin ,所以如果你想使用前述几种nice的输入法,还是做好更换平台的准备。
如果想跟踪RH关于iiimf的测试:http://www.apac.redhat.com/iiimftest/
一篇讲述Fedora下中文输入的必看文章:http://www.erning.net/zh_CN/archives/000002.html
3。字符集(charset)
字符集(charset)和字体(font)又是一对在Linux中必须搞清楚的概念。简言之,charset负责将文件中字节里的1、0序列按照那种约定标准来解释,字体则负责将一个字以何种美观的造型展现给用户。
Fedora默认使用en_US.UTF-8(英文)、zh_CN.UTF-8(中文)作为charset;使用“locale”命令可以看到与此相关的变量,当然他们都可以被更改;我曾经遇到这样的问题:
安装eclipse3.0后,默认的charset被更改为 zh_CN.GB01830 ,当然这是一个very good的字符集,但Fedora中的工具栏、窗口、title、对话框等很多默认的不是这个,则显示出乱码。
更改默认charset并不难,昨天我只用了两个命令,就由 zh_CN.GB01830 改为 zh_CN.UTF-8:
<1>终端下:locale >> ~/.bashrc
<2>用gedit打开 .bashrc文件,替换全部 zh_CN.GB01830 为 zh_CN.UTF-8,形如:
……
export LANG="zh_CN.UTF-8"
export LANG="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export LC_NUMERIC="zh_CN.UTF-8"
export LC_TIME="zh_CN.UTF-8"
export LC_COLLATE="zh_CN.UTF-8"
export LC_MONETARY="zh_CN.UTF-8"
export LC_MESSAGES="zh_CN.UTF-8"
export LC_PAPER="zh_CN.UTF-8"
export LC_NAME="zh_CN.UTF-8"
export LC_ADDRESS="zh_CN.UTF-8"
export LC_TELEPHONE="zh_CN.UTF-8"
export LC_MEASUREMENT="zh_CN.UTF-8"
export LC_IDENTIFICATION="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
……
当然,这样有些鲁莽,呵呵,不过很简单、有效。