Vim-autoclose出错
Jun 13, 2017
最近在用Vim的时候发现经常有误输入的括号,今天又出现了几次,于是着手troubleshooting。
多试了几次发现,只有在输入模式下,在自动生成的括号内位移的时候才会出这个错误。
然后就定位到了vim-autoclose
这个vim插件。
又发现使用方向键不会出错,然后就开始读这个插件的源码和文档。
大概知道是什么原因了:这个插件记录了括号要生成的位置,每次输入,这个位置也相应地向右移一位,按ESC或输入右括号的时候就会在这个位置生成。但是如果光标有位移怎么办呢?代码定义了一些输入按键(比如方向键),在输入这些按键的时候位置是不变的。这些按键是提前定义好的,但是没有读取.vimrc自定义的位移键(这里是ctrl-h
,ctrl-j
,ctrl-k
,ctrl-l
),所以在我使用了这些位移键位之后,要生成右括号的位置就有了偏差。
解决方法就是打开~/.vim/bundle/vim-autoclose/plugin/Autoclose.vim
,把自定义的位移键位添加到下面的代码中:
let s:movementKeys = split('ESC UP DOWN LEFT RIGHT HOME END PAGEUP PAGEDOWN C-h C-l') |
Voila!