以下に説明するlatexパッケージのimaps.vimプラグインに含まれているsnip()関数をどのように使用すると思いますか。
切り取り:テキストのブロックの上下にハサミの文字列を配置します{{{説明:
これにより、視覚的に選択された行のブロックの上下に文字列 "--------%<---------"が配置されます。'tearoff'文字列の長さは、選択した範囲の最大文字列長によって異なります。これは、長さをハードコーディングするのではなく、見た目に美しい代替手段です。
function! <SID>Snip() range
let i = a:firstline
let maxlen = -2
" find out the maximum virtual length of each line.
while i <= a:lastline
exe i
let length = virtcol('$')
let maxlen = (length > maxlen ? length : maxlen)
let i = i + 1
endwhile
let maxlen = (maxlen > &tw && &tw != 0 ? &tw : maxlen)
let half = maxlen/2
exe a:lastline
" put a string below
exe "norm! o\<esc>".(half - 1)."a-\<esc>A%<\<esc>".(half - 1)."a-"
" and above. its necessary to put the string below the block of lines
" first because that way the first line number doesnt change...
exe a:firstline
exe "norm! O\<esc>".(half - 1)."a-\<esc>A%<\<esc>".(half - 1)."a-"
endfuntion