Vimでウインドウを分割する方法(:split / :vsplit / :new / :vnew)
ウインドウ分割の方法は複数あり、「今のファイルを分割するのか、新しいバッファを開くのか」「水平分割か垂直分割か」の2軸で整理すると覚えやすくなります。
目次(9項目)
| キー | これだけ覚える |
|---|---|
| Ctrl-w s | 今のファイルを上下分割 |
| Ctrl-w v | 今のファイルを左右分割 |
| Ctrl-w n | 新規バッファを上下分割で開く |
:vnew | 新規バッファを左右分割で開く(キーバインドなし) |
用語の整理:水平分割と垂直分割
まず混同しやすい用語を確認しておきます。水平分割(split)は画面を上下に分ける分割、垂直分割(vsplit)は画面を左右に分ける分割を指します。コマンド名のvは「vertical(垂直)」の頭文字で、「virtual」の略ではありません。日本語の「水平」「垂直」という言葉と、実際の分割線の向きが直感と逆に感じられることがあるので、最初は混乱しやすいポイントとして意識しておくと安心です。
1. カレントウインドウを水平(上下)分割する
Ctrl-w s
Ctrl-w Ctrl-s
:split
:sp
┌─ file.txt ────────┐ │ │ │ │ └────────────────────┘
┌─ file.txt ────────┐
│ │
├────────────────────┤
│ file.txt │
└────────────────────┘
2. カレントウインドウを垂直(左右)分割する
Ctrl-w v
Ctrl-w Ctrl-v
:vsplit
:vsp
左右に分かれた2つのウインドウに同じ内容が表示されます。ワイド画面のモニタでは、こちらのほうが1行あたりの表示幅を確保しやすくなります。
:splitは上下、:vsplitは左右です。vの意味は「vertical」であって「virtual」ではありません。3. 新しい空のバッファを水平分割で開く
Ctrl-w n
Ctrl-w Ctrl-n
:new
既存のファイルを分割するのではなく、空の新規バッファを上下分割で開きます。メモ書きや一時的な作業スペースが欲しいときに使えます。
4. 新しい空のバッファを垂直分割で開く
:vnew
:vne
同じく空の新規バッファを、今度は左右分割で開きます。こちらはキーバインドがなく、コマンドのみで実行します。
| 既存ファイルを分割 | 新規バッファを開く | |
|---|---|---|
| 水平(上下) | :split | :new |
| 垂直(左右) | :vsplit | :vnew |
ファイルを指定して開く
いずれのコマンドも、末尾にファイル名を指定すればそのファイルを分割先で開けます。
:split ~/notes/todo.md
:vsplit config.lua
分割したウインドウを閉じる
分割したウインドウを閉じる方法は複数あり、Vimごと終了するか分割だけ解消するかで挙動が変わります。詳しくはウインドウを閉じる4つの方法の記事にまとめています。ウインドウ間の移動はこちらの記事、位置の入れ替えはこちらの記事を参照してください。
最初は:splitと:vsplitの上下左右がどちらか毎回迷っていましたが、「vはvertical=左右」と覚えてからは迷わなくなりました。ワイドモニタで作業するときはvsplitで左右に並べ、ノートPCの狭い画面ではsplitで上下に分けるというように、画面比率に応じて使い分けています。
まとめ
ウインドウ分割は「今のファイルを分けるか、新規バッファを開くか」と「水平か垂直か」の2軸で4通りです。vが付くコマンドは垂直(左右)分割という点だけ押さえておけば、迷わず使い分けられます。