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 + r | Undo の取り消し(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