検索
連載

Linuxの定番テキストエディタ「vi」をマスターしよう(3)編集と置き換え/チュートリアル編“応用力”をつけるためのLinux再入門(20)(1/3 ページ)

前回に続き、Linuxのターミナルで使用するテキストエディタ「vi(vim)」の操作を紹介します。今回は、ファイルの編集と検索、置換の基本操作です。最後に、チュートリアルと日本語ドキュメントのサイトも紹介します。

Share
Tweet
LINE
Hatena
「“応用力”をつけるためのLinux再入門」のインデックス

“応用力”をつけるためのLinux再入門

「ノーマルモード」と「挿入モード」をマスターしよう

 「vi(vim)」は、Linuxのターミナル(端末)で動作するテキストエディタです。GUI(Graphical User Interface)用のエディタとは違い、ボタンもメニューも使用せず、全てをキーボードで操作します。例えば、「j」ならばカーソルを下へ、「k」ならば上へ、という操作になります。これを「ノーマルモード」と呼びます。

 一方、[i]キーや[a]キーを押すと、それ以降の入力は全て“その文字そのものの入力”となります。すなわち、「j」ならば「j」という文字が、「k」ならば「k」という文字が入力されます。この状態を「挿入モード」と呼びます。

 [Esc]キーを押すと挿入モードは終了し、キー入力がそのままコマンドとなるノーマルモードに復帰します。ノーマルモードの状態で[Esc]キーを押しても、ノーマルモードのままで状態は変わりません。操作が分からなくなったときには、ひとまず[Esc]キーを押すとよいでしょう。

 なお、昔からあるviコマンドの場合、挿入モードで上下左右にカーソルを移動したくなった場合は[Esc]キーを押してノーマルモードに入る必要がありました。現在のvimでは矢印キーと[Home]/[End]キーが使用できるので、上下左右の移動であればノーマルモードに戻らずに操作できます。

●テキストの挿入

 「i」「a」「o」コマンドと、それぞれの大文字「I」「A」「O」コマンドで挿入モードに入ります。それぞれ、挿入の開始位置が異なります。以下の画面1も併せて参照してください。なお、編集に使用しているサンプルファイルは「pstree | head > sample.txt」コマンドで作成しました。

●テキストの挿入
i 現在のカーソル位置から入力する(insert)
I カーソル行の先頭から入力する
a 現在のカーソル位置の右側から入力する(append)
A カーソル行の末尾から入力する
o カーソル行の下に空行を挿入して、挿入した行の先頭から入力する
O カーソル行の上に空行を挿入して、挿入した行の先頭から入力する

画面1
画面1 各コマンドの入力開始位置

 前述の通り、vimの場合は挿入モードでも矢印キーや[Home]キー(行頭へ)、[End]キー(行末へ)によるカーソル移動が可能なので、「i」で挿入モードに入り、カーソルを移動してキー入力を開始しても構いません。慣れてきたら徐々に取り入れていくとよいでしょう。

 テキスト入力を終了し、別の操作をしたくなったら、[Esc]キーを押してノーマルモードに戻りましょう。

●置換モード

 1文字修正したいというケースの場合は「r」コマンドを、複数の文字を修正(上書き)したい場合は「R」コマンドを使用します。

 「r」の場合は1文字削除して、1文字挿入したら、すぐにノーマルモードに戻る、つまり1文字だけ置換して終了します。

 「R」の場合は[Esc]キーを押すまで、「カーソル位置の文字を削除して挿入」を繰り返します。この場合も矢印キーは使用できるので、一般的なエディタの「上書きモード」と同じような動作になります。

 また、「s」「S」「c」「C」コマンドで、「削除してから挿入モードに入る」という操作ができます。

●置換モード
r カーソル位置の1文字を削除してから1文字入力する(すぐにノーマルモードに戻る)
R カーソル位置の文字を上書きする(置換モードになる)
s カーソル位置の1文字を削除してから入力する(挿入モードになる)
S カーソル行1行を削除してから入力する(挿入モードになる)
c 移動キー操作に従って削除してから入力する(挿入モードになる)
C カーソル位置から行末まで削除してから入力する(挿入モードになる)

 「c」コマンドの場合は、「c」に続けて移動のキー操作を行うと、その分の文字を削除してから挿入モードに入ります。例えば、「w」は単語単位で移動するキー操作なので(本連載第18回参照)、単語の先頭で「cw」と入力するとその単語を削除してから挿入モードに入り、「c2w」で単語2つ削除してから挿入モードに入ります。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る