編注:本文為入選投稿之一,除本文外,我們后續還有其他投稿選送首頁,敬請留意。
▍前言
在中文環境中,無論使用什么操作系統,一個好用的輸入法軟件都是必不可少的。但輸入法往往也是隱私問題的重災區,它們常駐后臺,我們也免不了會借助它們輸入大量敏感內容,互聯網公司們自然也可以輕松利用輸入法來監視用戶行為、篡改系統設定甚至注入后門程序。
![]()
如果你覺得這有些危言聳聽了,不妨了解一下早些時候火絨團隊曝光的《搜狗輸入法云控下發模塊,“暗中”篡改瀏覽器配置》。
所以無論在電腦還是手機上,我個人都會盡量選擇使用開源注重隱私的輸入法軟件,在 Android 系統上,我一直使用的則是小企鵝輸入法。
小企鵝輸入法是由 Linux 端的輸入法軟件 Fcitx5 移植而來的,它幾乎不會申請任何額外權限,甚至不需要聯網,這保證了它的隱私與安全性。但另一方面它的功能又非常豐富,內置了多種輸入方案支持,還允許我們通過安裝插件的方式來進一步擴展功能。
我算是這個輸入法最早期的用戶之一,在這期間看著這個輸入法一點點改進,也變得越來越好用。但必需要說的是,即便當下這個輸入法也算不上完美,盡管有著強大的 Fcitx 作為基礎,小企鵝輸入法依然缺失了一些功能,比如目前默認只有 qwerty 布局,不支持自定義鍵盤布局,沒有九鍵布局可以使用,更沒有手寫輸入支持;也沒有內置語音輸入功能,要想使用語音輸入需要額外配置;使用門檻也比較高,有些配置選項比較復雜,甚至有一部分選項因為是直接從桌面端移植過來的,在手機上并不會真正起效。
如果能夠接受上面的缺點,這個輸入法軟件的功能還是十分強大的,這篇文章我將詳細介紹這款輸入法軟件的配置與使用,除了能夠快速上手外,我還會介紹一些實用的高級功能。
下載與安裝
你可以直接從 GitHub Releases、F-Droid 或 Google Play 三個渠道下載到最新穩定版的小企鵝輸入法,從 GitHub Release 和 F-Droid 下載到的安裝包可以相互覆蓋安裝,但是 Google Play 版本無法覆蓋安裝。
GitHub:https://github.com/fcitx5-android/fcitx5-android/releases
你也可以使用小企鵝輸入法更新器下載最新版 CI 構建的安裝包,更新器還可以用來下載輸入法插件,這就是后話了。
![]()
??開始使用快速上手
第一次打開,你需要按照 App 指示把小企鵝輸入法設為系統輸入法,每一步都挺直觀的,無需多說,之后小企鵝輸入法會申請唯一一個需要的權限——通知權限,授予權限后就可以進到軟件主界面了。
![]()
首先打開全局選項。我個人不太喜歡顯示預編輯,所以關掉了,下面幾個選項可開可不開,影響不大,其余的就沒什么需要更改的了。
![]()
接著是第二項輸入法,默認有英語和拼音兩個。我個人主要用小鶴雙拼,所以我點擊上方的編輯按鈕移除了默認的拼音輸入法,然后點擊右下方的加號添加了雙拼輸入,長按并拖動可以調整輸入法的順序,我將雙拼放在最上方,優先使用雙拼方案,再點擊雙拼右邊的齒輪圖標。雙拼方案設置成了小鶴,我不太習慣輸入法開預測,所以我把預測也關掉了。
![]()
這樣我們就得到了一個基本可用的輸入法了,雖然看起來比較丑。
![]()
配置外觀
接下來對外觀進行配置。
首先進入主題,小企鵝輸入法內置了幾個主題配色,最近的版本更新中還加入了根據壁紙自動取色的主題。如果對內置的主題不滿意,可以去下方網址自己設計主題配色,再導入到 App 內。
https://fcitx5-android.github.io/theme-designer/
主題配置里,我習慣啟用按鍵邊框和水波紋特效。邊距和圓角這個按照個人喜好更改就好,另外還可以設置跟隨深色模式切換主題。
![]()
虛擬鍵盤設置里,我習慣默認展開工具欄,鍵盤字母保持大寫,不顯示語言切換鍵,并把長按空格設置為切換輸入法。
![]()
這樣一番設置,輸入法就看起來順眼很多了。
![]()
▍基本用法
拋開沒有九宮格布局不談,小企鵝輸入法的功能其實已經非常完善,正常的 qwerty 鍵盤、數字鍵盤、特殊符號、emoji 甚至是顏文字都一應俱全,按鍵也支持長按彈出更多選項。
![]()
除此之外,小企鵝輸入法還有一些很有意思的功能。比如當輸入法有預編輯未提交的文本時,可以按住退格鍵并向左滑動一次性取消所有預編輯內容,如果沒有預編輯文本且光標在文本框內的話,也可以通過按住退格鍵并左右滑動快速選中文本并刪除。
這個功能太過于好用,以至于我在長期使用后已經形成了肌肉記憶。


