viは、ほとんどすべてのUNIX系OSに標準で備わっているテキストエディタである。
マウスを使って直感的に操作する現在のエディタと比べると、その操作性は劣悪なことこのうえない。けれども、ちょっとした定義ファイルの編集などでは、これを使わざるを得ない場面が多々ある。
そこで、私自身の忘備録として、viの主な操作方法を書き留めておくことにした。
% vi filename
viには、コマンドモードとテキスト入力モードという2つのモードがある。テキストへの文字の入力はテキスト入力モードで行い、その他の操作はすべてコマンドモードで行う。
viを起動した時点ではコマンドモードになっているので、キーボードを叩いてもテキストへの文字入力はできない。昨今のエディタに慣れた人間は、ここでいきなり面食らうことになる。
実際に文字を入力するには、次のいずれかのコマンドを与えて、テキスト入力モードにする必要がある。
コマンド | 意 味 |
i | カーソルの前からテキストを入力する。 |
a | カーソルの次の位置からテキストを入力する。 |
I | 行の先頭からテキストを入力する。 |
A | 行の末尾からテキストを入力する。 |
o | カーソルのある行と次の行との間にテキストを入力する。 |
O | カーソルのある行と前の行との間にテキストを入力する。 |
上記のいずれかのコマンドを与えたあとは、キーボードから入力される文字は、すべてテキストに入力される。
編集の終了(ファイルの保存)やカーソルの移動は、コマンドモードで行う。テキスト入力モードからコマンドモードに移行するためには、[ESC]キーを押す。
なお、viでは、基本的に[ESC]キーを押すとコマンドモードに戻るので、コマンドモードなのかテキスト入力モードなのかわからなくなった場合も、とにかく[ESC]キーを押せばよい。
コマンド | 意 味 |
j | カーソルを次の行に移動する。 |
k | カーソルを前の行に移動する。 |
l | カーソルを次の文字に移動する。 |
h | カーソルを前の文字に移動する。 |
昨今のエディタのように矢印キーは使わないので、これまた慣れないと戸惑ってしまう。コマンド名から機能を連想することは難しいけれど、よーく見ると、キーボードの右手ホームポジション付近にあるキーが使われていることがわかる。つまり、"hjkl"の並びは、"←↓↑→"であると記憶すればいいわけだ。
テキスト入力中にカーソルを移動する必要が生じた時は、いったん[ESC]キーを押してコマンドモードに移行し、カーソルを目的の場所まで移動する。そして更に前述のコマンドでテキスト入力モードに切り替え、文字入力を続けることになる。(面倒くさい!!)
コマンド | 意 味 |
x | カーソル位置の1文字を削除する。 |
D | カーソル位置から行末までを削除する。 |
dd | カーソルのある行を削除する。 |
コマンド | 意 味 |
:w | ファイルに保存する。 |
:w filename | ファイルに名前をつけて保存する。 |
:q | viを終了する。 |
:wq | ファイルを保存して終了する。 |
ここに書いた以外にも、cut & pasteや文字列検索もできるけれど、ここに挙げた操作を覚えておけば、最低限のテキスト編集は可能であろう。
ここに記載した内容は、私が独自に調査したものが含まれます。結果については責任を負いかねますので、あなたの自己責任でご利用ください。 | ||
Copyright by Heian Software Engineering (C)H.S.E.
2003 Allrights reserved.
2003年3月13日 制作 2003年3月13日 修正