輸入法應該顯示幾個選字鍵?—一次小小的數位考古

zonble
15 min read3 hours ago

--

在一個跟幾個朋友的私人頻道中,這兩天在討論一個話題—好像很多的輸入法在選字的時候,只有用到 1–9 這九個鍵,那麼,有沒有可能拿鍵盤上的 0 這個按鍵,做一些比較不一樣的行為?

但是,又好像有很多的輸入法,把 1–0 總共 10 的按鍵,都拿來做選字按鍵使用了。那麼,過去中文輸入法,到底是用9個,還是用上了10個選字鍵?我們現在的輸入習慣—尤其是中文輸入法的選字體驗—又是從什麼時候養成的?因此,做了一些小小的考古。

結論是,從 DOS 到 Windows 的主要系統內建輸入法,都一直維持著使用九個選字鍵的行為。過去二、三十年,台灣絕大多數的個人電腦用戶,使用的都還是微軟的DOS與Windows系統,因此微軟的系統整個決定了選字行為與習慣。

此外過去還有許多有趣的選字設計,或許是因為系統比較冷門,這些設計並沒有成為後來的主流,而一些輸入法因為系統改版的過程中(像是從傳統的 Mac OS 變成 macOS X 的過程)整個改寫,整個行為也往微軟建立的習慣靠攏。

接下來會談到一些二、三十年前的事情,當時很多資料可能沒有妥善保管至今,很多部分都要靠一些殘破的記憶,如果有誤祈請見諒。

DOS 時代

中文個人電腦大約是在 1980 年代末開始發展,到了90年代初變得比較成熟,當時有一堆台灣的電腦公司在做不同的中文系統,甚至在一些中文DOS遊戲中,都必須自己做一套中文系統進去。不過,大部分個人電腦用戶,是以以天中文系統,做為日常文書工作的環境。

倚天輸入法中,每個輸入法要有多少個候選字並不固定,像是簡易、注音等每打一個字就需要選字的輸入法,都是用 1–9 九個候選字。

倚天中文中的注音輸入法。大約 1994 年前後。
倚天中文當中的簡易輸入法

但是在可以自動選字的忘形輸入法當中,則又是把 1–0 都用上,變成了總共個候選字。

倚天中文環境的選字行為

在震漢中文系統中,則是統一使用九個候選字。

震漢中文系統 1993 年版本。

震漢中文系統中,如果連續按下 Ctrl + Alt + 3 按鈕,一開始會切換到注音輸入法,接著還可以切換到另外一套國音輸入法,裡頭用的是現在的自然等輸入法當中的許氏鍵盤,開始使用 ASDFG… 這一排,當做選字按鍵。我以前也在倚天中文下用過 DOS 下的國音輸入法,就是後來的自然輸入法,不過現在找不太到。

震漢中文中的國音輸入法。大約 1993 年。

另外一套國喬中文,一樣使用 1–0 總共十個選字鍵。

國喬中文的選字行為。大約 1993 年。

Windows

進入 90 年代的時候,微軟開始在 Windows 3.0、3.1 環境中支援中文。不過在 Windows 剛推出的時候,其實是先進入 DOS,打一個叫做 win 的指令,再進入圖形介面,個人電腦上有著大量的應用程式與遊戲,還是在 DOS 運作。在 Windows 95 之後,才變成個人電腦一開機就進入圖形介面。可說整個 90 年代,個人電腦上都還是圖形介面與文字介面混用的狀況,大概直到 Windows XP 推出才真的讓 DOS 的時代結束。

以繁體中文輸入法的體驗的發展來看,Windows 3.0/3.1 的時代,把選字按鍵的數量變成 9 個。Windows 3.0/3.1 的注音、倉頡、行列、大易…等輸入法,輸入介面都是在整個視窗環境的最下方—以輸入法行為的術語叫做 root window—裡頭就剛好設計成可以容納九個候選字。即使是在視窗環境下,還是保留了 DOS 環境中中文輸入的體驗。

當時個人電腦上還有另外一套作業系統 OS/2,輸入體驗也差不多,不過我手邊沒有 OS/2 環境。

