viエディタはLinuxやUnixで標準的に使われるテキストエディタです。 vi エディタの特徴は、コマンドモードと入力モードの2つの動作モードがあり、それらを切り替えながら編集していきます。 viを起動した時点ではコマンドモードになっています。
1.vi の起動
まず、ターミナルで vi test と入力するとtest という名前で新規ファイルが作成されます。この時、test
というファイルがカレントディレクトリ(現在いるディレクトリ)に存在しなくても構いません。仮に、test
というファイルがあった場合は、既存のテキストファイルを開いて編集することができます。
# vi test |
~ ~ ~ ~ ~ "test" [New File] |
vi 起動時は、コマンドモードになっているため、キーボードをタイプしても何も入力できないようになっています。コマンドモードから入力モードに変更するには、i
、もしくは、a を入力します。i をタイプ後、何か文字を入力してみてください(以下図参照)。文字を入力したら、入力モードからコマンドモードに戻るためには、ESCキーをタイプします。
~ ~ ~ ~ ~ -- INSERT -- |
vi を終了させるにはコマンドモードに戻ってから実行します。現在、編集したファイルを保存せずに強制的に終了させるには、ESC→:→q→!→ENTERと順番にタイプしてください。なお、ここでのESCはコマンドモードに戻るために入力しているので実際には、「:q!」で強制終了します。保存して終了させるには、「:wq!」もしくはZ→Z、単に保存するだけでvi
を終了させたくない場合は、「:w」と入力します。
以下に基本的な操作方法を記しましたので参考にしてください。なお、vi は入力モードの状態の場合は、単なるメモ帳として動作するのみで、以下に記す操作方法は全てコマンドモードの状態で実行します。入力モード中に使える操作はただ1つだけ、それはコマンドモードに戻るためのESCキーのみです。
i (insert) | カーソルの手前に文字列を挿入 |
a (add) | カーソルの後ろに文字列を挿入 |
o | カーソルの下に新しい行を作成し、そこにテキストを挿入 |
ESC | テキストモードを終了し、コマンドモードに戻る |
x | カーソル位置の文字を削除 |
X | カーソルの手前の文字を削除 |
dd | カーソルのある行を削除or切り取り 5行削除したい場合は、"5dd" と入力する |
yy | カーソルのある行をコピーする |
p | 次の行に貼り付ける |
D | カーソル位置から行末まで削除する |
. | 文字列編集を繰り返す |
u | 文字列編集を元に戻す |
Ctrl + r | 繰り返しの繰り返し。u コマンドで前に戻りすぎた場合に重宝します。 |
0 | 行の先頭に移動する |
$ | 行の末尾に移動する |
{ | カーソルがある段落の先頭に移動 |
} | カーソルがある段落の末尾に移動 |
Ctrl + f | 1画面下に移動する |
Ctrl + b | 1画面上に移動する |
Ctrl + d | 半画面下に移動する |
Ctrl + u | 半画面↑に移動する(Uの位置が遠すぎる 笑) |
h or ← | 左に1文字移動 |
j or ↓ | 下に1文字移動 |
k or ↑ | 上に1文字移動 |
l or → | 右に1文字移動 |
w | 次の単語に移動 |
b | 前の単語に移動 |
:数字 | 何行目に移動するか指定する。":100"と入力すると100行目に移動する |
:q! | 編集中の文書を破棄して終了 |
:q | vi を終了させる |
:wq! | 編集中の文書を保存して終了 |
ZZ | 編集中の文書を保存して終了 |
:x | 編集中の文書を保存して終了 |
:e! | 編集内容を無視して、最後の保存状態に戻る |
:w name | name で指定したファイル名(別名)で保存する |
/pattern | "/"(スラッシュ)のあとに検索したい文字列を入力し、ENTERキーを入力する (文末方向) |
?pattern | "?"(クエスチョンマーク)のあとに検索したい文字列を入力し、ENTERキーを入力する (文頭方向) |
n | 検索を文末方向に繰り返します。"word"という用語がいくつもある場合、"n"を連続してタイプすると"word"の検索を繰り返します。 |
N | 検索を文頭方向に繰り返します。 |
:set nu | 行の番号を左端に表示する |
Ctrl + g | カーソル行の行番号表示する |
:! <コマンド> | vi 操作中に一時的にコマンドが入力できます(コマンドモードにて実行する)。 |
:sh | vi 操作中に一時的にシェルに戻る。再び、vi 操作に戻るにはexit と入力(コマンドモードにて実行する)。 |
:%s/aa/AA | ファイル内にある「aa」を「AA」に置換。 |
:1s/aa/AA | 先頭行だけ「aa」を「AA」に置換。 |
:1,2s/aa/AA/g |
1~2行目に表れる「aa」を「AA」に置換。 |
:s/aa/AA | カーソルのある行の「aa」を「AA」に置換。 |
www.it-shikaku.jp