Linux下的中文输入法简介


1、纯文字模式下的中文输入:

◆一般而言,文字模式下的输入法并没有特殊的规范或协议,程序所要做的,只有取得使用者的字键输入,再将中文输出到「标准输出 (standard out)」管道,系统自然会将这些文字喂入应用程序中。只要应用程序能够接受并处理 8位字符码,则不会有任何问题。

2、X Window 下的中文输入:

2.1. XIM 协定:

◆在 X Window 的图形接口底下,由于各程序间的交互作用是以「窗口」为单位,它们可以藉由标准的 X 协议达到彼此间的沟通,故我们自然而然地可以将中文终端机程序与输入法本身分开发展输入与输出是两个独立的应用程序,可以通过X协议来传递数据),而不再需要像纯文字模式下将二者绑在一起 (在早期确有将二者绑在一起的解决方案,如 cxterm,它是直接自 XWindow 的标准终端机程序 xterm 修改而来),如此在一个图形桌面上只需执行一个中文输入法,就可以对许多中文终端机程序提供中文输入的服务,不但节省系统资源,同时模块化的开发模式也让后续维护工作容易得多。

◆然而,在 X Window 下的输入法所面临的问题却比纯文字下要复杂许多。由于考虑到程序国际化等方面的问题,故 X Window 定义了一组标准的输入法协议,称之为 XIM (X Input Method) 协定。此协议是架构在程序国际化 (I18N) 与系统的地区环境 (locale) 之上的,故只要遵守此协议,则应用程序就可以在不需修改程序代码的原则下,接受来自各种语系输入法程序的文字输入。

◆与纯文字输入方式不同的是,在这里输入法程序不预先拦截使用者的字键输入。而应用程序与输入法程序之间的关系,就好像客户端与伺服端一样,应用程序提出输入请求,则输入法程序提供输入服务。因此,当我们对一个窗口做中文输入时,实际上敲入的字键是直接送往应用程序本身,而应用程序在处理它之前,会先经由 XIM 协议将这些字键序列送往输入法程序,然后由输入法程序那边取得中文字。故在此协议下,应用程序又称之为 ``XIM client'',而输入法程序又称之为 ``XIM server''。

◆在一个 ``X Window 的显示设备 (display)'' 中 (这里意指一个屏幕、一个键盘,再加一个鼠标,也就是一个 X Window 终端桌上环境),可以同时执行好几个 XIM server,它们可以输出不同语系的文字 (例如有的可以用来打中文,有的可以打日文),或其中有几个可以输出相同语系的文字。而 XIM client 要选那一个 XIM server 来使用,必须透过以下两个环境变量的设定:

export LC_CTYPE=
export XMODIFIERS="@im={XIM server 名称}"

其中前者指定了语系环境,后者指定了要用那一个输入法程序。所有的 XIM client在启动之前必须先有上述的环境变量设定,启动后才能接受该 XIM server 的输入。

◆一般 XIM server 所显示的信息可以分成以下三类:

A. 组字信息: 显示于 XIM server 组字的过程中。

B. 状态信息: 显示 XIM server 目前的状态。

C. 其它辅助信息: 例如菜单选单或在线文件说明等。

其中依组字与状态信息显示的位置不同,就形成了各种操作接口 (input style),

◆供使用者方便使用。其中包括:

A. Root: 此信息显示在 XIM server 的主窗口内。

B. OverTheSpot: XIM server 会在 XIM client 的输入光标附近开启一个小窗口,以显示组字信息。如此使用者在打字过程中眼睛就不需老看XIM server 主窗口组字信息。

C. OffTheSpot: XIM client 会在自己的窗口中开出一块区域,让 XIM server来显示其组字信息。此区域通常是在 XIM client 窗口的底下。

D. OnTheSpot: XIM server 提供必要的数据给 XIM client,让它用自己的方法来画 XIM server 的组字信息。这通常是给有特别需求的 XIMclient 选用。

◆其中 Root 模式是最简单的方式,一般而言所有的 XIM server 与 XIM client都会支持,至于其它的模式则不一定。必须 XIM server 与 XIM client 都同时支持的模式才使用。如二者同时支持几种模式,当二者开始连系,准备让使用者输入时,它们就会先协调,以挑选最佳模式用。很多时候使用者可以在 XIM client 这指定要使用那一种模式。

2.2. XCIN (X Chinese INput method):

A、支持 BIG5, BIG5HKSCS, 与 GB2312 等多种编码方式。使用时只要在不同的地区环境 (LC_CTYPE) 下启动它,即可自动采用该语系的编码来做输入。

B、支持动态外挂式输入模块,让我们可以依需要开发不同的输入法模块,以支持不同的输入法。

C、支持多种输入法。

D、支持 Xi18n, XIM 协议与 Root 和 OverTheSpot 输入模式。

E、拥有丰富多样使用者自定选项。

F、可以跨平台编译执行,其中包括 GNU/Linux, FreeBSD 与 HP-UX。

2.3. Chinput

◆这是一个针对 GB 编码与大陆地区使用者习惯而设计的中文输入法,它是以 cxterm 为基础发展出来的。它同样支持 XIM 协议,与 XCIN 相较,它具备较佳的拼音输入功能,有较好的图形操作接口,同时也支持 GB、Big5、JIS(一种日文的编码) 与 KS (一种韩文的编码) 等编码方式,以及许多常见的输入法表格和方便的输入功能,是一支相当优秀的中文输入法程序。

相关文章】

  • Linux操作系统下的常用输入法
  • 新手学堂:Fcitx输入法在LumaQQ中的设置
  • 基于SCIM输入法自己配置一个“万能五笔”
  • Ubuntu中SCIM输入法不能随机启动的问题

相关内容