[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>