ZyXが#vimで言ったように、この質問は「Vimのエキスパートが暖かいよりもおいしいのを好む理由」のように聞こえます。。
「Vimエキスパート」はタブよりもバッファを好みません。バッファをファイルプロキシとして使用し、タブページをワークスペースとして使用します。バッファとタブページは目的が異なるため、どちらかを優先することはまったく意味がありません。
バッファとタブの問題は、独立したファクトの組み合わせによって引き起こされる混乱の 1つです。
ほとんどの「最新の」テキストエディタとIDEは、タブのメタファを使用して、ロードされたファイルを表します。そのメタファーは、情報システムとして機能します。つまり、開かれているファイルとその状態をユーザーに示します。また、対話型デバイスとして、開かれたファイルをユーザーが操作(並べ替え、選択、閉じるなど)できるようにします。それらの多くの制限にもかかわらず、タブは至る所にあり、人々はそれらに慣れ、どこでもそれらを期待します。
Vim は7.0でタブページを導入し、ユーザーがアドホックな「ワークスペース」を作成できるようにしました。それらの機能、特定のオプション、特定のコマンド、または:help
セクションに、タブページをファイルプロキシとして使用できる、または使用する必要があることを示唆するものはありません。
もちろん、名前と「タブページ」の外観以外は何もないため、多くの混乱が生じます。
なければ:set hidden
、デフォルトでは無効ではなく非常に簡単に見つけることがされ、Vimはそれが不可能な現在の1を書くか、その変化を放棄することなく、別のバッファに切り替えることができます。新しいユーザーは、そのオプションに気づいていないため、ウィンドウを多用するか、最も近い「タブのような」機能であるタブページに切り替えるしかありません。
「タブページ」は、特にドキュメントを読むのは時間の浪費であるという考えが支配的である時代に、その機能の不幸な名前の選択です。
Vimでは、タブページはウィンドウの上に構築された抽象であり、それ自体がバッファーの上に構築された抽象です。新しいレベルごとに便利な機能が追加されますが、ワークフローが制限されます。
「バッファウェイ」
バッファベースのワークフローでは、作業中のファイルは単一の次元に沿って配布されます。バッファーを循環させたり、名前の一部(補完あり)または番号を入力して特定のバッファーにアクセスしたり、バッファーを切り替えたり、ターゲットを簡単に指定したりできます。基本的に摩擦はありません。
8つのバッファが開き、1つだけが表示されます。
番号による切り替え:
名前で切り替える:
バッファはVimのファイルプロキシです。ファイルの観点から考えると、バッファの観点から考えることになります。
「窓の道」
ウィンドウベースのワークフローでは、あなたの「ファイル」は、両方の彼らはあなただけのバッファを使用するかどうのと同じシングル「仮想」の次元に沿って分布していると他の二つの「物理的」の次元に沿って。しかし、これらの次元が存在するデカルト空間はほぼ完全に分離されています。別のバッファーに移動することは、「別のファイルに移動する」ことを意味しますが、別のウィンドウに移動することは意味しません。目的のファイルに対応するバッファがそのウィンドウに表示される場合がありますが、別のタブページに表示される場合もあれば、まったく表示されない場合もあります。
ウィンドウを使用すると、'switchbuf'
およびを使用しても、開いているファイル間を移動するのが複雑になりすぎたり、単純化しすぎたりします:sb
。ほとんどの場合、基本的に同じこと、つまりバッファへのアクセスに2つのコマンドセットを使用する必要があるためです。
以下に説明するように、Windowsには用途がありますが、誰かのワークフローでバッファを置き換えるために必要なものはありません。
ここでは、Vimのカラースキームに取り組んでいます。2つのウィンドウは、同じバッファーの異なるビューです。上の1つは、カラースキームで使用されているカラーコードのテーブルとともに参照として機能し、下の1つは私が作業する場所です。
Windowsはファイルプロキシとして設計されておらず、ファイルプロキシにすることはできません。それらは、バッファへのビューを提供するように設計された「コンテナ」または「ビューポート」です。それ以上でもそれ以下でもありません。
「タブウェイ」
タブベースのワークフローでは、Vimのタブページの本質を完全に無視しながら、基本的に以前のエディターで使用していたユーザーエクスペリエンスを模倣しようとします。この戦略が一般的に非常に非生産的であることを一瞬忘れると、Windowsと同様に、Vimに多くの柔軟性を失うことなく「1つのファイル= 1つのタブ」というパラダイムを強制することも不可能になります。
上記と同じファイルを操作する場合、タブラインはかなりのスペースを占めますが、実質的にはメリットがありません。すべてのファイルとすべてのタブが呼び出されるjavascript*.vim
ため、実行できず3gt
、適切な場所に移動して、特定のタブに名前でアクセスすることはできません。さらに、そのラベルは非常に役に立たないが完全に論理的なものになる可能性があるという事実に加えて[Quickfix List]
、ファイル/バッファをタブページに結び付ける実用的な方法がないため、基本的にタブページ間を移動する1つの実用的な方法しかありません。 / buffers / files:循環。
そして、ええ、私のタブラインはたった8つのタブで壊されています。
8つのバッファが8つのタブページで開いている(間違っている)
2つの特定のタスク用の2つのタブ(右)
タブページは、1つ以上のウィンドウを含むように設計された「コンテナ」または「ビューポート」であり、それ自体がバッファを含むように設計された「コンテナ」です。
結論として
「Vimエキスパート」(私が1人であるかのように話すことができると仮定しましょう)は、タブよりもバッファを好みません。彼らは設計されたVimを使用し、その設計に完全に快適です。
「Vimエキスパート」には2、30、または97個のバッファがロードされており、空間分布を処理する必要がないことを非常に喜んでいます。
「Vimエキスパート」は、2つのファイルを比較するか、現在のバッファーの一部で作業しながら、別のファイルを参照する必要がある場合、ウィンドウを使用します。
「Vimエキスパート」は、現在のビューに手を加えることなく、プロジェクトの別の部分でしばらく作業する必要がある場合、まったく新しいタブページをロードします。