vi は UNIX(Linux)における基本的なエディタです。 どんな UNIX でも大抵 vi は用意されていますし、 vi を元としたツール、 vipw や vigr 等が多く存在することから、 そのことを推し量ることができます。
一方で vi の操作体系は、直感的ではありません。 そのため UNIX でファイルを編集するためのツールが 、他に数多く用意されています。 その独自性ゆえに嫌う初心者ユーザーも少なくありません。
しかし vi は、特に管理者となる人は必ず習得すべきツールです。 「もしも」のトラブル時に、 これほど利用できる可能性の高いエディタはないためです。
vi の特長は次の通りです。
vi の根本思想は「ひたすら速く」です。 vi には親切なメニュー画面はありません。 しかし、それは vi がユーザーインターフェイスを軽視しているという意味ではありません。 実際、vi ほどインターフェイスに神経を使っているエディターは他にないでしょう。 最少の労力で最大の成果をもたらすよう計算し尽くされています。 そのことは vi を使い込むほど実感できるはずです。
ここでは、そんな vi の使用法を学習していきましょう。
vi を使うには、次のように入力します。
$ vi [ファイル]
引数のファイルを省略した場合、新規ファイルが作成され、 保存時にそのファイル名を決定しなければいけません。
vi では、キーボードのキーは2つの役割をはたします。 例えば「a」というキーは、 「a」という文字をテキスト画面に表示するために押されますが、 別の場合には、もっと違った意味を持つ命令(コマンド)と解釈されます。
キーがどちらの働きをするかは、vi の「モード」(状態)が決定します。 これらの vi の「モード」は、 「挿入モード」と「コマンドモード」と呼ばれます。 vi を使う時に最も大切なことは、この2つのモードをきちんと区別することです。
vi を起動させた直後は「コマンドモード」になっています。 「コマンドモード」では vi の終了、編集中のファイルの更新、文字の削除、 検索と置換、行番号の表示設定や、他のプログラムの実行などを行うことができます。
文字を入力する場合は「挿入モード」へ切り替えなければなりません。 「挿入モード」へ切り替えるには、a, A, i, I, o, O のいずれかを押します (それぞれ切り替わった後の動作が異なります)。 「挿入モード」では、純粋に文字を入力します。 それ以外の動作を行うためには ESC キー(エスケープ・キー)を押して、 「コマンドモード」へ切り替えなければなりません。
vi で初心者ユーザーが陥る混乱の原因は、 この状態遷移を把握しきれてないことが殆どです。 「わけわかんなくなったら ESC キー!」と覚えておきましょう。 vi の状態が「コマンドモード」であることが保証されます。
次に、各モードをより詳しく紹介します。
「コマンドモード」で実行する基本的なコマンドは次の通りです。
:wq
:q
:q!
h
j
k
l
a
A
i
I
o
O
x
dd
u
:/文字
n
N
:w
:wファイル名
:rファイル名
「挿入モード」で実行する基本的なコマンドは次の通りです。
ESC キー
DEL キー
上で紹介したのは、vi を使用する上での基本的な事項だけです。 vi には、さらに便利に使えるよう、豊富なコマンドが用意されています。 以下ではその一部を紹介しましょう。
※以下は断りのない限り「コマンドモード」で使用するコマンドです。
$ vi +18 [ファイル名]
|
ファイルをオープンし、行18に位置づける |
$ vi +/"mustard greens" [ファイル名]
|
ファイルをオープンし、最初の"mustard greens"にカーソルを移動 |
$ vi -r [ファイル名]
|
クラッシュしたファイルを回復し読み込む |
$ view [ファイル名]
|
読むだけのためにファイルを読み込む |
w
W
b
B
Enter キー
Backspace キー
スペース キー
H
M
L
Ctrl-F
Ctrl-D
Ctrl-B
Ctrl-U
G
21G
D
:5,10 d
yy |
行の取り込みまたはコピー |
Y |
行の取り込みまたはコピー |
dd |
行の削除 |
P |
取り込みまたは削除された行を現在行の下に挿入 |
p |
取り込みまたは削除された行を現在行の上に挿入 |
:1,2 co 3 |
行1から行2までを行3の下へコピー |
:4,5 m 6 |
行4から行5までを行6の下へ移動 |
:set nu |
行番号の表示 |
:set nonu |
行番号の非表示 |
:set ruler |
ルーラーの表示 |
:set noruler |
ルーラーの非表示 |
:set showmode |
入力モードの表示 |
:set noshowmode |
入力モードの非表示 |
Ctrl-G |
ファイル名、行数、位置の表示 |
Ctrl-L |
画面の再描画 |
ZZ |
修正内容を保存してviを終了 |
:w! |
リードオンリーモードの時に強制的に保存 |
最終更新日: 2000/10/04(河野仁之) | Copyright © 2000 inex |