Vim の基本
Vim の終了方法がわかったあなた、おめでとうございます。インターネット的には、もう最難関を突破したことになります。でも、Vim から逃げるだけでなく、実際に使いこなしたいなら、いくつかの基本コンセプトを押さえておくと一気に理解が深まります。このページは「なるほど、だからそうなってるのか」と腑に落ちるためのガイドです。
モード — 最大のポイント
ほとんどのエディタはシンプルです。キーを押せば文字が入力される。Vim は違います。Vim にはモードがあり、モードごとにキーボードの役割が変わります。これが Vim を強力にしている理由であり、初心者が混乱する原因でもあります。
毎日使う4つのモードを紹介します:
NORMAL
モード — ここがホームベースです。Vim を開くと、まずここにいます。キーを押してもテキストは入力されません。代わりに、移動・削除・コピー・コマンド実行を行います。他のモードから戻るには Esc を押してください。
INSERT
モード — このモードでは、普通のエディタと同じようにキーを押すとテキストが入力されます。i(カーソルの前に挿入)、a(カーソルの後に追加)、o(下に新しい行を開く)で切り替えられます。Esc を押すと
NORMAL
に戻ります。
VISUAL
モード — テキストを選択するためのモードです。v で文字単位の選択、V で行単位の選択、Ctrl+v でブロック選択ができます。選択した範囲は、削除(d)、コピー(y)、変更(c)が可能です。
COMMAND
モード —
NORMAL
モードで : を押すと、画面下部にコマンドラインが表示されます。ここで :w(保存)、:q(終了)、:s/古い/新しい/g(置換)などのコマンドを入力します。
モード間の切り替え
| 切り替え元 | 切り替え先 | 方法 |
|---|---|---|
| どのモードからでも | NORMAL | Esc |
| NORMAL | INSERT | i, a, o, I, A, O |
| NORMAL | VISUAL | v, V, Ctrl+v |
| NORMAL | COMMAND | : |
Buffer
Vim でファイルを開くと、そのファイルは buffer に読み込まれます。buffer はファイルのメモリ上のコピーです。画面に1つしか表示されていなくても、複数の buffer を同時に開いておくことができます。
| コマンド | 動作 |
|---|---|
:ls |
開いている buffer の一覧を表示 |
:bn |
次の buffer に移動 |
:bp |
前の buffer に移動 |
:bd |
現在の buffer を閉じる |
:e ファイル名 |
新しい buffer でファイルを開く |
ウィンドウ(split)
2つのファイルを並べて見たいですか? Vim では画面をウィンドウに分割して、それぞれに異なる buffer(または同じ buffer)を表示できます。
| コマンド | 動作 |
|---|---|
:sp |
水平 split |
:vsp |
垂直 split |
Ctrl+w h/j/k/l |
split 間の移動(左/下/上/右) |
Ctrl+w c |
現在の split を閉じる |
Ctrl+w = |
すべての split を同じサイズにする |
タブ
Vim のタブはワークスペースのようなものです。各タブに独自の split と buffer の配置を持たせることができます。異なる作業を整理するのに便利です。
| コマンド | 動作 |
|---|---|
:tabnew |
新しいタブを開く |
:tabc |
現在のタブを閉じる |
gt |
次のタブに移動 |
gT |
前のタブに移動 |
コマンドライン
NORMAL
モードで : を押すたびに、
COMMAND
モードに入ります。コマンドラインは非常に強力です。まずは基本をいくつか覚えましょう:
| コマンド | 動作 |
|---|---|
:w |
ファイルを保存 |
:q |
終了 |
:wq |
保存して終了 |
:help キーワード |
Vim の組み込みヘルプを開く |
:set number |
行番号を表示 |
:%s/古い/新しい/g |
ファイル全体で「古い」を「新しい」に置換 |
次のステップ
Vim の考え方がわかったところで、さらに生産性を上げていきましょう:
- Vim ショートカット — よく使うコマンドのチートシート
- なぜ Vim? — Vim を学ぶ価値があるか迷っている方はこちら