【 Vim 】複数ファイルの文字列一を括置換する方法

スポンサーリンク

Vimで複数ファイル内の文字列を一括置換する

vimを使って、ファイル内のプログラムで文字列を一括変換する方法をまとめておく。

似た種類のファイルが大量にあるときに特定の文字列を別の文字列に一括変換したいときがあるかもしれない。

その場合に役立つはず。
手順を以下にまとめておく。

Vim内で操作

vim

まずは、ターミナルでこのコマンドを実行してVimの環境に入る。

コマンドは名前を変更したいディレクトリ内で実行すると、パスを書く手間が省けるので楽。

変更するファイルを選択

:argadd ./*.html

このコマンドをVim環境内で実行することで変更するファイルを選択して登録する。

この例では、今いるディレクトリ内の全てのhtmlファイルを変更対象にしている。

:args

このコマンドを実行すると、登録されているファイルを確認できる。

文字列を一括変換する

それでは、文字列を変換する準備は出来たので、一括変換をおこなう。

:argdo %s/(変換前)/(変換後)/g | update

(変換前)と(変換後)は、それぞれ自分が変えたい文字列と、変換後の文字列にする。

| updateというのは、変更された内容を保存したい場合には付けておくと良い。

スポンサーリンク

例)浮動小数点を整数に四捨五入する

例えば、3.14159265を3.0に変換するには以下のコマンドを実行すれば良い。

:%s@\d\+\.\d\+@\=round(str2float(submatch(0)))@g | update

参考:https://hail2u.net/blog/software/vim-round-and-replace-decimal.html

また、数値の.0を消して整数型にしたいときは以下のコマンドをvimで実行すればできる。

:%s@\.\+\0\+<@<@g | update

以上が、文字列をvimで一括変換する方法でした。

参考

以下を参考にした。

【 Vim 】文字列一括置換 ( 複数ファイル編 ) - Qiita
はじめに 「 あー、複数ファイルの文字列一括置換できる方法ないかなー。 」 と思って、いろいろ調べていたら、下記の方法でできるようなので、 参考までに手順をまとめてみた。 1. 置換対象のファイルを引数に設定 :args...

人気記事

人気記事はこちら。

CUDA、cuDNNのバージョンをターミナルで調べるコマンド
【Pytorch】テンソルの次元を追加・削除する方法【dim】
【Pytorch】テンソルを連結する方法(cat・stack)
【Python】Tensorflowをダウングレード・アップグレードするコマンド
【Protobuf】"TypeError: Descriptors cannot not be created directly."を解決する【solved】
スポンサーリンク

新着記事

新着記事はこちら。

【イタリア】ピサの斜塔へ。中に入って頂上まで上り景色を見る。
【イタリア】サンタ・マリア・デル・フィオーレ大聖堂にある「最後の審判」、屋上から見る景色が良かった
【イタリア】ミケランジェロ広場から夜景を見る。ヴェッキオ橋も。
【イタリア】フィレンツェのフードコートで夕食。ビール・ワイン・海鮮フライなど
【Latex】コンパイルエラーが出た場合の解決方法。Tex Live Managerでインストール。

タイトルとURLをコピーしました