到了 Windows 95/98/Me 的時代,輸入法的樣式從 root window 變成 over the spot,有一個獨立懸浮在輸入位置上的視窗,選字窗也從水平變成垂直,但繼續保持使用九個候選字的行為。

Windows 98 的注音輸入法,通常也被稱為「ㄅ半」。大約 1999–2000 年。

這個時候,微軟也推出了自家的自動選字注音輸入法—新注音輸入法。一樣使用九個字的垂直選字窗。

Windows 98 的新注音輸入法。大約 1999–2000 年。

時間快轉到好多年後的幾個版本。在 Windows 7 當中,我們可以看到仍然保持著這種九個候選字的垂直選字窗,但是多了一個可以往旁邊展開的按鈕,讓選字窗展開成一個二維表格式的畫面。

以下是將選字窗展開的畫面。

一直到最近的 Windows 11,其實也是保持這樣的風格。

Windows 11 還是有一些改變,像是在選字中,包括原始輸入的字根。另外,新注音輸入法在不同的版本之間,其實換過名字,在 98 的時代還叫做 New Phonetic,現在則改叫做 Microsoft Bopomofo。

在 Windows 一直都有很多的第三方輸入法,以注音輸入法來說,也有許多不同於內建輸入法的設計,像是自然輸入法的 2x4 總共八個候選字的設計,或是酷音輸入法的 3x3 總共九個候選字的設計(酷音輸入法也可以自行調整行數與列數),漢音輸入法也把原本在 macOS 上的行為移植到 Windows 上,但是,主流的選字體驗,還是一維式的設計—單獨垂直或是水平的選字視窗。

在 Windows 中,其實不是什麼時候,都能夠使用輸入法自己的選字窗設計。在 Windows XP、Vista 等版本後,絕大多數的生產力類的軟體,都變成了 On the spot 樣式,就是,使用者在輸入法中打的文字,其實會直接渲染在正在打字的應用程式中,在選字的時候則顯示屬於輸入法的選視窗。但是,還有許多所謂的 Off the spot 應用程式,包括 Windows 自己的命令行工具、終端機視窗,還有許多的全螢幕遊戲(又以網路遊戲居多),會自己繪製選字 UI,這些全螢幕應用程式與遊戲,大概也只會簡單繪製一行字當做選字 UI。

如此一來,就算在其他應用程式中,設計了特別的選字介面,但也可能變成徒勞,只會與這些 Off the spot 應用程式不相容。而因為有這些 Off the spot 應用程式的存在,用戶也一直以來接受就是一行或一列的選字介面。

Windows 7 的命令提示字元

就以自然輸入法來說,過去做了不少專屬的設計,而這幾年還是可以看到,整個行為會愈來愈往微軟新注音靠近,甚至在現在的第13版,一裝起來,就會問你,要使用以前的自然輸入法的模式,還是微軟新注音的模式。

自然輸入法 13 的安裝畫面。

拿數字鍵 0 做其他的事情

回到一開始的問題—選字鍵大多數狀況只用到 1–9 ,可不可以 0 這個按鍵做點別的事?實際上還真的有輸入法這樣幹過,我們來看一下倚天中文2000系統。

在 Windows 3.0/3.1 有了中文支援之後,自然造成 DOS 中文環境開始萎縮,但倚天還是繼續開發了一陣子中文環境,包括 Windows 95/98/me 的 DOS 環境下的中文環境,以及一些 Windows 當中的中文輸入法,我們可以看一下當中的忘形輸入法。

倚天中文 2000 的忘形輸入法中,除了原本的自動選字注音之外,還多了一個智能模式,差別在於智能模式支援中英文混打—如果發現一連串的按鍵組合不是正確的注音組合,就會變成輸入英文而不是注音,因為注音輸入的容錯被拿掉,因此使用這個模式,就需要特別注意在打注音的時候不會按錯按鍵,類似後來的 RIME 或是華碩注音輸入法的體驗。

在這個模式下,0 這個按鍵就會變成輸入原本的英文字母,大概是避免原本想輸入英文,卻不小心變成合法的注音組合,不過我想不太到什麼實際的例子。

在原本的注音模式下,則繼續保持九個候選字的傳統。

