ゆーかん

徒然日記

vimで検索した文字列から行末まで削除を、検索ヒットした文字列全てで繰り返す

メモリ8GB詰んでるmacを使ってるのですが、プラグインや便利なソフトウェアの入れすぎでPCが重くなりがちになってきたので、vimへの移行を検討中。

移行期なので、Visual Studio Codeのvimマッピングを使って、集中したい時はその恩恵を借りながら少しずつ勉強しています。

タイトル通りのことをするのに割とはまったので、メモ書くを残します。

やりたいこと

以下の文字列の,に続く部分を全て削除したかった。名前だけを抽出したかったんです。

Lauren Rhue, Wake Forrest University
Wael Jabr, Georgia State University
Jesse Bockstedt, Emory University
Arvind Malhotra, University of North Carolina
Pei-yu Chen, Arizona State University
Ben Fabian, Hochschule für Telekommunikation Leipzig
Mareike Möhlmann, University of Warwick
Ioanna Constantiou, Copenhagen Business School
Michel Avital, Copenhagen Business School
Young Bong Chang, Sungkyunkwan University
Wooje Cho, University of Seoul
Sangpil Han, Arizona State University
Byung Cho Kim, Korea University Business School
Seung Hyun Kim, Yonsei University
YoungOk Kwon, Sookmyung Women’s University
Gene Moo Lee, University of Texas Arlington
Hyelim Oh, National University of Singapore
Jaehong Park, Kyung Hee University
Sungyong Um, National University of Singapore
Ulrich Bretschneider, University of Siegen, Germany
Rob Gleasure, University College Cork, Ireland
Lorraine Morgan, National University of Ireland
Ivo Blohm, Universität St. Gallen, Switzerland
Keongtae Kim, City University of Hong Kong
Joseph Feller, University College Cork
Hanna Halaburda, bank of Canada

結論

下記の順番に実行すればできます。

/,  (<- , を検索)
qqnd$q  (qにマクロを登録)
100@q  (繰り返す)

nで次の検索結果に移レなくなったタイミングでエラーで抜けてくれるので、適当に大きい値をcountしてあげれば、ヒットするものが全て消せる

参考

Vimで編集を効率的に行うための繰り返し操作について