LinuxやUnixの環境で使われるテキストエディタ「vi(ヴィーアイ)」。
その操作はキーボード中心で直感的とは言えませんが、慣れると非常に効率的に作業できます。
多くの初心者が最初に悩むのが、「どのコマンドを覚えればいいのか」ということです。
実際、viには何百ものコマンドがありますが、よく使う基本的なものだけで、普段の編集作業は十分にこなせます。
この記事では、vi初心者がまず覚えるべき基本コマンドを厳選して紹介します。
viってなに?なぜ使うの?

viは、1976年に開発された歴史あるテキストエディタです。現在でも多くのLinuxサーバーやUnixシステムに標準でインストールされています。
viの特徴
- キーボードだけで操作できる
- マウスを使わないため高速編集が可能
- 軽量で動作が早い
- どのLinux環境でも利用できる
なぜviを覚える必要があるの?
- サーバー管理で必ず使う場面がある
- リモート接続時に GUI エディタが使えない
- プログラマーやシステム管理者の必須スキル
- 一度覚えると作業効率が格段にアップする
最初は「使いにくい」と感じるかもしれませんが、慣れると手放せなくなるエディタです。
viの基本構造と3つのモード
viを使う前に、まず理解しておくべきことがあります。それは「モード」という概念です。
viには3つのモードがあり、それぞれ役割が異なります:
ノーマルモード(コマンドモード)
- viを起動したときの初期状態
- カーソル移動や編集コマンドを実行
- 文字を入力することはできない
- 最も基本となるモード
挿入モード(インサートモード)
- 実際に文字を入力できるモード
i
やa
などのキーで挿入モードに入るEsc
キーでノーマルモードに戻る- 文字入力専用のモード
コマンドラインモード
:
(コロン)を押すと画面下部にコマンドラインが表示される- ファイルの保存や終了などの操作を行う
Enter
でコマンド実行、Esc
でキャンセル- ファイル操作専用のモード
重要なポイント 今自分がどのモードにいるかを常に意識することが、vi使いこなしの第一歩です。迷ったらEsc
キーを何度か押してノーマルモードに戻りましょう。
ノーマルモードで使う基本コマンド

ノーマルモードでは、カーソル移動と編集操作を行います。まずは移動コマンドから覚えましょう。
カーソル移動コマンド
基本の4方向移動
h ← 左に1文字移動
j ↓ 下に1行移動
k ↑ 上に1行移動
l → 右に1文字移動
覚え方のコツ
h
は左端にあるので「左」l
は右端にあるので「右」j
は下向きの形なので「下」k
は上向きの形なので「上」
慣れるまでは矢印キーを使ってもかまいませんが、効率を考えるとhjkl
キーでの移動をおすすめします。
行内での移動
0 行の先頭に移動
$ 行の末尾に移動
^ 行の最初の文字に移動(空白文字を除く)
ファイル全体での移動
gg ファイルの先頭に移動
G ファイルの末尾に移動
数字G 指定した行番号に移動(例:10G で10行目)
編集コマンド
削除系コマンド
x カーソル位置の1文字を削除
dd 現在行を1行削除
数字dd 指定した行数を削除(例:3dd で3行削除)
コピー&ペーストコマンド
yy 現在行を1行コピー(ヤンク)
数字yy 指定した行数をコピー(例:5yy で5行コピー)
p カーソルの後にペースト
P カーソルの前にペースト
取り消し・やり直しコマンド
u 直前の操作を取り消し
Ctrl+r 取り消した操作をやり直し
実際の使用例
ファイルを編集する典型的な流れを見てみましょう:
vi sample.txt
でファイルを開くgg
でファイルの先頭に移動dd
で不要な行を削除yy
で必要な行をコピーG
でファイルの末尾に移動p
でコピーした内容をペースト
この一連の操作だけで、基本的なファイル編集ができます。
挿入モードに切り替えるコマンド

文字を入力するには、ノーマルモードから挿入モードに切り替える必要があります。
基本的な挿入コマンド
カーソル位置での挿入
i カーソルの前に文字を挿入
a カーソルの後に文字を挿入
行の端での挿入
I 行の先頭に文字を挿入
A 行の末尾に文字を挿入
新しい行での挿入
o カーソルの下に新しい行を作成して挿入
O カーソルの上に新しい行を作成して挿入
挿入モードの終了
Esc 挿入モードを終了してノーマルモードに戻る
どの挿入コマンドを使えばいい?
状況別の使い分け
- 単語の途中に文字を追加したい →
i
- 単語の最後に文字を追加したい →
a
- 行の最後にコメントを追加したい →
A
- 新しい行に内容を書きたい →
o
実際の使用例
コードファイルを編集する場合:
vi script.py
でPythonファイルを開くG
でファイルの末尾に移動o
で新しい行を作成print("Hello, World!")
と入力Esc
でノーマルモードに戻る
この流れで、簡単にコードを追加できます。
コマンドラインモードで使う保存・終了コマンド