在倚天中文2000中,有許多不同的鍵盤配置,像是一般熟悉的大千、倚天 41與 26 鍵、精業、IBM 等,其中還有一個沒怎麼聽過的零壹2025鍵盤。取這個名字或許是期望可以在90年代末、千禧年際,有著像2025年一樣的科技體驗,而一轉眼2025年也就快要到了。

Mac OS/OSX/macOS 上的中文體驗

在考古的過程中,也去順便看了一下其他的系統。

過去三十多年,Windows 的輸入法很大程度延續了來自 DOS 的傳統,但其他系統的背景不一樣—以 macOS 來說,因為從一開始就完全是圖形介面,沒有 DOS 的文字介面傳統,設計的思路就差很多。

我能找到的最早的繁體中文 macOS,是 1990 年的 6.0 版。在這個版本中,選字體驗是 over the spot,一下就列出 15 個候選字,然後前十個候選字可以用數字選,最後五個得要用方向鍵選擇。每個候選字前方沒有顯示按鍵名稱,而為了方便辨識,所以每隔五個候選字,還會畫一條線分隔。

中文 System 6 的輸入法,大約 1990 年
中文 System 6 的輸入法,大約 1990 年

到了 System 7/macOS 7 的時代之後,則有了漢音輸入法。漢音的設計則是,候選字、選字鍵,能顯示多少、能用多少,就統統是最高的上限。

漢音的選字窗的大小是可以自己放大的。在選字窗中,一次顯示這個視窗所能夠顯示的所有的候選字,而選字鍵最多可以有十二個,在9按鍵的右方的 0、-、=,也全部用上去,而隨著改變選字窗的寬度,也可以減少選字數量。

中文 macOS 7.5.3,大約 1994 年
中文 macOS 7.5.3,大約 1994 年

到了macOS 8,漢音大抵上維持這種多行的選字介面不變,但是選字鍵只會出現在被選到的那一行上,比較清楚標示出是哪一行被選中。另外也加上了可以快速切換到某一行的英文按鍵。

macOS 8.6 上的漢音輸入法,大約 1997–1998 年

蘋果後來推翻了原本的 macOS 的架構,在 2001 年推出 macOS X,上面的所有輸入法也需要重寫。我大概是在 macOS X 10.3 Panther 的時候購入一台白色的 iBook G4, 那時候系統裡頭沒有可以自動選字的注音輸入法,但是 clkao 那時候把酷音 port 到 macOS X 上,那時候才有像是 SpaceChewing 可以用,我也大概那時候開始碰一些輸入法開發,也才有後來的 OpenVanilla、小麥注音這些…。

這是後話。總之,那時候可以看到,蘋果在重寫繁體中文輸入法的過程中,也把體驗變得比較像微軟的體驗,例如簡單的單行選字窗,以及使用九個候選字的設計。不過這幾年蘋果的注音輸入法的選字又變成可以動態展開,不知道是不是受到了什麼其他的啟發。

macOS 15 上的倉頡輸入法

Sun Solaris

在網路上找資料的時候,在 Oracle 網站上找到以前的 Solaris 手冊。我在大學畢業之後就沒有碰過 Sun 的機器,而我那時候用的還是古老的 SunOS 2.4 與 OpenWin 系統,上面就只有一個 CXTerm 終端機可以打字(不太記得當時為什麼沒有把 Xcin 裝起來用)。Oracle 網站上講的 htt 中文輸入,我更是完全沒印象了。

一份手冊中,可以看到,如果在終端機中打字,是用整個展開的方式顯示選字窗,用的居然是 ABCD 字母當成選字鍵,那照理說應該可以有 26 個選字鍵。

另外一份手冊中的畫面,看起來比較新,看起來之後也從多行的選字窗改變成單行直式的。但是選字鍵仍然是使用 ABCD 排列。

Linux/UNIX/UNIX Like 系統

在比較現代的 Linux/UNIX Like 桌面環境中,主要的輸入法框架大概包括 gcin、iBus、fcitx 等等。更早一些,還有 xcin、oxim、cxterm 等等,不過試了一下,這一些中文工具,好像在最近的 Linux 環境中裝不太起來。

