Silly vi tricks, and silly macros
http://www.faqs.org/faqs/editor-faq/vi/part2/ より。
ちょっとでも実用的かつ面白いのはこれくらいかな。
fmt を使わずに現在のパラグラフを80文字で折り返す。 map K {wma}b:'a,.j<ctrl-v><enter>:s/\(.........................................................\)/\1<ctrl-v><ctrl-v><ctrl-v><enter>/g<ctrl-v><enter> 連続する空行を1行に圧縮する。 :v/./$s/$/<ctrl-v><enter>./|'';/./-1j|$d
これでステータスラインとルーラーというのは笑うところだろうか。
vi status line (sort of...) [Note: It's slow...] map <ctrl-v><up-arrow> k<ctrl-v><ctrl-g> map <ctrl-v><down-arrow> j<ctrl-v><ctrl-g> map k k<ctrl-v><ctrl-g> map j j<ctrl-v><ctrl-g> map <ctrl-v><ctrl-f> <ctrl-v><ctrl-f><ctrl-v><ctrl-g> map <ctrl-v><ctrl-b> <ctrl-v><ctrl-b><ctrl-v><ctrl-g> map H H<ctrl-v><ctrl-g> map M M<ctrl-v><ctrl-g> map L L<ctrl-v><ctrl-g> map G G<ctrl-v><ctrl-g> map <ctrl-v><ctrl-u> <ctrl-v><ctrl-u><ctrl-v><ctrl-g> map <ctrl-v><ctrl-d> <ctrl-v><ctrl-d><ctrl-v><ctrl-g> Insert a ruler above the current line map #r O<ctrl-v><esc>i....+....1....+....2....+....3....+....4....+....5....+....6....+....7....+....8<ctrl-v><esc>
この辺は vim -u NONE ではうまく動かなかった。
set # to toggle line numbers on and off: map \o# o:se nu<ctrl-v><enter>:se nonu<ctrl-v><esc>-:map \o# "wp<ctrl-v><enter> map \d# "w2dd map \x# "xdd@x"xpk map # ma3L\o#\x#\d#`a:<ctrl-v><enter> allow vi to backspace over text that was inserted in a previous insert mode map! <ctrl-v><ctrl-?> $<ctrl-v><esc>Xs map! <ctrl-v><ctrl-h> $<ctrl-v><esc>Xs This makes end notes. map K ma1GO[0]<ctrl-v><esc>G$?\[[0-9]*\]<ctrl-v><enter>lyt]`aa<ctrl-v><enter><ctrl-v><esc>O<ctrl-v><esc>pI:r!echo '1 <ctrl-v><esc>A + p' <ctrl-v><ctrl-v>| dc<ctrl-v><ctrl-v><ctrl-v><ctrl-v><ctrl-v><ctrl-v><ctrl-v><enter><ctrl-v><esc>0"yD@y0i[<ctrl-v><esc>A]<ctrl-v><esc>kkJJJmb1Gdd`bF[yf]Go<ctrl-v><esc>pA