VimはEmacsのようにバッファを非表示にしますか?


8

私は、バッファ、ウィンドウ、タブのvimの概念がどのようにemacsにマッピングされるかを理解しようとしています。

その私には思える<c-w>sし、<c-w>vEmacsのとほぼ同等であるC-x 2C-x 3。vim分割はデフォルトで等間隔であり、emacsは現在のウィンドウを2等分するため、これらは完全に等価ではありません。

vimの(C-x 0このウィンドウを閉じる)、C-x 1(このウィンドウ以外のすべてを閉じる)に相当するものは何ですか?現在表示していないバッファを閉じずに非表示にしたいので、bufexplorerなどで後で呼び出すことができます。


3
:h CTRL-W_c:h CTRL-W_o
佐藤桂

回答:


15

デフォルトでは、保存されていない変更が含まれている場合、Vimは現在のバッファーを別のバッファーに置き換えることを拒否します。vimrcその動作を望まない(そして望まない)場合は、以下にオプションを追加する必要があります。

set hidden

バッファは他のプログラムのVimのドキュメントと同等です。別のドキュメントに切り替えると、別のバッファに切り替えます。これは次のようなコマンドで行われます。

:b2            switch to buffer number 2
:b#            switch to previous buffer
:b foo<tab>    switch to buffer with foo in its name + tab completion
...

ウィンドウは、バッファーの上に構築された限定的な抽象化です。これらは、バッファを表示するために使用されるビューポートですが、特定のバッファに関連付けることはできません。ウィンドウへの切り替えやウィンドウのクローズは、バッファへの切り替えやバッファのクローズとはまったく異なります。以下にリストされているコマンドを使用して、ウィンドウを操作できます:help ctrl-w

<C-w>s    split current window in two, focus on the new one
<C-w>c    close the current window
<C-w>o    closes all other windows
<C-w>p    switch to previous window
...

タブページは、ウィンドウ上に構築された別の限られた抽象化です。これらは、1つ以上のウィンドウを含むように設計されたワークスペースです。ウィンドウと同様に、ファイル/ドキュメントプロキシとして使用することはできません。

詳細な説明については、:help windowsおよび:help tab-pageを参照してください。


2
幸いにも、Emacs(OPはなじみの深いもの)にも同様のバッファーの概念があります:)
VanLaser

4

ウィンドウを閉じる: Ctrl-w c

他のすべてのウィンドウを閉じます:Ctrl-w o、(o「のみ」の場合)

詳細については、vimを開いてコマンドを入力してください:help window。特にセクション3と4を見てください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.