起因
最近有点想把我自己的vim改造得像ide一点,就网上搜了一圈同时删除前后括号或引号的vimrc代码,只看到一个很鬼畜的配置文件,当光标前是左括号时,会删除前后括号内所有的东西。可能有用,但我不是很喜欢这样一下子全删,其次对于括号嵌套的情况,可能也会出现(())
被删成)
的情况,因此我就自己写了个朴实无华的删除()
或[]
之类能匹配上的成对符号的BackSpace函数。
使用条件
就是光标在括号当中时按Backspace就可以了。
vimrc代码
func DeleteBoth()
if (getline('.')[col('.') - 2] == '(' && getline('.')[col('.') - 1] == ')')||(getline('.')[col('.') - 2] == '[' && getline('.')[col('.') - 1] == ']') || (getline('.')[col('.') - 2] == '"' && getline('.')[col('.') - 1] == '"') ||(getline('.')[col('.') - 2] == "'" && getline('.')[col('.') - 1] == "'") || (getline('.')[col('.') - 2] == '{' && getline('.')[col('.') - 1] == '}')
return "\<ESC>2s"
else
return "\<BS>"
endif
endfunc
inoremap <BS> <c-r>=DeleteBoth()<CR>
使用方法
把上述代码直接粘贴到vimrc配置文件就可以了。
转载请注明出处,祝大家能快乐地使用vim。