Viエディタは、Linux/Unix環境で広く使用される強力なテキストエディタです。
最大の特徴は、2つの基本モードを使い分けることですが、独特のコマンド体系により初心者にとってはとっつきにくいエディタとして知られています。しかし、一度習得すれば非常に効率的な編集が可能となるため、この記事では基本から実践的な使い方まで徹底解説します。
Viエディタの基本概念
コマンドモード
- テキストの編集以外の操作(移動、コピー、削除など)を行うモード
- Viの起動時のデフォルトモード
- ESCキーで他のモードから戻れる
入力モード
- 実際のテキスト入力を行うモード
- iやaキーでコマンドモードから移行
基本操作
起動と終了
# ファイルを開く/新規作成
vi ファイル名
# 保存して終了
:wq
# 保存せずに終了
:q!モード切り替え
入力モードへの移行:
i– カーソル位置から入力開始a– カーソルの次の位置から入力開始o– 現在の行の下に新しい行を作成して入力開始O– 現在の行の上に新しい行を作成して入力開始
編集操作
カーソル移動
基本移動:
- 左右移動:
h(左),l(右) - 上下移動:
k(上),j(下) - 行頭へ:
0 - 行末へ:
$
高度な移動:
- ファイル先頭へ:
gg - ファイル末尾へ:
G - 特定の行へ:
:行番号
テキスト編集
削除操作:
x– カーソル位置の1文字を削除dd– 現在の行を削除dw– カーソル位置から単語末尾まで削除
コピー&ペースト:
yy– 現在の行をコピーp– カーソル位置の後にペーストP– カーソル位置の前にペースト
高度な機能
検索と置換
検索:
/検索文字列– 前方検索?検索文字列– 後方検索n– 次の検索結果へN– 前の検索結果へ
置換:
:%s/old/new/g # ファイル全体でoldをnewに置換
:s/old/new/g # 現在の行でoldをnewに置換その他の便利機能
操作の取り消し:
u– 直前の操作を取り消しCtrl + r– 取り消した操作をやり直し
行番号表示:
set number # 行番号を表示
:set nonumber # 行番号を非表示Tips
- 変更を保存せずにViを終了したい場合は
:q!を使用します - 複数の行を一度に削除する場合は、数字を指定できます(例:
3ddで3行削除) - 行の連結は
Jコマンドを使用します - ファイルの内容を確認するだけの場合は
viewコマンドを使用すると安全です
まとめ
コマンド一覧表
| モード | コマンド | 説明 |
|---|---|---|
| コマンドモード(移動) | h | 左へ移動 |
| l | 右へ移動 | |
| j | 下へ移動 | |
| k | 上へ移動 | |
| 0 | 行頭へ移動 | |
| $ | 行末へ移動 | |
| gg | ファイル先頭へ移動 | |
| G | ファイル末尾へ移動 | |
| コマンドモード(編集) | x | 1文字削除 |
| dd | 行削除 | |
| dw | 単語削除 | |
| yy | 行コピー | |
| p | 貼り付け | |
| u | 取り消し | |
| Ctrl + r | やり直し | |
| コマンドモード(検索) | /文字列 | 前方検索 |
| ?文字列 | 後方検索 | |
| n | 次の検索結果 | |
| N | 前の検索結果 | |
| 入力モードへの切り替え | i | カーソル位置から入力 |
| a | カーソル後ろから入力 | |
| o | 下に行を追加して入力 | |
| O | 上に行を追加して入力 | |
| Exコマンド | :w | 保存 |
| :q | 終了 | |
| :wq | 保存して終了 | |
| :q! | 保存せずに終了 | |
| :set number | 行番号表示 | |
| :s/old/new/g | 現在行の置換 | |
| :%s/old/new/g | ファイル全体の置換 |
基本的な使用手順
vi ファイル名でファイルを開く- コマンドモードで移動や編集操作を行う
- 入力モードに切り替えてテキストを入力
- ESCキーでコマンドモードに戻る
:wqで保存して終了
これらのコマンドを習得することで、Viエディタを効率的に使用することができます。初めは基本的なコマンドから始めて、徐々に上級者向けの機能を習得していくことをお勧めします。





コメント