【 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. 置換対象のファイル…

人気記事

人気記事はこちら。

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

新着記事

新着記事はこちら。

【東京駅】松戸富田麺絆でつけ麺。支店が東京にあった
【新宿御苑】Under the Treeというカフェでアイス
【西荻窪】日本茶を楽しめる店「Satén japanese tea」
【中野】陸蒸気で昼食に焼き魚定食
【下北沢】外観がファンキーなスープカレーの店マジックスパイス

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