另外他還有從 Gboard、或者說更早的 Google Pinyin 借鑒過來的,使用空格移動光標的功能。當有預編輯未提交的文本時,可以按住空格左右滑動編輯未提交文本,當沒有預編輯文本且光標在文本框內,也可以按住空格并左右滑動移動光標。


它也有拆字模式,當想要打的字記得長什么樣但忘記讀音,就可以把字拆開分別輸入,輸入法會自動識別出你想打的字,比如輸入「鑫」字,就可以連續輸入三個「金」字的讀音,在候選中會自動出現「鑫」字。
![]()
如果手機中有安裝兼容的自動填充軟件,比如我使用的 Bitwarden 密碼管理器,小企鵝輸入法也支持在工具欄中顯示自動填充預覽。
![]()
添加詞庫
詞庫的豐富與否決定了輸入法體驗的好壞,小企鵝輸入法自帶的詞庫其實體量不是很大,不過我主要用雙拼輸入,重碼率本來就比較低,再加上時間長了輸入法也會記住輸入習慣,所以我個人感覺上即使不添加額外詞庫,體驗也不是很糟糕。
但話說回來,小企鵝輸入法本身確實也是支持加載額外詞庫的。它支持 3 種格式的詞庫:
第一種是 Fcitx5 專用的詞庫格式,擴展名為.dict,在 Github 上有一些現成的項目,比如 zhwiki 詞庫,它是使用中文維基百科詞條生成的詞庫,詞條數有超過百萬,每月更新一次;再一個是 moegirl 詞庫,它是使用萌娘百科詞條生成的詞庫,也是每月更新一次。
上面兩個詞庫基本就覆蓋了日常用語和網絡用語。還有一個 Minecraft 詞庫,它是使用 Minecraft Wiki 詞條生成的詞庫,如果平時玩 Minecraft 比較多,可以考慮裝這個詞庫。其實上面三個詞庫都是使用 MW2Fcitx 生成的,理論上任何使用 MediaWiki 搭建的維基站點,都可以使用 MW2Fcitx 爬取下來生成詞庫,少數派站內已經有相關的文章介紹了。
上面這三個詞庫其實都可以作為小企鵝輸入法的插件安裝,在小企鵝輸入法更新器里,有pinyin-zhwiki、pinyin-moegirl以及pinyin-minecraft三個插件,安裝詞庫后,需要重載配置才能生效,可以通過在多任務界面劃掉小企鵝輸入法的后臺卡片實現重載,也可以點開輸入法工具欄的三個點,其中有個重載配置的按鈕。
![]()
值得一提的還有一個項目 CustomPinyinDictionary,這是一個從各種來源收集的同樣有百萬詞條數的大詞庫,不過這個詞庫沒有供小企鵝輸入法使用的插件,所以安裝起來要麻煩一點。它有手動安裝和 Magisk 模塊安裝兩種方法,如果手機已經使用 Magisk 或 KernelSU 獲取了 Root 權限,那就直接刷入 Releases 里的CustomPinyinDictionary_Fcitx_Magisk_******.zip模塊文件,刷入之后無需重啟。如果手機沒有獲取 Root 權限,就需要從 Releases 下載CustomPinyinDictionary_Fcitx_*******.tar.gz文件,解壓后獲得擴展名為.dict的文件,再手動安裝詞庫。在小企鵝輸入法主界面點擊第三個附加組件選項,找到「拼音」,點擊右邊的齒輪按鈕,往下翻找到「管理詞庫」,點擊右下角加號,選擇剛剛獲取到的詞庫文件,便可以導入詞庫了,同樣導入詞庫后不要忘了重載配置。
![]()
小企鵝拼音支持的第二種詞庫則是 txt 格式的純文本詞庫,詞庫的格式為詞語 拼音 權重,每行一條,每個單字的拼音之間要用半角單引號隔開。不過需要注意每個漢字與拼音需要一一對應,且要遵循漢語拼音的基本規則。如果拼音不規范,即使導入也不會起作用。
需要注意的是,韻母中含有ü的話會比較特殊,特別是üe,其他的輸入法大多是ue和ve都可以使用,而 fcitx5 的詞庫似乎只接受ue的拼法。按照 2001 年發布的《漢語拼音方案的通用鍵盤表示規范》,雖然在鍵盤輸入時字母v可以代替拼音字符ü使用,但是絕大部分時候ü上的兩點都可以省略掉寫成u,只有在少數情況,比如lü和lu兩個讀音完全不同且都有意義,才需要使用v代替ü。這樣看來,Fcitx5 對于拼音的處理是更規范的。
比如我可以組下面三個詞:
閱后即忘 yue'hou'ji'wang 555
后羿奔月 hou'yi'ben'yue 555
寧濫毋缺 ning'lan'wu'que 555
將上述內容保存為custom.txt文件,導入詞庫的步驟和前面完全一樣,重載配置后,就可以加載自定義詞庫了,下面是輸入的效果:
![]()
而如果將其中的韻母ue改成ve,像下面這樣:
閱后即忘 yve'hou'ji'wang 555
后羿奔月 hou'yi'ben'yve 555
寧濫毋缺 ning'lan'wu'qve 555
那么導入詞庫后就不會起作用:
![]()
第三種是搜狗的細胞詞庫,以網絡流行新詞為例,直接下載擴展名為.scel的細胞詞庫,也是同樣導入詞庫的步驟,并重載配置,就可以加載搜狗細胞詞庫。
![]()
另外,我上面提到的這些詞庫都是只適用于拼音輸入法的,如果你使用的是其他的形碼方案,比如五筆,那么這些詞庫就不適用了,不過形碼方案一般應該也不需要額外加載詞庫吧。
??高級用法Unicode 與快速輸入
如果想要輸入無法直接打出來的特殊字符,小企鵝輸入法從桌面端 Fcitx5 移植來了兩個功能:Unicode 模式和快速輸入(Quick Phrase)模式。鍵盤左下角的逗號按鍵,在長按時會彈出三個選項,中間的是 emoji 鍵盤,往左劃是 Unicode 模式,往右劃是快速輸入模式。
![]()
在 Unicode 模式下,可以通過輸入字符的 Unicode 編碼或是關鍵詞來查找相關的字符,以輸入希臘字母「π」為例,按住逗號按鈕并左劃進入 Unicode 模式,然后輸入編碼03C0或是關鍵詞「greek small letter pi」就可以找到「π」字符了。
![]()
不過我有點想吐槽:這個 Unicode 模式也太硬核了,想要輸個特殊字符還要去查 Unicode 表,查到了以后就能直接從表里復制了,還要輸入法干嘛。
快速輸入模式簡單來說就是一些自定義短語來快速定位一些特殊字符,和詞庫不同的是它不需要拼音和漢字一一對應,也不需要嚴格遵循拼音規則,小企鵝輸入法已經內置了一些 QuickPhrase 表,想要查看的話,在附加組件里找到「快速輸入」,點擊右邊的齒輪按鈕,再點擊「編輯器」,就可以看到內置的快速輸入表了,默認有 emoji、顏文字和 LaTeX,點擊旁邊的編輯按鈕可以看到每個表內的內容。
![]()
可以看到,為了防止三個表內容混亂,emoji 和 LaTeX 的短語都是有一個特殊字符作為開頭的,emoji 表是以冒號開頭,而 LaTeX 表是以反斜杠開頭。
但是這里就出現了一個問題,這些內置的快速輸入表也是從桌面端移植來的,所以也沒有考慮在移動端輸入的情況,還是以前面的字符「π」為例,這個字符在 LaTeX 表里,但是經過我的嘗試,在小企鵝輸入法的快速輸入模式里,是沒辦法打出來反斜杠的,這就導致了無法使用快速輸入模式輸入「π」以及其他 LaTeX 字符。
不過好在快速輸入表也是可以進行自定義的,我找到了 LaTeX 表的原文件,稍微更改了一下,把開頭的反斜杠改成了普通斜杠,這樣就可以在小企鵝輸入法上正常輸入了,我把修改過的文件放在了下方鏈接,把文件下載下來保存為custom-latex.mb。在快速輸入編輯器界面點擊右下角的加號,選擇導入文件,選擇剛剛下載的文件,就可以導入自定義快速輸入表了。
https://gist.github.com/so1ar/1c3e94e8ce66184a574b26e6dbec1e07
![]()
同樣以輸入「π」為例,按住逗號按鈕并右劃進入快速輸入模式,然后輸入/pi,就可以找到符號「π」了。
![]()
Lua 腳本
支持載入 Lua 腳本是小企鵝輸入法從桌面端 Fcitx5 移植而來的另一個功能,簡單來說就是可以使用自定義 Lua 腳本來修改輸入內容。小企鵝輸入法已經內置并默認啟用了一些 Lua 腳本,比如在輸入「時間」、「日期」關鍵詞時,會自動在候選中出現當前的時間和日期:
![]()
同樣 Lua 腳本也可以進行自定義,不過有些復雜,Fcitx5 官方的文檔寫的有些過于精簡了,我在互聯網上也只找到了一個寫的比較通俗易懂的教程。
Fcitx5 的 Lua 腳本支持兩種格式:Google Pinyin 格式和 Fcitx 格式。本篇文章我就只簡單介紹一下 Google Pinyin 格式的 Lua 腳本怎么編寫,因為 Fcitx 格式的腳本更加復雜,我也沒有搞明白。
Google Pinyin 格式的 Lua 腳本,按照我的理解可以分為兩個部分,第一個部分定義一個函數,用來返回想要輸出的內容,第二個部分使用特殊的函數來調用之前定義的函數,從而決定在何時用什么方法輸出內容。而可用的特殊函數有三個,分別為:
register_command (command_name, lua_function_name, description, leading, help),用于在快速輸入模式中自定義內容。其中command_name是快速輸入的觸發詞,只可以是兩個字符;lua_function_name是調用的函數名;description是命令的描述;leading是選擇結果的快捷鍵,可以設置為digit用數字鍵選擇,也可以設置為alpha用字母選擇,也可以選擇none禁用快捷鍵;help是命令更詳細的幫助,不過似乎這個選項并不會生效。register_trigger (lua_function_name, description, input_trigger_strings, candidate_trigger_strings),可以用于直接在候選中添加自定義內容。其中lua_function_name、description和第一個函數用法相同;input_trigger_strings是匹配輸入的字符串;candidate_trigger_strings是匹配候選中的字符串。register_converter (lua_function_name, description),用于直接修改輸出的內容。其中只有兩個參數,用法和上方一樣。
作為演示,我編寫了一個 Lua 腳本,主要有以下功能:
當輸入「少數派」或「派」的時候,自動在候選中添加希臘字母「π」;
在快速輸入模式中輸入
pi,會出現漢字「少數派」;當想要打出「我是少數派」時,會自動替換為「少數派,高效工作,品質生活」。
-- 定義一個函數,返回希臘字母 π
function pai(str)
return "π"
end
-- 定義一個函數,返回字符串「少數派」
function sspai(str)
return "少數派"
end
-- 定義一個函數,把「少數派」三個字替換為「少數派,高效工作,品質生活」
function sspai_plus(str)
local tmp = string.gsub(str, "我是少數派", "少數派,高效工作,品質生活")
if tmp ~= nil then
str = tmp
end
return str
end
-- 當候選中存在「少數派」,在候選中添加希臘字母 π
ime.register_trigger("pai", "希臘字母 π", { }, { "少數派" })
-- 當候選中存在「派」,在候選中添加希臘字母 π
ime.register_trigger("pai", "希臘字母 π", { }, { "派" })
-- 在快速輸入模式中輸入 pi,返回字符串「少數派」
ime.register_command("pi", "sspai", "少數派", "none", "")
-- 當打出「我是少數派」三個字時,自動替換為「少數派,高效工作,品質生活」
ime.register_converter("sspai_plus", "替換少數派")
將上述內容保存為custom_plugin.lua文件,并放入用戶根目錄的Android/data/org.fcitx.fcitx5.android/files/data/lua/imeapi/extensions/里面,如果沒有文件夾就需要手動創建。重載輸入法后,就可以測試 Lua 腳本是否生效了:
![]()

