我的vim 自动实例括号函数
不废话,直接上代码:
1 """"""""""""""""""""""""""""""""""""""""""" 2 "自动实例括号 3 """"""""""""""""""""""""""""""""""""""""""" 4 ""inoremap ( ()<ESC>i 5 inoremap ( <c-r>=OpenPair(‘(‘,‘)‘)<CR> 6 inoremap ) <c-r>=ClosePair(‘)‘)<CR> 7 inoremap { {}<ESC>i 8 inoremap } <c-r>=ClosePair(‘}‘)<CR> 9 inoremap [ []<ESC>i 10 inoremap ] <c-r>=ClosePair(‘]‘)<CR> 11 inoremap " <c-r>=QuoteDelim(‘"‘)<CR> 12 inoremap ‘ <c-r>=QuoteDelim("‘")<CR> 13 14 function! OpenPair(char1,char2) 15 let line = getline(‘.‘) 16 let col = col(‘.‘) 17 if col(‘$‘) == col 18 return a:char1 . a:char2. "\<Left>" 19 else 20 return a:char1 21 endif 22 endfunction 23 24 function! ClosePair(char) 25 if getline(‘.‘)[col(‘.‘) - 1] == a:char 26 return "\<Right>" 27 else 28 return a:char 29 endif 30 endfunction 31 32 function! QuoteDelim(char) 33 let line = getline(‘.‘) 34 let col = col(‘.‘) 35 if line[col - 2] == "\\" 36 "Inserting a quoted quotation mark into the string 37 return a:char 38 elseif line[col - 1] == a:char 39 "Escaping out of the string 40 return "\<Right>" 41 else 42 "Starting a string 43 return a:char.a:char."\<Esc>i" 44 endif 45 endf
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。