Ich musste in letzter Zeit viele Dateien bearbeiten, um eine kleine Änderung in jeder Datei vorzunehmen. Um zu jeder Datei zu gelangen, habe ich NERDtree durchsucht und eine Datei nach der anderen geöffnet. Als ich immer mehr Dateien öffnete, bemerkte ich, dass meine Speichernutzung um ein Vielfaches zunahm. Das Schließen von vim gab mir viel Gedächtnis zurück.
Ich habe einige Plugins installiert, aber ich denke, dass der Grund, warum meine Speichernutzung so drastisch anstieg, in der Anzahl der Puffer lag, die ich nach einigen Änderungen geöffnet hatte.
Gibt es eine Möglichkeit, die Anzahl der Puffer zu begrenzen, die vim gleichzeitig öffnen darf, um alte Puffer in Bezug auf die Bearbeitungszeit automatisch zu schließen?
b:variables
in einem,s:plugin[bufid]
wenn der Plugin-Betreuer es vorgezogen hat, den öffentlichenb:
"Namespace" nicht zu verschmutzen . In diesem Fall werden beim Löschen des Puffers nicht unbedingt alle zugehörigen Variablen / Speicher erfasst.Das Folgende sollte Ihre Frage beantworten.
Dies ist in einem Plugin abzulegen. Dann müssen Sie auswählen, wie Sie es verwenden möchten.
quelle
Ich bin nicht sicher, wie ich die ältesten Puffer in Bezug auf die Bearbeitungszeit erhalten soll, aber man könnte stattdessen versuchen, die ältesten unbearbeiteten Puffer zu schließen. Etwas wie:
Anmerkungen:
vim.buffers
ist eine Liste aller in der aktuellen Sitzung geöffneten Puffer, enthält also auch nicht aufgelistete Puffer. Es ist nicht dasselbe wie die von zurückgegebene Liste:ls
.options['buflisted']
.options['modified']
können wir überprüfen, ob der Puffer geändert wurde.N
ist die Anzahl der unveränderten, aufgelisteten Puffer, die geöffnet werden sollen.Dank der Antwort von Luc Hermitte, aus der ich gelernt habe, wie man die Zeitstempel erhält, können Sie stattdessen Folgendes verwenden, um den ältesten inaktiven zuerst rauszuschmeißen:
quelle
:let buffers = filter(range(0, bufnr('$')), 'buflisted(v:val) && ! getbufvar(v:val, "&modified")')
+:exe 'bw '.join(buffers, ' ')
bw
Die Hilfe des IIRC besagt, dass Sie es nicht verwenden sollten, "es sei denn, Sie wissen, was Sie tun". Ich nicht. :):bw
und nie:bd
. Ich habe noch nie den Sinn gesehen, fast alles aus einem Puffer zu löschen, aber eigentlich nicht alles.