Verbessern Sie das Verhalten alternativer Dateien, um zu vermeiden, dass gelöschte Puffer erneut geöffnet werden?

7

Gelockt von dem Versprechen des bösen Modus, habe ich in Emacs Mondschein gemacht. Es ist eine wilde Welt mit einer Mischung aus haarigen Lose-Ends und erstaunlich intelligenten Funktionen. Eine Funktion, die mir sehr gefällt, ist ein Befehl namens bury-buffer, der den aktuellen Puffer ganz unten in der Pufferliste ablegt und den zuvor aktiven Puffer an seiner Stelle anzeigt. Durch einen Puffer zu begraben, wird es die am wenigsten wahrscheinlich Kandidaten für other-buffer(wie Vims alternate-fileauf Ctrl-^).

So könnte ich hin und her zwischen Puffer A werden Prellen und B. Dann Puffer, während ich in B bin, möchte ich Check etwas in Puffer C. ich, dann begraben ich C, und ich bin in B setzen mit A als meine alternative Datei . Das gleiche gilt, wenn ich Puffer C gelöscht hätte, anstatt ihn zu vergraben. Jede Aktion würde mich wieder in meinen A / B-Workflow zurückversetzen.

Wenn ich dasselbe in Vim mache und zwischen A und B wechsle, dann zeigt B in C in der Pufferliste C als aktiv ( %) und B als alternativ ( #). Wenn ich C lösche, bringt mich Vim zu B zurück. C ist jedoch immer noch die alternative Datei, obwohl sie nicht mehr in der Pufferliste angezeigt wird. Wenn ich Ctrl-^treffe, wird C wieder geöffnet, anstatt mich zu A zurückzubringen.

Gibt es eine Möglichkeit, Vim so zu konfigurieren, dass das Verhalten alternativer Dateien stattdessen den zuletzt verwendeten offenen Puffer als Alternative markiert, anstatt gelöschte Puffer wiederzubeleben? Gibt es eine Möglichkeit, das Konzept der alternativen Datei zu manipulieren?

ivan
quelle

Antworten:

7

Ich denke, Sie suchen :help :keepalt:

$ vim a b       current buffer is 'a', no alternate file
:bn             current is 'b', alternate is 'a'
:b#             current is 'a', alternate is 'b'
:b#             current is 'b', alternate is 'a'
:keepalt e c    current is 'c', alternate is still 'a'
:keepalt bd     current is 'b', alternate is 'a'
:b#             current is 'a', alternate is 'b'
romainl
quelle
Ich hatte gehofft, dass es eine Option geben könnte, die dieses Verhalten beeinflusst, unabhängig davon, wie die Datei geöffnet / geschlossen wurde, aber dies ist ein guter Befehl, den Sie kennen sollten. Vielen Dank.
Ivan
1
Unterschiedlicher Workflow: Verstecken Sie Ihre Puffer in der Argumentliste mit :args % #, bearbeiten Sie die gewünschten Dateien und stellen Sie sie dann wieder her :last|N.
Antony