(親記事はコチラ Vimコマンド&Script入門)
buffer-listの操作はだいたい分かりました。
次は、各バッファに一括編集、bufdoを学習します。
まずはヘルプ確認。
:[range]bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list or if [range] is given only for buffers for which their buffer number is in the [range]. It works like doing this: :bfirst :{cmd} :bnext :{cmd} etc.
buffer-listの中の全てのバッファへの編集だけでなく、rangeを指定することで、特定のバッファのみに絞り込んで編集ができるようです。
使ってみます。
/tmp $ for i in {1..5};do echo HELLO$i>test_$i.txt;done /tmp $ vim test_*.txt
上記のように起動した後、lsを確認。
:ls
:ballで全てのバッファをスプリット表示しておきます。
:ball
:bufdoを使って、”HELLO”を”HELL “に置換してみます。
:bufdo s/HELLO/HELL /
エラーになりました。毎度!をつけるのを忘れていますね。
!をつけて、もう一度トライ。
:bufdo! s/HELLO/HELL /
見事に全バッファ置換されました。
コメント