Linuxコマンドリファレンス viエディタ vi はサーバ保守で最も出番の多いテキストエディタです。最大の特徴はモード にあります。基本はノーマルモード(移動・編集指示)、挿入モード(文字入力)、コマンドラインモード(:で始まる保存・終了・検索置換など)です。Esc でいつでもノーマルに戻れることを体で覚えると、操作が安定します。以下では、よく使うキーと手順を「まず覚える最小セット → すぐ効く編集 → 検索・置換 → 保存・終了」で整理します。 ※環境によっては vim 互換の拡張が有効です(ここでは素の vi でも有効な範囲を中心に記載)。
モードと基本操作 説明 Esc どのモードからでもノーマルモードへ戻る : コマンドラインモードに入る(保存・終了・置換など) i / a その位置から入力開始 / 直後から入力開始(挿入モードへ) I / A 行頭から入力開始 / 行末の次位置から入力開始 o / O 現在行の下に新規行 / 上に新規行を挿入して入力開始
挿入モード(入力開始の定番)キー 説明 i カーソル位置から入力を開始する。 a カーソルの右側の位置から入力を開始する。 I 行頭に移動して入力を開始する。 A 行末に移動して入力を開始する。 o 現在行の下に空白行を挿入し入力を開始する。 O 現在行の上に空白行を挿入し入力を開始する。
ノーマルモード:移動(速く・正確に動く)入力 説明 h j k l 左 下 上 右へ1文字移動 0 / ^ / $ 行頭 / 行頭の最初の非空白 / 行末へ移動 w / b / e 次の単語頭 / 前の単語頭 / 単語末へ移動 gg / G ファイル先頭 / 末尾へ移動 H / M / L 画面の上端 / 中央 / 下端の行へ移動 Ctrl-f / Ctrl-b 1画面進む / 戻る { / } 段落単位で前へ / 次へ 数字 + コマンド 繰り返し回数(例: 3w で3単語進む、10jで10行下)
編集コマンド(削除・コピー・貼り付け・取り消し)入力 説明 x / X カーソルの文字を削除 / 左の1文字を削除 dd 現在行を切り取り(削除) yy 現在行をコピー p / P カーソルの後 / 前に貼り付け u 直前の操作を取り消す Ctrl-r 取り消しの取り消し(やり直し) . 直前の編集操作を繰り返す J 現在行と次行を結合 r 文字 その場で1文字置換 c + 移動 その範囲を変更(削除して挿入モードへ、例: cw, c$) d + 移動 その範囲を削除(例: dw, d$, d0, d3w)
検索・置換(絞り込みと一括修正)入力 説明 /文字列 前方検索(Enterで実行、n で次、N で前) ?文字列 後方検索(n / N で移動) :%s/旧/新/g ファイル全体で一括置換 :%s/旧/新/gc 1件ずつ確認しながら置換 :g/正規表現/p マッチ行を一覧表示(grep 的に確認)
保存・終了とファイル操作(コマンドライン)入力 説明 :w 保存 :q 終了(未保存があると拒否) :wq または 😡 保存して終了 :q! 変更を破棄して終了 :e ファイル名 別ファイルを開く :w 新しいファイル名 別名で保存 :r ファイル名 指定ファイルの内容を現在位置に挿入
検索ナビゲーションの補助入力 説明 n / N 直前の検索方向へ次 / 逆方向へ戻る * / # カーソル上の単語を前方 / 後方に検索(vim 互換環境で可)
実用レシピ(コピペで最速習得)1.行番号を表示して、error を notice に全置換して保存終了
:set number
:%s/error/notice/g
:wq2.100〜150行目を削除
3.設定ファイルからテンプレートを現在行に取り込み
4.表の列末までを3回連続で削除して打ち直し(d$ を使い回す) ノーマルで d$ → . → . → i で入力開始
覚えておくと効率が跳ね上がるコツEsc を頻繁に打ち、ノーマルで移動→編集→Esc のリズムを作る。 移動と編集は組み合わせ が基本(d$, c3w など)。数字指定で作業をまとめる。 置換はまず :%s/旧/新/gc の確認付きで安全に。慣れたら g に切り替える。 .(ドット)で直前操作を繰り返し、u と Ctrl-r で安全に試行錯誤。