2012年4月23日星期一

Vim自动补全括号

把如下代码拷贝到 .vimrc里面,即可获得一些自动补全括号的功能
  • 输入左括号自动补全又括号,并回退光标到括号之间
  • 快速输入左右部分,则没有补全,只会回退光标
  • 连续输入两个左括号则视为输入一个括号
  • 输入左括号并回车,补全又括号并在两个括号之间插入一个空行

function! SetPairMap(...)
    for var in a:000
        let start = var[0]
        let end   = var[1]
        execute "inoremap".start. " ".start.end."<Left>"
        execute "inoremap".start."<CR> ".start."<CR>".end."<ESC>O"
        execute "inoremap".start.start." ".start
        execute "inoremap".start.end." ".start.end."<Left>"
    endfor
endfunction
call SetPairMap(["(", ")"], ["[", "]"], ["{", "}"])
实际上你可以修改最后一行的函数调用语句,加入你想要的任何字符对