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. 置換対象のファイル…
人気記事
人気記事はこちら。
新着記事
新着記事はこちら。