vi コマンドの使い方 [Linux]

2025/04/25

vi コマンドとは?

vi は UNIX系OSにおける標準的なテキストエディタであり、ターミナル上で強力な編集機能を提供します。
「Vim」は vi の改良版として広く利用されており、多くの環境では vi を実行すると Vim が起動されます。


基本構文

vi ファイル名

ファイルが存在すればその内容を開き、存在しなければ新規作成モードで開きます。


vi の基本モード構成

モード説明
ノーマルモード初期状態。コマンド入力や移動を行う
挿入モードテキストを入力できるモード
コマンドラインモード: から始まるコマンドを使って保存・終了などを行う

モードの切り替え

操作結果
iカーソルの位置から挿入モード
I行頭から挿入モード
aカーソルの次の位置から挿入モード
A行末に移動して挿入モード
o下に新しい行を開き挿入モード
O上に新しい行を開き挿入モード
Rカーソル位置から入力文字で上書き
Escノーマルモードに戻る

基本操作(ノーマルモード)

コマンド説明
h, j, k, l左・下・上・右 に移動
dd行を削除
yy行をコピー
p貼り付け(コピー/削除直後)
xカーソル位置の1文字削除
rカーソル位置の1文字を置換
u元に戻す(Undo)
Ctrl + rUndo の取り消し(Redo)
.最後の操作を繰り返す

検索と置換

検索(コマンドラインモード)

/pattern     # 下方向に検索
?pattern     # 上方向に検索
n            # 同じ方向に次を検索
N            # 反対方向に検索

置換

:%s/old/new/g         # 全文で置換
:%s/old/new/gc        # 1つずつ確認して置換
:10,20s/foo/bar/g     # 10〜20行目だけ置換

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

コマンド説明
:wファイル保存
:q終了(未保存なら警告)
:wq または ZZ保存して終了
:q!保存せず強制終了
:e filename他ファイルを開く
:r filename別ファイルの内容を読み込み挿入

複数ウィンドウ・ファイル操作

コマンド説明
:split または :sp横分割
:vsplit または :vsp縦分割
Ctrl-w + h/j/k/lウィンドウ移動
:bn / :bp次/前のバッファを表示
:ls開いているバッファの一覧

ビジュアルモード(範囲選択)

コマンド説明
v文字単位で選択開始
V行単位で選択
Ctrl-v矩形選択(ブロック)
y選択部分をコピー
d選択部分を削除
p選択部分を貼り付け

よくあるエラーと対処法

エラー原因解決策
E37: No write since last change保存していないのに :q:wq または :q! を使用
ファイルが開かない権限がないsudo vi を使用
^Mが表示される改行コードが CRLF:set fileformat=unix で変換

実用Tips

  • :set number → 行番号を表示
  • :syntax on → シンタックスハイライト有効(vim)
  • .vimrc に設定を記述して常用環境を整備
  • 編集後はこまめに「Esc」で挿入モードを抜けておく
  • 誤入力・誤操作が疑われた場合は「:q!」で抜けてやり直す

まとめ

  • vi(または vim)は多機能・高速なテキストエディタ
  • モードとコマンドを覚えることで作業効率が大幅に向上
  • 保存・検索・置換・分割表示など、開発や管理に必須のスキル

参考リンク

  • https://vim-jp.org/docs/faq.html
  • https://www.linux.com/training-tutorials/vim-101-beginners-guide-vim/
  • https://man7.org/linux/man-pages/man1/vi.1.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です