ime-phonetic.vim 是 ime.vim 的 standalone 套件。
此 plugin 可同時做為注音及拼音輸入法使用。
安裝此 plugin 以後,請在 g:ime_plugins
裡面加上 'zhuyin'
:
let g:ime_plugins = ['zhuyin']
或是 pinyin
let g:ime_plugins = ['pinyin']
兩個 plugin 可以同時啟用,詞庫是共用的,記憶體使用量不會變成兩倍
- 關閉系統的輸入法,直接輸入注音/拼音,注音/拼音會直接出現在編輯區中
- 選字
- 若使用方向鍵(
<Up>
/<Down>
)選詞,按下 Enter(<CR>
)即可選字 - 若使用
<C-n>
/<C-p>
選詞則不需要再按其他按鍵
- 若使用方向鍵(
- 按下
'
可以只從第一個字開始選字,不會做任何的詞語搜尋- 再次按下
'
可以重新使用詞語搜尋
- 再次按下
- 支援基本的模糊輸入
ㄏㄉ
可以產生活動
hd
可以產生活動
- 註:同樣的詞,拼音的模糊搜尋會比注音慢一些
- [注音] 按下
;;
以後,可進入標點符號模式- 按下
,
可輸入,
- 按下
.
可輸入。
- 按下
:
可輸入:
- 輸出標點符號以後會自動回到注音中文模式
- 按下
- [拼音] 由於拼音只使用英文字母,故標點符號可以直接輸入,並會轉換成全型標點符號
- [拼音] 若輸入後選單右方有數字出現,可以按下對應的數字來選字
設定快取的大小:
let g:ime_phonetic_cache_size = 2000
- ime-phonetic.vim 會對先前搜尋過的詞句做快取,以加速詞句搜尋
- 快取並不會寫入檔案,關閉 Vim 以後就會消失
自訂詞庫:
let g:ime_phonetic_custom_table = '~/.phonetic.table'
此設定沒有預設值,請在需要時自行設定
加入的新詞會被排在第一順位
詞庫檔案的格式為「詞 拼音」或是「詞 注音」:
#這是註解 妹紙 meizhi 面癱 ㄇㄧㄢˋㄊㄢ_
- 由於詞庫是共用的,所以用注音加入的詞,在拼音也可以輸入
- 底線 (
_
) 可以用來代表空白字元 - 若用拼音來定義新詞,聲調的資訊將會遺失
本套件仍然在開發中,有一些已知的問題,若發現問題或是有開發想法,歡迎開 issue。
ime-phonetic.vim 的詞庫是由為 MIT License 授權的 小麥注音 轉換而來
轉換的 Makefile/script 在 這裡
在 ime-phonetic.vim 之中,最關鍵的幾個演算法是符號切割、選字選詞與快取。
使用者輸入了一串注音/拼音符號以後,這些符號需要先分組,每組的符號才能形成文字。
ime-phonetic.vim 把 所有的注音組合 以及 所有的拼音組合 以 VimScript 紀錄成一個 dict。
輸入的符號串依序被取出,並一個個接上 acc
;
若在加入新符號以後,仍有任意一個組合以 acc
開頭,則 acc
可以繼續累積。
反之,不包含新符號的 acc
被視為一個獨立的字組。
在注音符號被分組成讀音以後,這些讀音需要選字選詞才能形成句字。
ime-phonetic.vim 使用了 Dynamic Programming,搭配詞庫中的詞頻來選詞。
這個方式類似 木條切割問題 。
不同之處在於,ime-phonetic 使用了 dict 而不是 2D array 來儲存 DP 的過程。
即使選詞已經完成,這個 DP 過程不會也被丟棄;它會被保留以加速下次的選字選詞。
根據 g:ime_phonetic_cache_size
的設定,超出大小以後,最舊的項目會被優先刪除
感謝 iblis 以及 Pellaeon 提供拼音輸入的使用者體驗。
本軟體使用 2-clause BSD license 發佈,請參考 LICENSE.txt