中文输入法完美配合 MacVim

我之前抱怨 Mac 下的 Vim(MacVim)不好用一个主要的理由是和输入法的整合搞不定:每次遇到需要输入中文的情况,切换成中文输入法,然后按 Esc 回到 normal 模式,之后再用 jkhl 移动光标,就会发现变成在输入法候选词打字了。还要再切换回英文输入法,很麻烦。

很怀念 Linux 下的操作:在 insert 模式下切换中文输入法输入完成,然后按 Esc,就自动切换回英文输入了。我本来以为这只是 Linux 下的特色,Mac 无法实现。不过今天又折腾了一下,发现竟然是可以的。

魔法发生在以下这三行配置代码上,把它们加入到 .vimrc 里面:

set noimdisable
autocmd! InsertLeave * set imdisable|set iminsert=0
autocmd! InsertEnter * set noimdisable|set iminsert=0

别忘了在 MacVim 的偏好设置界面里面(按 ⌘+, ),把 Draw marked text inline 这个选项去掉,否则的话在里面用输入法会有问题。

Ok,好好享受 Mac 下的 Vim 吧。

还有,如果你用的是鼠须管,你会遇到切换成鼠须管后是鼠须管的英文状态的问题,还需要再按 Shift 切换成中文。这是鼠须管的问题,它对于 MacVim 会默认开启英文输入,只要找到配置文件 squirrel.yaml

org.vim.MacVim:
  ascii_mode: true

这两行注释掉,变成:

#org.vim.MacVim:
#  ascii_mode: true

就可以了。

而至于我为什么在 emacs 和 sublime text 饶了一圈之后又回到 Vim 呢?毕竟 Vim 是伴随我好多年的编辑器嘛。emacs 呢,现在还不搞 lisp 编程,所以也暂时用不上。主要是 emacs 的配置太难搞,懒得折腾了。而 sublime text 呢?我很烦它时不时弹出对话框来要我去付钱,而且用这种编辑器总免不了会多用鼠标点点点,难以像 emacs or vim 那样完全用键盘去控制。

其实最主要的原因,是来自于硬件。之前我用一台 11 吋的 Macbook Air,再背上我的小机械键盘 KBT Pure 也才不过是一台 13 吋 Air 的重量。而我今天拿到了我的 15 吋的 Mackbook Pro,想到以后每天都要背上这个两公斤重的东西上下班,我觉得背包的重量能减轻一点是一点,就不打算用机械键盘了,直接用原生键盘吧。而之前用 emacs 主要的原因是用外接键盘时,我是用手掌去按 ctrl 键的,我的手大还比较方便。但是用原生键盘的话,按 ctrl 又是另一种策略了。尽管我把 caps lock 改成了 ctrl + esc,但是以使用 emacs 那样的频度去用小拇指按 caps lock,也得累得半死。

最后剩下的选择,就只有 MacVim。既然输入法的问题也完美解决了……那就用吧

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章