在 Vim 中实现括号自动补全

相信经常写程序的人,时常会有漏写一半括号的情况发生。Vim本身并没有自动补全括号的功能,网上查找发现如下代码,进行相应修改后,用起来很是方便
将下面的代码加入到 ~/.vimrc 中,重启 Vim,即可:

:inoremap ( ()<ESC>i
:inoremap ) <c-r>=ClosePair(')')<CR>
:inoremap { {<CR>}<ESC>O
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>
:inoremap " ""<ESC>i
:inoremap ' ''<ESC>i
function! ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "
lt;Right>"
else
return a:char
endif
endfunction

上面的代码利用了Vim的键盘映射功能,可以自动补全"(、{、[、'、" ",大家可以按照自己的习惯进行修改。 这样,写代码的时候不再担心会丢掉右边的括号了。