この記事では、なんとなく使っているけど改めて聞かれるとわからなそうなVim用語のうち、「バッファ」「ウインドウ」「タブ」について、ご紹介します。
よく混同して話題にしてしまいますが、しっかりと区別できるようにしておきましょう。
解答 タブ ⊇ ウインドウ⇔バッファ
これら3つの関係を簡単に図にすると、次のようになります。

Vimの「バッファ」とは
開いてメモリに展開したファイルの中身です。
メモリに展開という点がポイントで、バッファには次のようにいくつか状態があります。
- アクティブ(表示された状態)
- 隠れ(非表示が、メモリに読み込まれている)
- 非アクティブ(非表示かつ読み込まれていない)
メモリ展開 ≠ 表示状態 というところがVimらしいところです。
バッファ一覧( :ls )を見れば、ここで示している状態が分かると思います。

Vimの「ウインドウ」とは
バッファを表示する領域(枠)です。
一つのウインドウを分割して複数のウインドウを表示したり、1つのバッファを複数のウインドウに表示したりできます。
バッファと関連が深い一方、等しくはない点に注意が必要です。
Vimの「タブ」とは
ウインドウの集合です。ウインドウを配置した領域とも言えます。
一つのタブの中で、1つ以上のウインドウをレイアウト(配置)することができます。
タブとウインドウの一覧 (:tabs) を見れば、それらを確認できます。

このVimコマンドの補足情報
- 利用頻度[star rate=5]
- 便利さ[star rate=5]
- 覚え易さ[star rate=3]
関連するVimヘルプ
Vim のヘルプでは下記のように解説されています。
. はじめに windows-intro window
要約:
バッファとはメモリに保持しているファイルの内容である。
ウィンドウとはバッファの表示領域である。
タブページとはウィンドウを集めたものである。ウィンドウはバッファの表示領域である。1つのバッファに対して複数のウィンドウを
開くことができるし、異なる複数のバッファに対して複数のウィンドウを開くこともで
きる。バッファは編集時にメモリ上にロードされたファイルのことを言う。
オリジナルのファイルはバッファ内容をそのファイルに上書きするまで変更されずにい
る。バッファは以下の3つの状態のうちのどれか1つの状態にある。
active-buffer
windows – Vim日本語ドキュメント
アクティブ: バッファ内容はウィンドウに表示されている。このバッファに対応する
ファイルが存在する場合、ファイルがバッファに読み込まれている。
バッファはそれ以降編集されていて、ファイルと異なっているかもしれない。
hidden-buffer
隠れ(hidden): バッファ内容はウィンドウに表示されていない。このバッファに対応す
るファイルが存在する場合、ファイルはバッファに読み込まれている。
見ることができないが、それ以外はアクティブなバッファと同じ。
inactive-buffer
非アクティブ: バッファ内容はウィンドウに表示されていない。バッファには何もロー
ドされていない。ファイルが一度でもメモリにロードされていたなら、
そのバッファのオプションは記憶されている。viminfoファイルにより
マークを含んでいるかもしれない。
こちらは、Vim上では下記のコマンドでヘルプを確認できます。
:help windows-intro :help window
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
Vimに関する参考書籍
Vimのタブやウインドウ、バッファをうまく扱えるようになるには、こちらの書籍を参考にしましょう。
[temp id=3]