vim里的括号自动补全与删除

来源:互联网 发布:python jsonrpc 编辑:程序博客网 时间:2024/04/28 13:08
编辑.vimrc

插入括号匹配:

inoremap ( ()<LEFT>inoremap [ []<LEFT>inoremap { {}<LEFT>

 

括号自动删除:

function! RemovePairs()        let l:line = getline(".")        let l:previous_char = l:line[col(".")-1]        if index(["(", "[", "{"], l:previous_char) != -1                let l:original_pos = getpos(".")                execute "normal %"                let l:new_pos = getpos(".")                if l:original_pos == l:new_pos                        execute "normal! a\<BS>"                        return                end                let l:line2 = getline(".")                if len(l:line2) == col(".")                        execute "normal! v%xa"                else                        execute "normal! v%xi"                end        else                execute "normal! a\<BS>"        endendfunctioninoremap <BS> <ESC>:call RemovePairs()<CR>a

 

忽略多余右括号:

function! RemoveNextDoubleChar(char)        let l:line = getline(".")        let l:next_char = l:line[col(".")] "             if a:char == l:next_char                execute "normal! l"        else                execute "normal! i" . a:char . ""        endendfunctioninoremap ) <ESC>:call RemoveNextDoubleChar(')')<CR>ainoremap ] <ESC>:call RemoveNextDoubleChar(']')<CR>ainoremap } <ESC>:call RemoveNextDoubleChar('}')<CR>a


 

0 0
原创粉丝点击