基於 vim-easymotion-zh 修改,讓 EasyMotion 支援嘸蝦米輸入法識別中文。
Patch EasyMotion to support Chinese text navigation using Boshiamy (嘸蝦米) input method.
使用嘸蝦米編碼快速跳轉到中文字:
- 單字元跳轉:輸入嘸蝦米編碼的第一個字母,匹配所有以該字母開頭的中文字
- 雙字元跳轉:輸入嘸蝦米編碼前2個字母,精確匹配對應的中文字
- EasyMotion 是一個很棒的 Vim 插件,但原生只能識別英文字母
- 我平時使用嘸蝦米輸入法,希望能用相同的編碼方式在 Vim 中快速定位中文字
- 基於 vim-easymotion-zh 的小鹤双拼實現,改為支援嘸蝦米輸入法
- 需要安裝 EasyMotion
- 必須設置
let g:EasyMotion_use_migemo = 1 - 需要熟悉嘸蝦米輸入法的編碼方式
在你的 ~/.vimrc 或 ~/.config/nvim/init.vim 中添加:
Plug 'easymotion/vim-easymotion'
Plug 'vi000246/vim-easymotion-boshiamy'然後執行:
:PlugInstallPlugin 'easymotion/vim-easymotion'
Plugin 'vi000246/vim-easymotion-boshiamy'use {
'easymotion/vim-easymotion',
requires = {'vi000246/vim-easymotion-boshiamy'}
}" 基本配置
Plug 'vi000246/vim-easymotion-boshiamy'
Plug 'easymotion/vim-easymotion'
" 必須啟用 migemo
let g:EasyMotion_use_migemo = 1
"搜尋一個char
map ,m <Plug>(easymotion-bd-f)
"搜尋兩個char
map ,s <Plug>(easymotion-s2)輸入嘸蝦米編碼的第一個字母,會匹配所有以該字母開頭的中文字。
範例:跳轉到「金」字
- 「金」的嘸蝦米編碼是
ae - 使用
<Plug>(easymotion-f)+a - 會匹配所有編碼以
a開頭的中文字,包括「金」
輸入嘸蝦米的前兩個編碼,會精確匹配對應的中文字。
範例:跳轉到「金」字
- 「金」的嘸蝦米編碼是
ae - 使用
<Plug>(easymotion-s2)+ae - 會匹配編碼以
ae開頭的所有中文字 - 相比單字元跳轉,重碼更少,候選位置更精確
- 嘸蝦米是一種形碼輸入法,編碼規則基於字形,學習曲線較陡但輸入效率高
- 如果你已經熟悉嘸蝦米,可以用相同的編碼邏輯在 Vim 中快速定位
- 需要熟悉嘸蝦米輸入法
- 生僻字可能無法定位(取決於 liu7.cin 詞庫)
- 使用的是 EasyMotion 不穩定的接口,後續 EasyMotion 升級可能會導致本插件無法使用
- 基於 liu7.cin(嘸蝦米7.0)
- 包含 19,680 個中文字和 22,778 個編碼
- 單字元模式:在
autoload/EasyMotion/migemo/utf8.vim中實現 - 雙字元模式:在
autoload/EasyMotion/cmigemo.vim中實現
- Vim 8.0+
- Neovim 0.5+
- MacVim
- GVim