1. HOME»
  2. ソフトウェア»
  3. テキストエディタ»
  4. Vim»
  5. Vimの置換コマンドを使いこなそう!

Vimの置換コマンドを使いこなそう!

Vimの置換コマンドは、複雑な文字列を置く変えることもでき、とても便利です。
しかし、複雑になればなるほど、そのコマンドはむずかしくなります。

今回は、Vimの置換コマンドの使い方を、基本から、正規表現を使ったものまで、順番に紹介します。

目次
  1. 全体を置換するコマンド
  2. 置換コマンド一覧
  3. ワードをひとつずつ確認しながら置換する
  4. 置換コマンドを使って、HTMLタグを削除する
  5. 「〜〜」を『〜〜』に置換する(置換したい文字の一部を使って置換)
  6. まとめ

全体を置換するコマンド

たとえば、つぎのような文章があったとします。

米国でも米が作られています。
また、米印は米語でasteriskと言います。
米はとてもおいしいです。

この文章の、「米」を「パン」に置換してみます。
テキスト全体を置換するコマンドは次のようになります。

:%s/米/パン/g

すると、次のように置換されます。

パン国でもパンが作られています。
また、パン印はパン語でasteriskと言います。
パンはとてもおいしいです。

なんだか、よく分からない文章になってしまいました。

では、次でもっと詳しい置換コマンドを使い方を見ていきましょう。

置換コマンド一覧

ここで、置換コマンドの一覧をかんたんな表にまとめました。

コマンド説明
:s/米/パン/カーソル行の、最初の「米」を「パン」に置換
:s/米/パン/gカーソル行の、すべての「米」を「パン」に置換
:%s/米/パン/すべての行の、最初の「米」を「パン」に置換
:%s/米/パン/gすべての「米」を「パン」に置換
:%s/米/パン/gcすべての「米」を「パン」に、ひとつずつ確認しながら置換

最初に:sを入力するとカーソル行、:%sとするとすべての行(ファイル全体)の置換になります。
さらに、最後にgを入れることで、その行、または複数行の、すべての文字の置換になります。

さきのどのように「米」という文字が複数あって、そのなかのいくつかを置換したい場合などは、表の最後の、ひとつずつ確認しながら置換、を使えばうまくいきそうです。

ここからは、その方法も含めて、さまざまな置換の方法を紹介します。

ワードをひとつずつ確認しながら置換する

下のように、cをつけることで、ひとつずつ確認しながら置換していくことができます。

:%s/米/パン/gc

このコマンドを実行すると、下のように、nでスキップ、yで置換、というふうに、ひとつずつ置換できます。

置換コマンドを使って、HTMLタグを削除する

たとえば、つぎのようなHTMLファイルがあったとします。

<p>米国でも米が作られています。</p>
<p>また、米印は米語で<span class="bold">asterisk</span>と言います。</p>
<p>米はとてもおいしいです。</p>

しかし、このタグをすべて削除したいとします。
そんなときは、正規表現を使うと、すべてのHTMLタグを削除することができます。

:%s/<.\{-}>//g
米国でも米が作られています。
また、米印は米語でasteriskと言います。
米はとてもおいしいです。

ただ、上記の置換コマンドは、HTMLタグの途中でPHPが使われていたりすると、うまく使えないのでご注意ください。

「〜〜」を『〜〜』に置換する(置換したい文字の一部を使って置換)

たとえば、つぎのようなテキストがあったとします。

「米国」でも「米」が作られています。
また、「米印」は「米語」で「asterisk」と言います。
「米」はとてもおいしいです。

これらの「〜〜」を、すべて『〜〜』に置き換えたいとします。
そんなときは、下のような置換コマンドを使います。

:%s/「\(.\{-}\)」/『\1』/g

これで、括弧を置き換えることができました。

『米国』でも『米』が作られています。
また、『米印』は『米語』で『asterisk』と言います。
『米』はとてもおいしいです。

まとめ

今回は、Vimを使った置換の方法を紹介しました。

基本的には:%s/〜〜/〜〜/gファイル全体のすべてのワードを置換することが多いと思います。
また、:%s/〜〜/〜〜/gcというふうに、cを使うことで、ひとつずつ確認しながら置換ができるので便利です。

さらに、正規表現も使えるので、複雑な文字の置換も行なうことができます。

オリジナルゲーム.com