Normalerweise öffne ich ein paar Fenster und lasse einige Puffer offen. Da mein MO beim Puffersurfen schnelle Verknüpfungen zu :bn
und verwenden soll :bp
, möchte ich nicht benötigte Puffer schließen, um mein Puffersurfen nicht abzulenken.
Aber der Schmerz ist, herauszugeben :bd
und :bw
das Fenster auch zu schließen, falls ich mehrere geöffnet habe. Wie schließe (lösche) ich einen Puffer und lasse die Fenster intakt?
Lösung inspiriert von @ peths Antwort
:command! BW :bn|:bd#
Es ist einfach. Funktioniert nicht gut, wenn nur ein Puffer geöffnet ist (je nach Art des Öffnens der Dateien verhalte ich mich unterschiedlich), aber das ist kein großes Problem. :)
Ich habe ein bisschen damit rumgespielt und kam schließlich auf:
Hier ist die Copy / Paste-Version für die Tastenzuordnung:
Oder einen Befehl für Ihre .vimrc (Aufruf mit: Bd):
Ich habe es ein bisschen getestet und es funktioniert konstant unter verschiedenen Bedingungen. Bei Verwendung für den letzten Puffer verbleibt ein neuer leerer Puffer.
quelle
Ein Fenster ist ein Ansichtsfenster in einem Puffer. (Siehe
:help window
.) Sie können kein Fenster ohne einen zugeordneten Puffer haben. Sie können einen Befehl verwenden:enew
, um den aktuellen Fensterinhalt durch einen leeren Puffer zu ersetzen.quelle
das bufkill.vim Plugin funktioniert auch. Ich verwende es gerne zusammen mit vim-command-w, um zusätzliche Funktionen und Vorteile zu erzielen (zum Beispiel, wenn es sich um den letzten Puffer handelt, wird ein Split geschlossen, oder wenn es sich um den letzten Puffer / Split handelt, wird vim geschlossen).
quelle
Hier ist eine andere Lösung:
Wenn Sie dann Strg + W eingeben, wird leise ein neues Fenster erstellt und das alte Fenster geschlossen. Der Cursor bleibt im neuen Fenster. Es gibt eine Reihe von positiven Effekten:
quelle
Ich denke, das Problem ist, dass die meisten Leute erwarten, dass vim buffer und window etwas sind, was sie nicht sind.
Die Leute neigen dazu, sich ein vim-Fenster als einen eigenständigen Prozess vorzustellen, der eine eigene Liste von Puffern hat, aber leider nicht. Ein vim-Fenster ist nur ein Ansichtsfenster seiner Puffer.
Daher treten viele Probleme auf, wie z. B. Ihr Problem oder das Problem, dass verschiedene Fenster dieselbe Pufferliste verwenden, sodass Sie Puffer 1 in Fenster A nicht bearbeiten können, und dass Fenster B Puffer 1 in seiner Pufferliste ignoriert.
Meine Lösung besteht darin, zwei Instanzen von vim zu öffnen, damit Sie die Art von vim-Fenster haben können, die Sie möchten. Es funktioniert am besten beim Kacheln von WMs.
quelle
Normalerweise öffne ich das Menü, während ich mich in einem Puffer befinde. Dies öffnet das Menü im linken Bereich und der Cursor ist dort aktiv. Also schalte ich einfach zurück zum aktiven Puffer und lösche den Puffer.
Danach kann ich eine andere Datei aus dem Menü öffnen.
Meine Schritte sind:
quelle