ファイルの保存や終了には、コマンドラインモードを使います。ノーマルモードで :
(コロン)を押すと、画面下部にコマンドラインが表示されます。
ファイル保存コマンド
保存の基本
:w 現在のファイルを保存
:w filename 指定した名前でファイルを保存
終了コマンド
終了の基本
:q viを終了(未保存の変更がある場合はエラー)
:q! 強制終了(変更を破棄してviを終了)
保存と終了の組み合わせ
よく使う組み合わせ
:wq 保存してからviを終了
:x 保存してからviを終了(:wqと同じ)
ZZ 保存してからviを終了(ノーマルモードで実行)
その他の便利なコマンド
ファイル操作
:e filename 別のファイルを開く
:r filename 別のファイルの内容を現在位置に読み込む
実際の使用例
設定ファイルを編集する典型的な流れ:
sudo vi /etc/hosts
で設定ファイルを開く- 必要な編集を行う
:wq
で保存して終了
間違えて編集してしまった場合:
- 編集中に問題があることに気づく
:q!
で変更を破棄して終了- 再度ファイルを開いて正しく編集
覚えるべき基本コマンド一覧

ここまで紹介したコマンドを、使用頻度順にまとめました。
最重要コマンド(これだけは必須)
コマンド | 機能 | 使用場面 |
---|---|---|
i | 挿入モードに入る | 文字を入力したいとき |
Esc | ノーマルモードに戻る | 挿入モードを終了したいとき |
:wq | 保存して終了 | 編集を完了したいとき |
:q! | 強制終了 | 変更を破棄したいとき |
移動系コマンド(効率アップに必須)
コマンド | 機能 | 使用場面 |
---|---|---|
h j k l | 基本移動 | カーソルを動かしたいとき |
0 | 行頭移動 | 行の最初に移動したいとき |
$ | 行末移動 | 行の最後に移動したいとき |
gg | ファイル先頭 | ファイルの最初に移動したいとき |
G | ファイル末尾 | ファイルの最後に移動したいとき |
編集系コマンド(作業効率大幅アップ)
コマンド | 機能 | 使用場面 |
---|---|---|
dd | 行削除 | 不要な行を削除したいとき |
yy | 行コピー | 行をコピーしたいとき |
p | ペースト | コピーした内容を貼り付けたいとき |
u | 取り消し | 間違った操作を元に戻したいとき |
挿入系コマンド(入力方法の選択肢)
コマンド | 機能 | 使用場面 |
---|---|---|
a | カーソル後に挿入 | 単語の最後に文字を追加したいとき |
A | 行末に挿入 | 行の最後にコメントを追加したいとき |
o | 下に新行作成 | 新しい行を追加したいとき |
実践練習:基本操作の流れ
理論だけでなく、実際に手を動かして練習してみましょう。
練習1:簡単なテキスト編集
目標:基本的な文字入力と保存
vi practice.txt
で新しいファイルを作成i
で挿入モードに入る- 以下のテキストを入力:
Hello, vi!This is my first vi practice.I'm learning basic commands.
Esc
でノーマルモードに戻る:wq
で保存して終了
練習2:編集とコピー&ペースト
目標:既存ファイルの編集
vi practice.txt
で先ほどのファイルを開くgg
でファイルの先頭に移動yy
で1行目をコピーG
でファイルの末尾に移動p
でコピーした行をペーストu
で直前の操作を取り消し:q!
で変更を破棄して終了
練習3:設定ファイルの編集
目標:実際の設定ファイル編集を模擬
vi config.txt
で設定ファイルを作成i
で挿入モードに入り、以下を入力:# Configuration filedebug=trueport=8080host=localhost
Esc
でノーマルモードに戻る2G
で2行目に移動(2G
は2行目に移動するコマンド)A
で行末に移動して挿入モードに入る# Enable debug mode
とコメントを追加Esc
でノーマルモードに戻る:wq
で保存して終了
よくある間違いと対処法

vi初心者がよく遭遇する問題と、その解決方法を紹介します。
問題1:「文字が入力できない」
症状:キーを押しても文字が入力されない
原因:ノーマルモードのまま文字を入力しようとしている
解決法:
i
やa
で挿入モードに入る- 挿入モードであることを確認してから入力
問題2:「変なコマンドが実行されてしまった」
症状:意図しない操作でファイルが変更された
解決法:
u
で操作を取り消す- 複数回間違えた場合は
u
を複数回実行 - それでもダメなら
:q!
で強制終了して最初からやり直す
問題3:「viから抜け出せない」
症状:どうやってviを終了すればいいかわからない
解決法:
Esc
を何度か押してノーマルモードに戻る:q
で終了(保存していない変更がある場合は警告が出る)- 保存したい場合は
:wq
、保存したくない場合は:q!
問題4:「画面が変になった」
症状:画面表示がおかしくなった
解決法:
Ctrl+L
で画面を再描画- それでもダメな場合は一度viを終了して再起動
まとめ
viの基本コマンドは、意外にも少ない数で日常作業の9割以上をカバーできます。
この記事で紹介した基本コマンドを覚えれば、基本的なテキスト編集は問題なくこなせるようになります。
覚えるべき優先順位
- 必須コマンド:
i
、Esc
、:wq
、:q!
- 移動コマンド:
hjkl
、0
、$
、gg
、G
- 編集コマンド:
dd
、yy
、p
、u
- 挿入コマンド:
a
、A
、o
コメント