強力なウィンドウ分割機能があります。一方で、プラグインなどのドキュメントなどではバッファという表現が使われることが多いです。私ははじめの頃、ウィンドウ、バッファという2つを混同していました。他にも混同している人が多いのではないかと思ったので今回はこの2つについて解説したいと思います。バッファとは?基本的には1つのバッファ=1つのファイルです。プラグインなどでは必ずしもファイルとは一致しません。ウィンドウを開いた場合にもバッファが作られます。メモリ上に読み込まれた(ことがある)内容に対応するものがバッファ、というのが正確な表現でしょう。piyo.jsこのとき、ウィンドウはひとつだけですが、バッファは3つある状態になります。コマンドで確認することができます。ウィンドウとは?ウィンドウは今まさに目に見えている領域で、バッファの内容を表示するものです。コマンドを打ったとしましょう。内容が水平分割されて表示されます。片方を変更するともう片方にも自動的反映されます。この場合、1つのバッファ(hoge.txt)に対して2つのウィンドウが対応します。一般的に、1つのバッファに対して0以上のウィンドウが対応する感じです。ウィンドウを閉じるコマンドです。分割してウィンドウが2つある場合は片方のみ閉じられてもう一方は残ります。バッファを削除するためのコマンドです。すると、バッファ自体が削除されます。それに紐づく2つのウィンドウがいっぺんに閉じられることになります。(ついで)タブページとはウィンドウを束ねるものがタブページです。文字のことになるので区別したい時にはタブページと言いましょう。タブページはウィンドウを束ねているだけなので、タブページごとにバッファを管理したいとかそういうことは現状ではできません。(https://github.com/vim-jp/issues/issues/342)バッファローカル、ウィンドウローカル前述したとおり、バッファは(ほぼ)ファイルに対応します。ある特定のファイルだけに設定したいものはバッファローカルな変数やオプションを使います。して認識して欲しいですね。いうバッファローカルなオプションが使われていて、各ファイルに対して別々の設定をさせることができるようになっています。設定をするなどのように使われています。見た目に関する設定にはウィンドウローカルな変数やオプションを使います。いうオプションはウィンドウについてローカルな値を持つことができます。1つのバッファを分割して開いているときに、片方だけ行番号を表示しないといったことが可能です。いうプラグインではインデント量を可視化する(つまり見た目)ための設定をウィンドウローカルな変数で持っています。ちなみに、オプションがバッファローカルまたはウィンドウローカルな値を持つかどうかはすべてヘルプに書いてあります。ようにグローバルな値しか持たないものもあります。操ることができるといろいろ便利です。使うことで参照できます。別のウィンドウやバッファの変数にアクセスするにはどうすればいいでしょうか。組み込みの関数が使えます。{expr}という名前のバッファの番号を返す。