我一直是乙個 vim 的使用者,在使用過程當中,當然也會覺得系統級的輸入法與 vim 的配合總是不是很流暢。我也不是乙個 vim 高手,很長一段時間內呢,也是湊合著用了。
後來我發現了 vimim 這個專案,當時就覺得很驚訝,因為我看到了之前我沒有想到過的一種實現方法——直接使用 vim 的內建指令碼能力實現完整的輸入法。這同時也重新整理了我對於「擴充套件能力」的看法。
之後,我在 vimim 的列表中參與了一些討論,然後在看它的原始碼時,覺得原理其實是很簡單易懂的,就是利用 vim 本身的「補全」功能即可。然後因為我僅僅需要使用五筆輸入法,會覺得 vimim 它太煩雜了(當時它就支援多種輸入法了),於是就試著完全重新實現乙個輸入法,僅僅支援五筆。
其實沒有多久乙個可用的版本就出來了,事實上也真的不難。然後又花了一些時間在優化效率(其實不用刻意優於也完全沒有問題的)和調整一些細節上。
從 2010 年左右算起,自己的這套東西也用了幾年時候了,自己感覺不錯。
實現 vim 的自定義補全函式。
具體實現就是根據輸入的字元去乙個碼表誰看中找對應的字。對於五筆來說,規則簡單碼表簡單。
在「輸入法」狀態時對映所有輸入鍵。
就是在輸入法狀態下,把輸入鍵(最基本的 [a-y] 鍵,五筆不需要 z 鍵)對映成輸入字元,同時觸發補全函式的行為,這樣就可以實現輸入了。
基本的就是這兩點。剩下的就是實現具體功能上的一些東西。
輸入法控制
unit u ime inte ce implementation uses windows,forms,imm,sysutils,messages varstmpclassname,stmpime string 失去焦點時的控制項名稱和輸入法名稱 msghandle hhook 0 判斷當前類名是...
輸入法鉤子
分為1個dll工程和1個win32空工程。新建乙個dll空工程,字符集使用多位元組字符集。以下是源 shurufa.h ifndef shurufa h define shurufa h include include include include pragma comment lib,imm32...
輸入法設定
scim 1.兩個scim圖示 使用 superuser產生乙個,可在設定裡將他從工作列隱藏 2.無法在eva中使用 sudo apt get install scim qtimm fcitx 1.安裝 設定預設 sudo apt get install fcitx sudo apt get ins...