Vimで線を引く時

少し前にVimで線を引くとき、どうしているか聞いてみたら、
ナイスガイ id:ns9logが、自分のやり方を教えてくれたよ。


Vimで線を引く時
http://d.hatena.ne.jp/ns9tks/20081127/1227757541

" 指定桁数になるようなセパレータ文字列 (<pre><char><char><char>...<post>) を得る
function! <SID>GetSeparatorLineString(pre, char, post, col_len)
  let chars_len =  a:col_len - (virtcol(".") - 1) - strlen(a:pre) - strlen(a:post)
  if chars_len < 0 || strlen(a:char) == 0
    return ''
  endif
  return  a:pre . repeat(a:char, chars_len / strlen(a:char)) . a:post
endfunction

" 78桁のセパレータ文字列 ('{{'.'{1' としているのは折り畳み誤爆防止 )
inoremap <expr> <C-\>   <Nop>
inoremap <expr> <C-\>// <SID>GetSeparatorLineString('//', '/', ''        , 78)
inoremap <expr> <C-\>/- <SID>GetSeparatorLineString('//', '-', ''        , 78)
inoremap <expr> <C-\>/. <SID>GetSeparatorLineString('//', '.', ''        , 78)
inoremap <expr> <C-\>/* <SID>GetSeparatorLineString('/*', '*', '*/'      , 78)
inoremap <expr> <C-\>"" <SID>GetSeparatorLineString('"' , '"', ''        , 78)
inoremap <expr> <C-\>-- <SID>GetSeparatorLineString('-' , '-', ''        , 78)
inoremap <expr> <C-\>== <SID>GetSeparatorLineString('=' , '=', ''        , 78)

......


私の方法、

40i=<ESC>

は、落ち着いて作業をしている時、作業の合間合間で区切りを入れられる時はともかく、
お急ぎモードで作業している場合には、コマンドの実行を忘れてしまうことが多いから、
結構使えないんですよ。