另外在小企鵝輸入法的交流群里,有人分享了一個計算器腳本,同樣將calculator.lua文件放入指定文件夾,重載配置后就可以生效,在快速輸入模式下先輸入等號=,再輸入算式,就會自動計算:
![]()
問題是在高版本 Android 系統中,用戶無法直接訪問Android/data目錄了,我個人推薦使用 MT 管理器,如果獲取了 ROOT 權限,可以直接訪問Android/data目錄,如果沒有 ROOT 權限,則可以嘗試使用 Shizuku 授權而獲得訪問Android/data的能力。
程序插件
在小企鵝輸入法更新器中,還可以下載很多程序插件來擴展小企鵝輸入法的功能。
除了前文提到的三個詞庫插件,還可以添加其他的中文輸入方案,比如五筆 98、鄭碼和倉頡;或者添加其他語種的支持,比如日語、韓語和越南語;甚至可以添加中州韻輸入法引擎,從而支持導入現成的 Rime 輸入法方案;還有一個特殊的功能剪貼板過濾插件。
受限于我個人的知識水平以及篇幅,我不可能詳細介紹每個插件,這里我只稍微講一下兩個插件:剪貼板過濾插件和 Rime 插件。
剪貼板過濾插件(fcitx5-android-plugin-clipboard-filter)的功能其實很簡單,就是對復制到剪貼板的網頁鏈接應用 ClearURLs 規則,從而去除鏈接中的跟蹤元素。安裝插件并重載后即刻生效,無需額外配置。之后嘗試復制一個帶跟蹤元素的鏈接,比如https://example.com?utm_source=newsletter1&utm_medium=email&utm_campaign=sale,就會發現在輸入法的剪貼板歷史里跟蹤元素被自動去除了:

