min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

vim テキスト全ての行の2列目以降だけを一括で消す(ホールドバッファ機能)

こんなテキストファイルがある

$ vim HoldBuffer_test.txt

f:id:min117:20180623100748p:plain

f:id:min117:20180623100652p:plain

 

青いところだけ残したい赤いところだけ消したい

コマンド一発でやりたい。

f:id:min117:20180623100630p:plain

 

 

 

vimホールドバッファ機能を使えばできる。

min117.hatenablog.com

 

残したいところをバッファにホールド(保持)しておき

消したいところについては s/編集前/後/g で削除する。

 

vimのコマンドモードで

%s/\(^.*mp4\).*/\1/g

 

大きく書くと

%s/\(^.*mp4\).*/\1/g

 

エスケープしたカッコ で囲まれた部分をバッファにホールド(保持)しておき、それをそのまま \1 で受ける。結果  ^.*mp4 の部分は残る

 

赤文字の .* は消える。 s/編集前//g の書式の「」が無いから。

 

これが

f:id:min117:20180623101405p:plain

 

こうなる

f:id:min117:20180623102313p:plain

 

%s/\(^.*mp4\).*/\1/g

^.*mp4 には正規表現が使えるから、あとはどうとでもなる。vim最高すぎる。

 

orebibou.com