對於 Linux 用戶來說,就算是在圖形介面中,其實最常使用的應用程式仍然是終端機,有許多工作都是在終端機完成,甚至很多人是一開機之後就馬上進入終端機,我還依稀記得在 90 年代很多人也只用 console 不進入終端機環境,然後可以用 zhcon 在 console 下顯示中文。或許就像 Windows 其實繼承了 DOS 時代的一些習慣,Linux 的中文輸入的體驗,也與終端機的體驗相關。

我發現我今年裝的一些系統,包括 Kubuntu 24、Ubuntu Mate 24 等,都已經把內建的輸入法換成了 fcitx 5。fcitx 5 框架提供的選字介面就是垂直與水平選字窗,然後像 Gnome 或 KDE 環境,也設計了自己的選字介面(像是 kimpanel),也就只是單純的一行而已。至於選字鍵數量,由於 Linux 上一直以來的自動選字注音輸入法主要是酷音,而酷音的選字按鍵預設使用十個。

Ubuntu Mate 24.04上使用 fcitx 5 的酷音輸入法

iBus 的體驗也差不多。

在 Ubuntu Mate 上使用 iBus 與酷音輸入法

gcin 有非常強烈地向倚天中文致敬的味道。除了裡頭包含了倚天中文的各種輸入法之外,就連切換輸入法的位置都差不多,倉頡都是 Ctrl + Altt + 1,注音是 Ctrl + Altt + 3,在倚天中, Ctrl + Altt + 6 是忘形輸入法,在 gcin 中則是自行開發的另外一套自動選字輸入法—詞音輸入法。至於選字介面也是簡單的一條直式選字窗。

雜感

2004 年的時候,有個朋友因為 macOS X 上面沒有倚天排列的手動選字輸入法,所以自己寫了一個,到了十月底的時候,他又整個大幅重寫了一次,弄出了 OpenVanilla 框架,一般也稱為香草輸入法,可以在這個框架裡頭允許多種輸入法,我也跟著在這裡頭寫了點東西,一下子就二十年了。

OpenVanilla 當時規劃了很多東西,現在來看實在是用不著。在選字窗這一塊,OpenVanilla 裡頭定義了三種選字窗:純文字沒有方向鍵功能的、一維(水平或垂直)可以用方向鍵移動的,還有一種是直接放個小瀏覽器,用 HTML/CSS 製作選字窗,所以什麼種類的選字窗都可以畫。

2006 年的「入力娘」選字窗

那個時候心血來潮,把一些可愛女孩子的插畫放進去,稱之為入力娘;另外有一個雛形做到一半就覺得超難用—選字介面不是一個視窗,而是一個圓形,各個候選字在輸入焦點位置圍成一個圓,用方向鍵選字的時候,這個圓還會轉…。

後來這個輸入法有了跨平台的需求,當時有個客戶想做一套輸入法,這樣在用戶的桌面上,就會一直有這個品牌的 Logo,可以加強品牌印象,這個輸入法除了 macOS X 之外,也需要 Windows 版本。那時候就知道,如果有跨平台的需求,把 UI 搞得太複雜大概會搞死自己,在某個平台很容易做的事情,不見得在別的平台就弄得出來。

另外一個教訓可能更重要,就是在台灣做輸入法實在賺不到什麼錢,我很欽佩繼續在做輸入法開發的商業公司。但輸入法就是一種跟身體習慣有關的事情,習慣只要養成了就改不掉,我也在用自己寫的輸入法,吃自己的狗食,一定程度也把手上的輸入法,改成自己順手的樣子,於是這幾年還是在繼續維護。

而這幾年因為在工作上總會接到一些之前想不到的任務,沒辦法只用某一個平台工作,隨時可能用到 Windows、Linux 等,就起了想動手移植的念頭。最後就發現,輸入法這種天天在用的東西,其實 UI 只要簡單就好,而且好的自動選字輸入法應該要盡量讓選字窗少出現才對。

然後做了這樣一個小小的考古之後,又發現,其實現在繁體中文輸入法的體驗,距離 DOS 時代,實在沒有很遠。

--

--