不過需要注意的是,如果使用的是后臺限制比較嚴格的國產安卓系統,這個插件可能不會生效,可能要把輸入法和剪貼板過濾插件全部設為允許后臺運行才能生效。
另一個要講的插件是中州韻輸入法插件(fcitx5-android-plugin-rime),中州韻輸入法是一個跨平臺的開源輸入法引擎,自定義程度極高。在小企鵝輸入法引入中州韻插件之前,Android 平臺唯一可用的中州韻輸入法實現是同文輸入法 trime,我在之前也是用的它,并且自行維護了一套 Rime 輸入方案,不過同文輸入法我用下來穩定性比較差,經常崩潰,也比較卡頓,所以在小企鵝輸入法達到了基本可用狀態后,我就不再用同文輸入法了,對于 Rime 配置文件怎么寫也忘得差不多了。
中州韻的具體配置比較復雜,為了演示方便我就直接使用現成的輸入法方案:霧凇拼音。
在安裝了中州韻插件并重載配置后,在小企鵝輸入法主界面的輸入法選項里就可以添加中州韻輸入法了;
把霧凇拼音的 Github 倉庫整個打包下載,解壓后將全部文件復制到
Android/data/org.fcitx.fcitx5.android/files/data/rime/目錄下;在任意輸入框中呼出小企鵝輸入法,點擊工具欄上的三個點展開工具欄,點擊重載配置,會在左下角出現一個
< >圖標,點擊這個圖標,在彈出框中點擊重新部署;
![]()
等待部署成功后會彈出提示,此時再次點擊
< >圖標,就可以選擇想要的輸入法了,我這里選擇小鶴雙拼;
![]()
之后就可以使用霧凇拼音方案了。
![]()
結尾
目前來看,小企鵝輸入法確實是相對于 iOS 平臺來說的 Android 獨占應用,未來這個情況可能會發生改變,在其 GitHub 倉庫的 README 中提到,小企鵝輸入法的 iOS 版本、macOS 版本、HarmonyOS 版本、Windows 版本以及 ChromeOS 版本都在開發中,iOS 版本目前正處于開發者公測階段,功能有所缺失且還未上架 App Store,其他的版本目前都還不可用。不過還是值得期待的。
https://sspai.com/post/103871?utm_source=wechat&utm_medium=social
作者:so1ar
責編:克萊德
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.