vi(または改良版の Vim)は、Linux や Unix 系 OS で広く使われる高機能なテキストエディタです。
CLI(コマンドラインインターフェース)環境で軽快に動作し、ターミナル上でのファイル編集に欠かせないツールです。
この記事では、viエディタの基本的な使い方や、よく使うコマンドを初心者にも分かりやすく解説します。
目次
viエディタとは?
vi(Visual Editor)は、キーボード操作だけでファイルの編集ができるテキストエディタです。
ほとんどのUnix系OSに標準で搭載されており、リモートサーバーでも使えるため、サーバー管理者や開発者にとって必須のツールといえます。
基本の起動と終了
ファイルを開く
vi ファイル名
例:
vi index.html
新規ファイルの場合でも、指定した名前で編集画面が開きます。
viを終了する
- ノーマルモードで以下のいずれかを入力します:
:q
→ ファイルに変更がなければ終了します。:q!
→ 強制終了。保存せずに終了します。:wq
→ 保存して終了します。ZZ(Shift+zz)
→ 保存して終了(wqと同じ)。
viの3つのモード
viは以下の3つのモードを使い分けて操作します。
| モード | 説明 |
|---|---|
| ノーマルモード | 初期状態。コマンド入力に使用 |
| 挿入モード | 文字を入力できるモード |
| コマンドラインモード | ファイル保存・検索などを実行 |
モードの切り替え
- ノーマル → 挿入:
iやaなどの入力コマンド - 挿入 → ノーマル:
Esc - ノーマル → コマンドライン:
:(コロン)
挿入モードに入るコマンド
| コマンド | 動作 |
|---|---|
i | カーソルの前に挿入 |
a | カーソルの後ろに挿入 |
o | 次の行に新しい行を作成して挿入開始 |
I | 行の先頭で挿入 |
A | 行の末尾で挿入 |
よく使うノーマルモードの操作
カーソル移動
h: 左へl: 右へj: 下へk: 上へ
行の削除・コピー・貼り付け
dd: 現在の行を削除yy: 現在の行をコピーp: コピーまたは削除した行を貼り付け(直後)
検索
/文字列:下方向に検索?文字列:上方向に検索n: 次の一致箇所へN: 前の一致箇所へ
保存と終了のコマンド
| コマンド | 説明 |
|---|---|
:w | ファイルを保存 |
:q | viを終了(変更があると警告) |
:q! | 強制終了(保存しない) |
:wq | 保存して終了 |
ZZ | 保存して終了(ショートカット) |
編集・削除系のコマンド
| コマンド | 説明 |
|---|---|
x | カーソル位置の1文字を削除 |
X | カーソルの左の1文字を削除 |
D | 現在位置から行末まで削除 |
C | 現在位置から行末まで削除して挿入 |
J | 現在行と次の行を結合 |
u | 直前の操作を取り消す(Undo) |
Ctrl + r | Undoをやり直す(Redo) |
ビジュアル選択モード(範囲選択)
| コマンド | 説明 |
|---|---|
v | 文字単位で選択開始 |
V | 行単位で選択開始 |
Ctrl + v | 矩形(ブロック)選択モードを開始 |
d | 選択範囲を削除 |
y | 選択範囲をコピー |
> / < | インデントの追加・削除 |
ページ移動・検索系のコマンド
| コマンド | 説明 |
|---|---|
G | 最終行に移動 |
gg | 先頭行に移動 |
:n | n行目にジャンプ(例::20) |
Ctrl + f | 1画面下にスクロール |
Ctrl + b | 1画面上にスクロール |
* | カーソル上の単語を次に検索 |
# | カーソル上の単語を前に検索 |
マークとジャンプ
| コマンド | 説明 |
|---|---|
m[a-z] | 現在の位置にマークをつける(例:ma) |
'a | マークaの行頭にジャンプ |
`a | マークaの正確な位置にジャンプ |
便利なその他コマンド
| コマンド | 説明 |
|---|---|
. | 直前の編集操作を繰り返す |
:set number | 行番号を表示する |
:set nonumber | 行番号の非表示 |
:set paste | 貼り付けモード(インデントを維持) |
:syntax on | シンタックスハイライト有効化(vim) |
:syntax off | シンタックスハイライト無効化 |
viとvimの違い
viは基本的な機能のみを持つテキストエディタですが、vim(Vi IMproved)はそれを拡張した高機能版です。
多くのLinuxディストリビューションでは、viコマンドでも実際にはvimが起動するようになっています。
まとめ
viは最初こそ難しく感じますが、覚えるほどに強力なエディタです。リモートサーバーでの操作や、GUIがない環境での編集においては必須のスキルといえるでしょう。
まずは、iで挿入、Escでノーマル、:wqで保存終了。この基本3ステップから始めてみてください。