vim的括号自动补全
- 九月 1st, 2007
vim的自动补全功能很强大,如c-x,c-o,c-x,c-L等都很实用。但有个小缺陷,就是vim不支持括号的自动补全,例如我们在输入函数的时候常常一次把函数的括号输入然后再倒退一格进入括号内进行编辑,这个习惯很好,防止比较长的函数后忘了括号,不过vim可以自动完成这个功能,让你爱不释手。这一小段代码就可以搞定:
下载: buquan.vim
<?php
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf
:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {}<ESC>i
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "\<Right>"
else
return a:char
endif
endf