vim 중괄호의 자동 완성

1683 단어 vim자동 완성
드디어 괄호 자동 보완을 깊이 이해했다[1]!vim의 이 기능은 수동으로 설정해야 하기 때문에 콩잎에서 비교적 완벽한 버전을 찾았다[2]. 서둘러 훔쳐왔다.게으르기 때문에, 나는 인용부호의 보완 기능을 추가했다.이 코드가 있으면vim의 괄호 보완은 Sublime Text 2와 같다.
다음 코드를 에 붙여넣습니다.vimrc 파일:
function! AutoPair(open, close)        
    let line = getline('.')        
    if col('.') > strlen(line) || line[col('.') - 1] == ' '
                return a:open.a:close."\<ESC>i"
        else
                return a:open
        endif
endf
function! ClosePair(char)        
    if getline('.')[col('.') - 1] == a:char                
                return "\<Right>"
        else
                return a:char
        endif
endf
function! SamePair(char)        
    let line = getline('.')        
    if col('.') > strlen(line) || line[col('.') - 1] == ' '
                return a:char.a:char."\<ESC>i"
        elseif line[col('.') - 1] == a:char               
                 return "\<Right>"
        else
                return a:char
        endif
endf

inoremap ( <c-r>=AutoPair('(', ')')<CR>
inoremap ) <c-r>=ClosePair(')')<CR>
inoremap { <c-r>=AutoPair('{', '}')<CR>
inoremap } <c-r>=ClosePair('}')<CR>
inoremap [ <c-r>=AutoPair('[', ']')<CR>
inoremap ] <c-r>=ClosePair(']')<CR>
inoremap " <c-r>=SamePair('"')<CR>
inoremap ' <c-r>=SamePair("'")<CR>
inoremap ` <c-r>=SamePair('`')<CR>

좋은 웹페이지 즐겨찾기