主题:【求助】如何在英文LINUX下输入中文? -- 东湖珞珈
我在河里潜水很有段日子了,想浮起来冒泡, 可是我用的LINUX (Fedora Core 2, English Locale)没有装中文的输入系统, 只是安装了中文和日文系统,所以只能看,不能写。有哪位大侠能推荐一个好用的全拼或双拼汉字输入系统?谢谢!
不记得以前在何处曾看到过这样一段言论,意思是Linux赢得中国普通用户的最大障碍就是没有一个合适的输入法,当时看了颇有感触。确实,那时Linux下的中文输入法极为稀少不说,并且其中大多数不太符合使用简体汉字用户的习惯,兼容性极差,每个应用程序可能都需要自己设置,还不太稳定。
现在这个障碍已经不存在了,已经有了很多易于安装、配置和使用的中文输入软件。这些软件大都由个人/团队开发,遵循GPL协议,属于自由软件,且很多被各大Linux发行版用作默认中文输入方式。下面笔者就从使用者的角度来比较一下目前流行的输入法(所有配置均基于Mandrake 9.1、GNOME 2.2)。
概述
目前,Linux下的输入法基本能支持智能拼音和五笔两种方法,其中拼音输入都是面向词组而非整句的,这是目前的局限。由于笔者喜欢拼音,所以下面的比较大都以拼音输入为主。
在较新的Linux版本中,都通过/etc/sysconfig/i18n控制输入法。例如Mandrake 9.1下,使用scim时的i18n文件内容如下:
LC_ADDRESS=zh_CN
LC_COLLATE=zh_CN
LC_NAME=zh_CN
XIM=Scim
LC_NUMERIC=zh_CN
LC_TIME=zh_CN
LC_MEASUREMENT=zh_CN
LANG=zh_CN
LC_MESSAGES=zh_CN
LC_IDENTIFICATION=zh_CN
LC_CTYPE=zh_CN
LC_TELEPHONE=zh_CN
CONSOLE_NOT_LOCALIZED=yes
ENC=gb
LC_MONETARY=zh_CN
XIM_PROGRAM=scim
LC_PAPER=zh_CN
XMODIFIERS="@im=SCIM"
其中主要有三个选项控制使用何种输入法:XIM指出了输入法的名字,XIM_PROGRAM指出了应当运行的输入法程序,而XMODIFIERS则帮助设置环境变量,让输入法可以正常运行。一般来说,XIM就是输入法的常见叫法,如Scim、Xsim等,一般是首字母大写。XIM_PROGRAM必需与系统中输入法启动程序一致,如Scim的scim、Xsim的startxsim,一般全部小写,而XMODIFIERS中的@im=XXXX一般全部大写。
全局配置完成了,接下来就看看几种常见输入软件的具体使用。
Xsim输入法
Xsim全称为X Simple Input Method,作者是楚狂,是目前应用较多的中文输入软件。它的界面很漂亮,可定制性较强,光标跟随做得很好,但是系统依赖性较强。如果需要的相关软件不全,甚至版本不同都可能造成安装失败。
1.安装
该软件的主页是http://developer.berlios.de/projects/xsim/。Xsim的安装和其它软件类似,需要注意的是,它使用了db4 C++库,所以应该保证系统中已安装了libdb4、libdb4cxx等软件包。如果使用源代码安装,还需要libdb4-devel包。如果用RPM安装的话,请尽量使用和系统版本完全一致的发布版,如Mandrake 9.0与9.1就有所不同。我建议使用源代码方式安装。
2.使用
修改/etc/sysconfig/i18n文件进行配置,配置好以后,进入X-Window,可以看见左下角的“简”字,说明Xsim已正常启动。默认情况下,按“Ctrl+Space”启动中文输入,这时“简”字会有半个三角变成绿色,同时出现一个中文的句号,表示现在处于中文文字(拼音)及标点输入状态。其它与Windows下的紫光拼音完全一样,用Shift键快速切换中英文;用“,”和“.”在可选字中翻页;中文顿号是斜杠“/”,而不是通常的“\”;其它如用“Ctrl+Shift”切换拼音和五笔;用“Ctrl+.”切换中英文标点等,都符合Windows用户的习惯,如图1。
图1 胡乱搭配后的Xsim
3.配置
Xsim的默认配置文件是/usr/local/xsim/etc/xsimrc。我们可以在这里配置状态条(就是那个简字)和输入条的字体、颜色等,该文件带有说明和例子,非常简单明了。
4.缺点
每次启动X-Window以后,状态条都会出现在右下角,没有保存上次的位置状态,而且在KDE下的表现不如GNOME。另外,常见词组似乎不太符合惯例,一些使用频率较高的词组要翻几次才能找到。
Scim
Scim全称Smart Common Input Method,也是个人开发(这里个人只是相对于公司而言,与是否Team work无关),作者为苏哲。前面说过,Xsim与Windows下的紫光拼音非常相像,而Scim简直就是微软拼音的Linux版了,见图2。它和微软拼音一样使用“\”做顿号;会根据上下文自动选择双引号;在用Shift进行中英文切换时,中英文标点也会自动切换;支持繁体输入等。
图2 微软拼音Linux版――Scim
1.安装
在http://www.gnuchina.org/~suzhe/scim/下载,有各个模块的分类安装包,可以根据自己的需要下载。不过最简单的安装方式是下载scim-suite、scim-chinese和scim-tables三个RPM包进行安装。
2.使用
修改i18n文件、进入X-Window以后,除了不会出现状态条,其它使用方法基本类似,而且在KDE和GNOME中都很好用。
3.配置
Scim的用户配置文件是$HOME/.scim/config.zh_CN。这里文件名根据用户的Locale设置可能不尽相同。
我相信不用介绍,大家也知道这些按钮该怎么用。它缺省拥有智能拼音、内码、五笔和自然码输入方式。
4.缺点
光标跟随似乎略显不足,例如在OpenOffice中,输入条总在上方,不手工调整的话看起来就会很吃力(不知道是不是没有配置好)。
Fcitx
图3 小企鹅输入法
Fcitx是Free Chinese Input Toy for X的简写,最初称作G五笔,又是一个个人作品,作者为Yuking。它默认支持智能拼音、区位和五笔输入。该输入法现在还有一个专门的中文名,叫小企鹅输入法,它拥有不少的爱好者,见图3。它的网址为http://www.fcitx.org,里面有详尽的安装、设置介绍,这里就不再重复。它的切换方式比较独特,用左Ctrl键快速切换中英文,左Shift+空格切换中英文标点。
Chinput
图4 老牌输入软件――Chinput
Chinput(http://www.opencjk.org/~yumj/project-chinput.html)大概算得上是Linux图形界面下较早的中文输入法了,因此文档比较丰富,目前已经是3.0.2版,见图4。它支持最多的输入方式,也有很多可供配置的选项,如字体、颜色等,主要配置文件是/usr/lib/ZWinpro/Chinput.ad。我个人认为它就像Windows下的智能ABC,基本功不错,但是在界面和易用性上创新不够。
它的缺点是不能进行中英文的快速切换,还在使用v+英文的快速输入方式。有时安装会出现一些错误,例如在Mandrake 9.1中要想使用默认的Chinput输入法,还得手工修改两处:
◆ 修改/usr/lib/ZWinpro/Chinput.ad,将chinput.gblocale由zh_CN.GB2312改为zh_CN;
◆ 拷贝/usr/lib/unicon/modules/cce/dict/userphrase.tab到$HOME/.pyinput/下。
当然这些和Mandrake也有关系。
Xcin
图5 台湾同胞的Xcin
Xcin是台湾同胞的作品,因此习惯上与我们差别较大,如默认使用空格键翻页,不支持拼音词组。它虽然很多选项都可以自己配置,但仍略显麻烦,所以不推荐使用,见图5。
使用Xcin需要注意的几个地方是,它根据不同的Locale需要不同的XMODIFIERS变量。例如,如果是默认的zh_CN.BIG5,可能只需要设置@im=xcin就可以了,但在简体中文环境下,可能是xcin-zh_CN、xcin-zh_CN.GB2312等。要是不敢确定,在命令行中运行xcin,会显示所需的变量名,照搬就可以了。
当然,Linux下的中文输入法也不是只有这几种,例如陈桥智能五笔,也包括智能五笔、智能拼音,但是由于存在GPL纠纷,所以用的人不多。
介绍了这么多输入法,相信读者一定可以找到一款心爱的输入软件,再也不用为Linux的中文应用发愁了。
在推荐个网址,希望能有所帮助!
[SIZE=3]Linux下的中文输入[/SIZE]
作者:于明俭
----------------------------------------------
在汉字输入上, GB 与 Big5 的输入由于历史与习惯的原因, 已截然分化成两种, 这就是在大陆最流行的 Chinput 和 在台湾最流行的 XCIN, 它们都经历了自定义协议阶段, 目的是配合外挂式中文平台, 最终向国际化标准协议靠拢, 即支持XIM协议(日语输入软件kinput2也经历了漫长的过程). 在中文平台TL-ZWinPro下使用Chinput, 它的XIM协议和原来的协议能够无缝接合使用. 目前Chinput已成为大陆最流行的Linux中文输入软件. 它被众多的Linux中文平台所采用: TurboLinux 中文版3.02,4.0: 北京拓林思软件公司 ZhXWin: 由宫敏博士开发的Linux下的中文平台 Xteam Linux 1.0: 北京冲浪平台 BluePoint Linux(preview): 网络工作室 Chinput 以CXterm的输入引擎为基础, 支持中文GB/GBK/Big5, 日文和韩文输入. 后又增添了李振春先生的智能拼音输入, 使输入法日臻完备. 它具有独特的无边界窗口, 浏览输入模式, 单双行输入模式, 颜色字体可配置性. 如果配合中文平台 TL-ZWinPro, 它可以根据窗口当前的编码自动输入GB/GBK/Big5.极大地方便了中文用户的网上冲浪, 如浏览网页时的输入, 上BBS时输入, 都有可能需要同时输入GB和Big5编码, 这时您不必要重新启动Chinput, 便可以输入这两种不同的编码. 下面简述Chinput的中文输入接口, 以便有兴趣开发中文软件的Linux 程序员有更深入的认识. Chinput 协议 Chinput的最初协议是基于ClientMessage的Chinput协议. 它的 主要目的是为X Window下的客户程序提供方便的汉子输入接口. 它所提供的主要接口函数有: int HZclientInit() -- 初始化输入服务器 int HZsendKey() -- 以ClientMessage方式把键码发送给输入服务器 int HZprocInput() -- 处理输入服务器传来的输出 int HZqueryServer() -- 查寻输入服务器的信息 在 Chinput 注册的原子(Atom)有: "_CHINESE_CONVERSION" -- Chinput "_CHINESE_CONTROLBAR" -- 用于控制的控制条 "_HZ_OUTPUT_ATOM" -- 输出汉字 "_HZ_INPUT_ATOM" -- 输入汉子 "_HZ_CONFIG_ATOM" -- 配置属性 "_HZ_QUERY_ATOM" -- 查询属性 "_HZ_REPLY_ATOM" -- 答复属性 "_HZ_GRASP_ATOM" -- 抓词 上述原子用于 Chinput 和应用软件、控制条、抓词服务器之间进行 通讯. 控制条可以选择输入方法, 应用软件也可以通过热键选择输入 方法. 特别是应用软件可以配置输入条的输出编码. 使用Chinput协议必须有中文平台支持, 在TurboLinux中, 必须设置 环境变量 LD_PRELOAD=/usr/lib/libZWin.so XIM 协议 Chinput 对X11R6的国际化输入提供了标准接口, 即XIM接口. Chinput 所使用的Locale是zh_CN, 定义的输入服务器名称是"Chinput", 所以 在客户程序找不到 Chinput 时, 应设置XMODIFIERS为"@im=Chinput". XIM 的输入风格(preedittype)共有四种: on the spot, over the spot, off the spot, root window, "on the spot" 是在Client软件的当前 输入处输入, "over the spot" 是在当前输入处之上有一预编辑窗口提供 输入, "off the spot" 是在输入窗口的下方提供预编辑取和输入状态显示 区, "root window" 是在独立于输入软件的窗口中(该窗口为根窗口的子 窗口)输入. 可以看出, "root window" 是比较适合汉字输入的. Chinput 目前只支持根窗口输入风格(root-window style). 如果有必要, 其它的输入风格也将被陆续加入. XIM 支持与原协议无缝结合, 对用户来说是不透明的. 当用户在中文 平台上使用XIM支持的软件时, 原协议对该应用软件自动失效. 这要求 中文平台需要作特殊处理, 才能避免两种协议的冲突. 当您使用高层库函数, 如gtk/qt/Motif时, 您不必关心客户端的接口, 当使用Xlib写客户程序时, 请参见文章 编写支持XIM的客户软件. 支持软件(运行前设置LC_ALL=zh_CN.EUC, LANG=zh_CN.EUC) nxterm, 修改源码. 中文显示需中文平台支持 xemacs, 编译:configure --with-xim=xlib rxvt2.60, 编译:configure --enable-xim --enable-gb, 运行: rxvt -im Chinput -pt Root netscape: 需改动Netscape.ad, 部份输入区有问题: Netscape*fontList: -*-helvetica-bold-r-*-*-*-140-*-*-*-*-iso8859-*;-*-gb13000.1993-1: xedit: 资源文件, xtDefaultFontSet: cclib16,-adobe-*-iso8859-1 xedit*international: True xedit*fontSet: -tlc-*--16-160-75-75-c-160-gb2312.1980-1, -adobe-courier-bold-r-* -16-*-iso8859-1 .Xedit.shellext.inputMethod: Chinput .Xedit.shellext.preeditType: Root vim-5.4 命令:vim -g (aka gvim): X 资源文件 Vim*international: True Vim*.inputMethod: Chinput Vim*.preeditType: Root Vim.font: -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1 Vim*fontSet: -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1,-tlc-song-medium-r-normal--16-160-75-75-c-160-gb13000.1993-1 Vim*fontList: -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1,-tlc-song-medium-r-normal--16-160-75-75-c-160-gb13000.1993-1 vim 资源文件 .gvimrc(.vimrc): :set fileencoding=prc :set guifontset=-sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1,-tlc-song-medium-r-normal-*-16-*-*-*-*-*-gb13000.1993-1 qt-1.44(i18n patched)/KDE: setenv XMODIFIERS @im=Chinput gtk/gnome: 设置 fontset gimp: 须修改资源文件 Motif: 设置 fontset
这是我第一次在Linux下发言。Scim 真是好得很,和微软拼音几乎一样。
我运行emacs,可以输入中文,但是把文件存好之后,再打开就全是乱马了。这是怎么回事?
还有就是,scim输入的时候(不光是emacs),要想改个字,用Backspace删字,好像只能半个字半个字的删除,谁知道什么解决办法?
那位大侠能够解答这些问题?谢谢。
是这样的,在 .emacs 文件里面加入下面几句
(set-buffer-file-coding-system 'gb2312)
(set-terminal-coding-system 'gb2312)
(set-keyboard-coding-system 'gb2312)
(set-language-environment 'Chinese-GB)
于是就搞定了。不过 xemacs 好像还是不行。上述方法只对emacs有效。到网上查了一下,据说xemacs对中文的支持本身就有问题,可能不是那么容易搞定的。懒得再折腾了,于是就没管xemacs的毛病了。
Backspace 删除半个字的问题还没解决,大概这个也不是那么好办的。
也就是在把那些locale环境变量设置为zh_CN以后,打开firefox或者mozilla,发现menu上的英文字变得剧小无比,Bookmarks里的中文字也特小,看都看不清。但是网页的中文显示没有问题(本来在en_US设置下也没问题的,就是Bookmarks里的中文字大小不一)。
有那位大侠能解答我的问题?谢过了。