VIM實(shí)現(xiàn)自動(dòng)添加新行
emacs在編輯代碼時(shí),有個(gè)功能,在輸入{};時(shí)可以自動(dòng)追加新的一行。減少敲回車的次數(shù)。將下面的代碼加入VIM的配置文件后,可以在編輯c,cpp,h后綴的文件時(shí),也同樣有這個(gè)功能。
function Find_for()
if search('^\s*[f]or', 'b', line('.'))
return ""
endif
if search('\"', 'b', line('.'))
if searchpair('\"', '', '\"', 'b', '', line('.'))
return "\r"
else
return ""
endif
endif
if search('\''', 'b', line('.'))
if searchpair('\''', ';', '\''', 'b', '', line('.'))
return "\r"
else
return ""
endif
endif
return "\r"
endfunction
autocmd BufReadPost *.{c,cpp,h} inoremap <expr><buffer> { '{'."\r"
autocmd BufReadPost *.{c,cpp,h} inoremap <expr><buffer> } '}'."\r"
autocmd BufReadPost *.{c,cpp,h} inoremap <expr><buffer> ; ';'.Find_for()
缺點(diǎn),對(duì)于“和‘的匹配沒有重復(fù),嵌套檢測(cè)的功能。在某些情況下,會(huì)導(dǎo)致自動(dòng)回車。
如:
std::cout << "hello world" << "second ;
有興趣的話,可以再改進(jìn)一下。