こんなテキストファイルがある
$ vim HoldBuffer_test.txt
青いところだけ残したい。赤いところだけ消したい。
コマンド一発でやりたい。
vimのホールドバッファ機能を使えばできる。
残したいところをバッファにホールド(保持)しておき、
消したいところについては s/編集前/後/g で削除する。
vimのコマンドモードで
%s/\(^.*mp4\).*/\1/g
大きく書くと
%s/\(^.*mp4\).*/\1/g
エスケープしたカッコ で囲まれた部分をバッファにホールド(保持)しておき、それをそのまま \1 で受ける。結果 ^.*mp4 の部分は残る。
赤文字の .* は消える。 s/編集前/後/g の書式の「後」が無いから。
これが
こうなる
%s/\(^.*mp4\).*/\1/g
の ^.*mp4 には正規表現が使えるから、あとはどうとでもなる。vim最高すぎる。