この記事では、なんとなく使っているけど改めて聞かれるとわからなそうなVim用語のうち、「バッファ」「ウインドウ」「タブ」について、ご紹介します。
よく混同して話題にしてしまいますが、しっかりと区別できるようにしておきましょう。
解答 タブ ⊇ ウインドウ⇔バッファ
これら3つの関係を簡単に図にすると、次のようになります。
Vimの「バッファ」とは
開いてメモリに展開したファイルの中身です。
メモリに展開という点がポイントで、バッファには次のようにいくつか状態があります。
- アクティブ(表示された状態)
- 隠れ(非表示が、メモリに読み込まれている)
- 非アクティブ(非表示かつ読み込まれていない)
メモリ展開 ≠ 表示状態 というところがVimらしいところです。
バッファ一覧( :ls )を見れば、ここで示している状態が分かると思います。
Vimの「ウインドウ」とは
バッファを表示する領域(枠)です。
一つのウインドウを分割して複数のウインドウを表示したり、1つのバッファを複数のウインドウに表示したりできます。
バッファと関連が深い一方、等しくはない点に注意が必要です。
Vimの「タブ」とは
ウインドウの集合です。ウインドウを配置した領域とも言えます。
一つのタブの中で、1つ以上のウインドウをレイアウト(配置)することができます。
タブとウインドウの一覧 (:tabs) を見れば、それらを確認できます。
このVimコマンドの補足情報
- 利用頻度
- 便利さ
- 覚え易さ
関連する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のタブやウインドウ、バッファをうまく扱えるようになるには、こちらの書籍を参考にしましょう。
Vim/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。
こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。
Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。