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 (一種韓文的編碼) 等編碼方式,以及許多常見的輸入法表格和方便的輸入功能,是一支相當優秀的中文輸入法程序。