Viの主要なコマンド一覧
viの代表的なコマンド一覧です。
viの起動
コマンド | 説明 |
---|---|
vi [file] | 指定したファイルを開く。ファイルが存在しない場合は新規にファイルが作成される。 |
vi [file1 ... filen] | 指定したファイルを全て開く |
viの終了
コマンド | 説明 |
---|---|
:q | viを終了する。編集後に保存をしていない場合は警告が出る。 |
:wq | 編集した内容を保存してからviを終了する。Write と Quit の頭文字を取っている |
ZZ | 「:wq」と同義。必ず大文字を指定する。また先頭にコロンは必要ない。 |
:q! | 編集した内容を保存せずviを強制終了する |
コマンドモード
コマンド | 説明 |
---|---|
ESC(エスケープキー) | コマンドモードへ切り替える。入力モードかコマンドモードか分からなくなったら、とりあえずエスケープキーを押せばコマンドモードになることを覚えておくと良い。 |
カーソル移動
1文字分
コマンド | 説明 |
---|---|
h | 左に移動する |
j | 下に移動する |
k | 上に移動する |
l | 右に移動する |
- 「←↑↓→」の順番にキーが配置されている
- 最近の vi(m) は矢印キーでの移動に対応しているので、そちらを利用する方が便利だが、古いシステムを担当する時のために知識として覚えておくと良い。
行内でのジャンプ
コマンド | 説明 |
---|---|
0 | 現在カーソルがある行の行頭に移動する |
$ | 現在カーソルがある行の行末に移動する |
^ | 現在カーソルがある行の行頭に移動する。ただしスペースは無視される |
ファイル内でのジャンプ
コマンド | 説明 |
---|---|
:0 | ファイルの先頭に移動する |
:$ | ファイルの末尾に移動する |
:行数 | 指定の行に移動する。「:150」と入力すれば150行目に移動する |
画面のスクロール
コマンド | 説明 |
---|---|
Ctrl + F | 1画面分、下にスクロールする。(Forward) |
Ctrl + B | 1画面分、上にスクロールする。(Back) |
Ctrl + D | 0.5画面分、下にスクロールする。 |
Ctrl + U | 0.5画面分、上にスクロールする。 |
Ctrl + E | 1行分、下にスクロールする。 |
Ctrl + Y | 1行分、上にスクロールする。 |
入力モードへ切り替え
コマンド | 説明 |
---|---|
i | 現在カーソルがある位置から入力を開始する |
I | カーソルがある行の行頭から入力を開始する |
a | カーソルがある位置の後ろから入力を開始する |
A | カーソルがある行の行末から入力を開始する |
行の挿入(追加)
コマンド | 説明 |
---|---|
o(小文字のオー) | 現在カーソルのある行の下に1行追加し、入力モードに切り替える |
O(大文字のオー) | 現在カーソルのある行の上に1行追加し、入力モードに切り替える |
削除
コマンド | 説明 |
---|---|
x | カーソル位置の文字を1文字削除する |
dd | カーソルのある行を削除する |
行数dd | 指定した行数を削除する。「5dd」なら5行を削除する。カーソルのある位置から下に向かっての行数となる。 |
d0 | カーソル位置から行頭までを削除する |
d$ | カーソル位置から行末までを削除する |
コピー、ペースト
コマンド | 説明 |
---|---|
p | 貼り付けを行う。行単位の貼り付けの場合は、カーソル行の下に貼り付けを行う。「put」の略称。 |
yy | カーソルのある行をコピーする。viではコピーのことを「ヤンク(yank)」という。 |
y$ | カーソル位置から行末までをコピーする |
検索
コマンド | 説明 |
---|---|
/検索する文字列 | カーソル行から下に向かって検索を行う |
?検索する文字列 | カーソル行から上に向かって検索を行う |
n | 検索を実行後、次の検索候補がある場合は、その結果に移動する。「?」で検索が実行された場合、上に向かって進んでいく。 |
N | 「n」と同じ機能を持つが、逆方向に動作する。 |
置換
コマンド | 説明 |
---|---|
:s/検索文字列/置換文字列/g | カーソルのある行にある検索文字列を、すべて置換文字列で置き換える。「g」をつけないと最初に見つかった一つだけを置換する。また検索文字列には正規表現を使用することができる。 |
:%s/検索文字列/置換文字列/g | ファイル中にある検索文字列を、すべて置換文字列で置き換える。 |
やり直し
コマンド | 説明 |
---|---|
u | 直前の操作を取り消す。何度も押すと、押した回数だけ過去にさかのぼって復元する |
ファイルを読み込み直す(復帰)
コマンド | 説明 |
---|---|
:e! | 現在の編集内容をすべて破棄し、ファイルを読込直す |