Linuxの定番テキストエディタ「vi」をマスターしよう(3)編集と置き換え/チュートリアル編:“応用力”をつけるためのLinux再入門(20)(2/3 ページ)
前回に続き、Linuxのターミナルで使用するテキストエディタ「vi(vim)」の操作を紹介します。今回は、ファイルの編集と検索、置換の基本操作です。最後に、チュートリアルと日本語ドキュメントのサイトも紹介します。
削除、カット、コピー、ペーストをマスターしよう
●削除
「x」コマンドでカーソル位置の文字を削除、「X」コマンドでカーソルの前の文字を削除、「dd」コマンドでカーソル行を削除します。それぞれ回数を指定することが可能で、例えば「5x」でカーソル位置から5文字分を削除、という動作になります。
「d」コマンドは、「c」と同様、「d」に続けて移動のキー操作をすると、その分の文字を削除します。例えば、「d$」でカーソル位置から行末まで、「d^」でカーソル位置から行の先頭まで、「d0」で行頭までを削除します。
xまたは[Del] | カーソル位置の文字を削除する |
---|---|
X | カーソル位置の前の文字を削除する |
dd | カーソル位置の行を削除する |
d | 移動キー操作に従って削除する(d$で行末まで削除) |
削除してすぐ入力したい、つまり挿入モードに入りたい場合は、前述の「s」「S」「c」「C」を使用します。
●カット、コピー、ペースト
「x」と「dd」は、いわゆるカット&ペーストの「カット」に相当する操作で、単なる削除として使用できる他、「p」コマンドまたは「P」コマンドで削除した内容をペーストすることができます。
コピー&ペーストの「コピー」は「yank」といい、「y」コマンドを使用します。コピーする範囲は、移動に使ったキー操作で指定します。例えば、カーソル位置の文字は「yl」、カーソル位置から5文字分は「y5l」、カーソル位置から単語末尾までは「ye」または「yw」です。「w」コマンドは次の単語の頭へ移動するという操作なので、単語の後に空白があった場合はその空白もコピーされます。
カーソル行全体をコピーしたい場合は「yy」コマンドまたは「Y」コマンドを使用します。
x | カーソル位置の文字をカットする |
---|---|
X | カーソル位置の前の文字をカットする |
dd | カーソル位置の行をカットする |
y | yに続けて入力した移動キーの操作分の内容をコピーする |
Yまたはyy | カーソル行全体をコピーする |
p | カーソル位置にペーストする(行単位の場合はカーソル行の下) |
P | カーソル位置の前にペーストする(行単位の場合はカーソル行の上) |
置き換えをマスターしよう
●置き換えの基本
文字列の置き換えは「:s」コマンドで行います。「:」を入力すると最下行に「:」が表示されるので、「s/文字列1/文字列2/」のように指定します。
検索対象は、カーソル行にある1つ目の文字列になります。行内にある全ての該当箇所を置換する場合は、末尾に「g」を付けて「s/文字列1/文字列2/g」のように指定します。
内容を確認しながら置き換えたい場合は、末尾に「c」を付けます。
また、範囲を指定したい場合は「:1,5s/〜」のように置換する開始行と終了行を指定し、ファイル全体を対象としたい場合は「:%s/〜」のように指定します。
なお、置換文字列の区切りにしている「/」は、「:s#文字列1#文字列2#」のように別の記号を使用することができます(画面2)。
:s/文字列1/文字列2/オプション | カーソル行を対象に、オプションに従って文字列1を文字列2へ置き換える |
---|---|
:1,5s/文字列1/文字列2/オプション | 1行目から5行目までを対象に、オプションに従って文字列1を文字列2へ置き換える |
:%s/文字列1/文字列2/オプション | ファイル全体を対象に、オプションに従って文字列1を文字列2へ置き換える |
オプション | 内容 |
---|---|
g | 全てを対象にする(指定しない場合は1つ目だけを置換する) |
c | 確認しながら置き換える |
I | 大小文字を区別する(デフォルト) |
i | 大小文字を区別しない |
n | 該当する箇所の個数だけを表示する |
●置換パターン
置換対象のパターン指定には、「/」による検索パターンと同じ文字列が使用できます(本連載第19回参照)。置換結果のパターンには、以下の文字列を使用できます。
&または\0 | マッチしたパターン全体に置き換わる |
---|---|
\0 | マッチしたパターン全体に置き換わる |
\1 | 1番目の()内のマッチしたパターンに置き換わる |
\2〜\9 | 2〜9番目のマッチしたパターンに置き換わる |
~ | 前回の置き換え文字に置き換わる |
\~ | ~という文字に置き換わる |
\u | 次の文字が大文字になる |
\U | 後に続く文字が大文字になる |
\l | 次の文字が小文字になる |
\L | 後に続く文字が小文字になる |
\eまたは\E | \u、\U、\l、\L指定の終わり |
\r | 改行 |
\t | タブ |
\\ | \という文字に置き換わる |
例えば、単語の頭を大文字にする場合は「:%s/\w\+/\u\0/g」のように指定します(画面3)。これは、「語構成文字(\w)の1回以上の繰り返し(\t)」を「すぐ後の文字を大文字に(\u)、マッチしたパターン全体(\0)」に置き換えるという意味です。
なお、大文字と小文字は「~」コマンドでも変換できます。これはカーソル位置の文字が大文字なら小文字に、小文字なら大文字に置き換えるというコマンドです。
Copyright © ITmedia, Inc. All Rights Reserved.