■
[Vim]括弧の入力を少し楽に・・・
autocmd Syntax perl,ruby nmap ( i(<ESC>/\><CR>:call AddClosePair( ')' )<CR>:nohlsearch<CR> autocmd Syntax perl,ruby nmap { i{<ESC>/\><CR>:call AddClosePair( '}' )<CR>:nohlsearch<CR> autocmd Syntax perl,ruby nmap [ i[<ESC>/\><CR>:call AddClosePair( ']' )<CR>:nohlsearch<CR> autocmd Syntax perl,ruby nmap ' i'<ESC>/\><CR>:call AddClosePair( "'" )<CR>:nohlsearch<CR> autocmd Syntax perl,ruby nmap " i"<ESC>/\><CR>:call AddClosePair( '"' )<CR>:nohlsearch<CR> function AddClosePair(char) if getline('.')[col('.') - 1] =~ '\s' execute "normal i" . a:char . "\<ESC>" else execute "normal a" . a:char . "\<ESC>" endif endf
コマンドモード時に、開き括弧を入力すると、カーソル位置から単語末まで、括弧で囲います。
コードが汚い以前に・・・使い勝手が悪いので、もう少し仕様を考えて、ちゃんと作ろう・・・。
[訂正]
AddClosePair なんて作らずに、ea で良い事に気づく。ダサ・・・。
autocmd Syntax perl,ruby,javascript nmap ( i(<ESC>ea)<ESC> autocmd Syntax perl,ruby,javascript nmap { i{<ESC>ea}<ESC> autocmd Syntax perl,ruby,javascript nmap [ i[<ESC>ea]<ESC> autocmd Syntax perl,ruby,javascript,vim nmap ' i'<ESC>ea'<ESC> autocmd Syntax perl,ruby,javascript,vim nmap " i"<ESC>ea"<ESC>