vi ftp archive

ftp://ftp.cc.monash.edu.au/pub/vi/
かなり面白いものがある。

  • macros/commentC

C のコメントの中で改行したとき、次行の先頭に'*'をつける。vim の :set formatoptions+=r に相当。

map! <cr> <c-v><esc>Yp:s/[^\*	]/ /g<esc>A <esc>:s/  *$//g<esc>A
  • macros/markring

マークリング、いわゆるブックマークに近い。- で現在行をマークして、= でジャンプ。

map ]1 :unmap =
:map = ]2
`a:"to mark 'a'
map ]2 :unmap =
:map = ]3
`b:"to mark 'b'
map ]3 :unmap =
:map = ]4
`c:"to mark 'c'
map ]4 :unmap =
:map = ]5
`d:"to mark 'd'
map ]5 :unmap =
:map = ]1
`e:"to mark 'e'
map = ]1
"	add current point to the mark ring
map +1 :unmap -
:map - +2
ma:"marked 'a'
map +2 :unmap -
:map - +3
mb:"marked 'b'
map +3 :unmap -
:map - +4
mc:"marked 'c'
map +4 :unmap -
:map - +5
md:"marked 'd'
map +5 :unmap -
:map - +1
me:"marked 'e'
map - +1
  • macros/wordsearch

カーソル下の単語を検索。ただしカーソルが単語の先頭の文字上になければならない。

map [Z "zyeo/\<<Esc>"zpA\><Esc>"zdd0@z

伝説的な vi マクロによるチューリングマシンハノイの塔も入っている。