このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linux基礎:viエディタの基本

viエディタの基本

 サーバー管理や設定変更の多くは「テキスト編集」から始まります。Linux の標準的なテキストエディタである vi(Vim) は、GUI のない環境やレスキューモードでも使える“最後の砦”。操作に独特の癖はあるものの、コマンドモード挿入モードを行き来してキーボードだけで機敏に編集できるのが強みです。
 ここでは Rocky Linux を想定し、試験(LPIC)でも問われる 起動・終了、モード切替、保存、基本編集、検索、設定 を、表や図で体系的に整理します。

1.viエディタの全体像

1.1. vi と Vim の関係・特長

項目内容
実体多くのディストリで vivim(Vi IMproved)へのリンク
利点軽量・常駐不要・CLIのみで完結・カスタム性が高い
用途設定ファイル編集、ログのスポット閲覧、リモート保守
試験観点Vim固有拡張より「基本操作(モード/保存/移動/編集/検索)」が中心

1.2. 2つのモード

  • コマンドモード:入力したキーが「編集コマンド」になる(移動・削除・保存など)
  • 挿入モード:文字入力そのものがファイルに挿入される

モード遷移(図)

コマンドモード ── i / a / o / I / A / O ─→ 挿入モード

説明:通常はコマンドモードで開始。文字を書きたい瞬間だけ挿入モードへ入り、終わったら Esc で戻す—これが vi の基本リズムです。

2.起動・終了・保存

2.1. vi コマンド(Vim)の書式と主なオプション

書式

vi [オプション] [ファイル...]

主なオプション(よく使うもの)

オプション説明
-R読み取り専用で開く(上書き防止)
-u NONE個人設定(vimrc)を無効化して素の挙動で起動
-bバイナリモード
-oN水平に N 分割して複数ファイルを開く。
-ON垂直に N 分割して複数ファイルを開く。
-pタブで複数ファイルを開く。

例:読み取り専用で設定ファイルを安全に確認
[user@rocky9 ~]$ vi -R /etc/ssh/sshd_config

2.2. 起動と基本画面

[user@rocky9 ~]$ vi /home/user/work/notes.txt
  • 指定ファイルが無ければ新規作成状態で開く
  • 画面左の ~ は“まだ内容のない行”を示す(Vim既定の表示)

2.3. 保存・終了(コマンドラインモード)

コマンドモードで : を押すと画面最下段に入力欄(コマンドライン)が出ます。

入力動作
:w保存(書き込み)
:w 新名別名で保存
:q終了(未保存変更があると拒否)
:wq保存して終了
ZZ保存して終了(Shift+Zを2回)
:q!変更を破棄して強制終了

:編集して保存・終了

:wq

3.カーソル移動とモード切替

3.1. カーソル移動(コマンドモード)

キー意味
h/j/k/l左/下/上/右
0 / $行頭 / 行末
gg / G先頭 / 末尾
w / b次/前の単語先頭へ
Ctrl+f / Ctrl+b1画面 下 / 上

ヒント:5j のように数字を前置すると 5回繰り返し

3.2. 挿入モードに入るコマンド

キーどこから入力を始めるか
i / a現在位置 / 1文字右から
I / A行頭 / 行末から
o / O下行 / 上行に空行を作って開始

迷ったら Esc を押して“コマンドモードに戻る”のが安全策。

4.よく使う編集操作

4.1. 行・文字の削除/コピー/貼り付け

コマンド(コマンドモード)動作
dd行を切り取り(ヤンクバッファに格納)
yy行をコピー
p / P現在行の / に貼り付け。
x / Xカーソル位置の1文字削除 / 左1文字削除
.直前の編集操作を繰り返す。
u / Ctrl+r取り消し / やり直し。

tanaka の行を2行切り取り → 直後に3回貼り付け

  • 2dd3p

4.2. 範囲削除の典型

意味
d$カーソルから行末まで削除
d0行頭まで削除
dw次の単語境界まで削除
dgg / dG先頭まで / 末尾まで削除

5.検索・置換・表示設定

5.1. 検索

入力意味
/キーワード下方向へ検索
?キーワード上方向へ検索
n / N同方向 / 逆方向に次を検索

/servern で次の server へジャンプ

5.2. 一括置換(基本)

入力意味
:%s/old/new/先頭〜末尾まで old を1行ずつ最初の1件置換
:%s/old/new/g先頭〜末尾まで全件置換
:.,$s/old/new/g現在行〜末尾まで全件置換

5.3. :set で見やすく

コマンド効果
:set number / :set nonumber行番号の表示/非表示
:set hlsearch / :set nohlsearch検索結果をハイライト
:set ignorecase / :set smartcase大文字小文字を無視 / 先頭に大文字があれば区別
:set ts=4 sw=4 etタブ幅/インデント/スペース展開

6.Rocky Linux 環境での実例

ここでは別の例として、/etc/hosts を読取専用で開き、メモ用ファイル memo_dns.txt を新規作成・編集して保存してみます。

6.1. 読取専用で安全に確認

[user@rocky9 ~]$ vi -R /etc/hosts

6.2. 新規ファイルを開いて編集

[user@rocky9 ~]$ vi memo_dns.txt
# 挿入モードに入り、追記
i
DNSメモ:
- /etc/resolv.conf を確認
- nameserver の到達性は ping で確認
<Esc>
:w
:wq

補足:日本語入力

日本語入力については、以下の記事を参考にしてください。

問題10」のところに日本語入力の設定方法を解説しています。

Linux基礎:コマンド練習03

このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。 Linux基礎:コマンド練習03 コマンド練習03  「コマンド練習03」では 3章の前半で登…

7.トラブル対処の要点

事象対処
何モードかわからないまず Esc を押す(何度押しても安全)
終了できない(未保存):wq で保存終了、破棄なら :q!
間違って Ctrl+Zシェルに戻っただけ。fg で前面復帰してから終了
設定が邪魔vi -u NONE で素の挙動を確認

8.便利チートシート(最小セット)

目的キー/コマンド
文字入力開始/終了i / Esc
保存/終了:w / :q / :wq / :q! / ZZ
行の操作dd(切り取り) / yy(コピー) / p(貼り付け)
移動h j k l / 0 $ / gg G
検索/word、次へ n
取り消し/やり直しu / Ctrl+r

まとめ

  • vi(Vim)はCLIだけで完結する標準エディタ。サーバー運用で不可欠。
  • モード切替(コマンド↔挿入)が要点。入力は必要なときだけ挿入モード、終われば Esc
  • 保存・終了(:w, :q, :wq, :q!, ZZ を最初に体で覚える。
  • 移動(h j k l0/$gg/G)と編集(dd/yy/p が基本動作。
  • 検索(/)と :set で“見つけやすく・見やすく”。