Vim verstecken Puffer wie in Emacs?

8

Ich versuche herauszufinden, wie das vim-Konzept von Puffern, Fenstern und Registerkarten auf Emacs abgebildet wird.

Es scheint mir das <c-w>sund <c-w>vsind ungefähr gleichbedeutend mit Emacs C-x 2und C-x 3. Sie sind nicht genau gleichwertig, da Vim-Splits standardmäßig gleich verteilt sind und Emacs das aktuelle Fenster halbieren.

Was ist das Äquivalent von C-x 0(dieses Fenster schließen) C-x 1(alles außer diesem Fenster schließen) für vim? Ich möchte in der Lage sein, die Puffer zu verbergen, die ich gerade nicht suche, ohne sie zu schließen, damit sie später noch mit Bufexplorer oder ähnlichem beschworen werden können.

Gregory Nisbet
quelle
3
:h CTRL-W_c, :h CTRL-W_o.
Sato Katsura

Antworten:

15

Standardmäßig weigert sich Vim, den aktuellen Puffer durch einen anderen zu ersetzen, wenn er nicht gespeicherte Änderungen enthält. Sie müssen die folgende Option zu Ihrer hinzufügen, vimrcwenn Sie dieses Verhalten nicht möchten (und Sie möchten das nicht):

set hidden

Puffer sind Vims Äquivalent zu Dokumenten in anderen Programmen. Wenn Sie zu einem anderen Dokument wechseln, wechseln Sie zu einem anderen Puffer. Dies geschieht mit Befehlen wie:

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

Windows ist eine begrenzte Abstraktion, die auf Puffern basiert. Es handelt sich um Ansichtsfenster, in denen Puffer angezeigt werden, die jedoch nicht an einen bestimmten Puffer gebunden sind . Das Wechseln zu einem Fenster oder das Schließen eines Fensters ist definitiv nicht dasselbe wie das Wechseln zu einem Puffer oder das Schließen eines Puffers. Sie können mit Windows mit den folgenden Befehlen arbeiten :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
...

Registerkarten sind eine weitere eingeschränkte Abstraktion, die auf Fenstern basiert. Sie sind Arbeitsbereiche, die ein oder mehrere Fenster enthalten sollen. Wie Windows können sie nicht als Datei- / Dokument-Proxys verwendet werden.

Siehe :help windowsund :help tab-pagefür eine ausführliche Beschreibung.

romainl
quelle
2
Glücklicherweise hat Emacs (etwas, mit dem das OP vertraut zu sein scheint) ein ähnliches Pufferkonzept :)
VanLaser
4

Fenster schließen: Ctrl-w c

Schließen Sie alle anderen Fenster : Ctrl-w o, ( ofür "nur")

Für weitere Informationen öffnen Sie vim und geben Sie den Befehl ein :help window. Schauen Sie sich insbesondere die Abschnitte 3 und 4 an.

lwassink
quelle