在 VIM 中如何提高中文编辑效率
在 VIM 中编辑中文时出现的问题:
- 在 Insert 模式输入中文时,发现前面输入的有错误或者其他情况需要进入到 Normal 模式时,点击 ESC, 这时还是中文模式,需要切换输入法才能更好地移动鼠标。
- 从 Normal 模式进入到 Insert 模式,还需要再次切换输入法才能继续输入中文。
- 切换到 Cmdline 模式查找中文时,也需要切换输入法。
编辑中文时需要经常切换输入法,影响编辑体验与效率,怎样才能提高在 VIM 中的中文编辑效率呢?
我想到的方法是自动切换输入法。 从其他模式下进入到中文编辑情时设置不同的快捷键( linux,iBus,假设第一个输入法是英文,第二个是中文)。
" Change input method automatically let englishInputMethod='gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"' let chineseInputMethod='gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"' let editStrings = ['i', 'I', 'a', 'A', 's', 'S', 'o', 'O', 'gi', 'gI', 'c', 'C', 'R', 'gR', 'r', 'gr'] for str in editStrings exec 'noremap <silent> <Leader>' . str . ' ' . ':call system(chineseInputMethod)<CR>' . str endfor let searchStrings = ['/', '?'] for str in searchStrings exec 'noremap <silent> <Leader>' . str . ' ' . ':call system(chineseInputMethod)<CR>' . str . '<Down>' endfor inoremap <silent> <Esc> <Esc>:call system(englishInputMethod)<CR>
请问还有更好的方法吗? 在编辑中文时还会遇到什么问题,怎么解决的?