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日 修正