Lösche ich Puffer nicht richtig, bevor ich meine Sitzung speichere? Es scheint auf jeden Puffer zu glimmen, den ich geöffnet habe. Ich verwende gvim mit den Standardbefehlen :tabe
und :tabnew
.
:tabe
, mache etwas Arbeit :mksession! ~/session
, um meinen Sitzungsstatus zu speichern :14bd
:ls
bestätigt, dass # 14 gelöscht wurde :mksession! ~/session
, um die Sitzung erneut zu speichern :qa
:so ~/session
Puffernummern werden beim Speichern / Wiederherstellen von Sitzungen nicht beibehalten. Wenn Sie also 15 Puffer öffnen und einen löschen, haben Sie 14 Puffer. Wenn die Sitzung wiederhergestellt wird, erhalten diese 14 Puffer Nummern von 2 bis 15, unabhängig davon, welche Nummern sie zuvor hatten (Nummer 1 wurde von unbenanntem Puffer beim Start von vim übernommen, sie wird von der Sitzungsdatei geschlossen). Überprüfen Sie also, ob der von der Sitzungsdatei erstellte # 14-Puffer den gleichen Dateinamen wie der alte # 14-Puffer hat.
Update: Ich habe die Sitzungsdatei ausgecheckt und festgestellt, dass der Befehl args
wahrscheinlich den Ärger verursacht. Habe ich recht, dass Puffer # 14 aus Shell geöffnet wurde? Versuchen Sie, den folgenden Befehl zu erstellen und verwenden Sie ihn anstelle von bd
:
Du machst das richtig - ich mache genau das fast jeden Tag und es funktioniert gut für mich. Wenn Sie den Puffer mit bd aufheben und die Sitzung speichern, sollte sie beim Wiederherstellen nicht aufgelistet werden.
Um herauszufinden, was schief läuft, würde ich empfehlen, die Sitzungsdatei zu öffnen und nach 'badd' zu suchen (z. B. :g/badd
, um eine Popup-Liste zu erhalten). Diese badds sind die Befehle, die die Puffer mit dem richtigen Index in die Pufferliste zurückladen.
Außerdem würde ich wahrscheinlich die zweite Sitzung unter einem anderen Namen speichern und ein vimdiff zwischen den zwei Dateien machen, nur um sicherzustellen, dass nichts falsch läuft.
Die Sitzungsdateien sind ziemlich einfach zu lesen, und Sie können, wenn Sie nicht weiterkommen, immer :h
für einen bestimmten Befehl eingeben.
Ok: Das nervte mich auch. Ich habe einen Befehl (Arch Linux: Krusader Dateimanager)
%Vor%ermöglicht mir, mit der rechten Maustaste auf eine Datei in Krusader zu klicken und diese Datei in Vim zu öffnen. Ich spare auch Vim-Sitzungen über meine ~ / .vimrc:
%Vor%Dateien, die ich extern über 'vim --remote' öffne, z. B.
%Vor%hartnäckig zwischen den Sitzungen bestehen, auch nach dem üblichen: bd,: bw,: bw! usw. Befehle und / oder Löschen der vim-Sitzungsdatei.
Mit Blick auf die vim_session.vim-Datei habe ich eine 'argadd'-Zeile mit der problematischen, persistenten Datei notiert:
%Vor%Also,
%Vor%löscht dieses Argument.
Nachdem Sie diese Datei aus der Pufferliste (: bd) gelöscht und Vim neu gestartet haben, wird schließlich die vorherige Sitzung ohne diese Datei wiederhergestellt.
Edit: Wenn Sie beim Ausführen des Befehls ": argd" keine langen Pfade eingeben möchten und nichts mit ": arg" aufgelistet ist, tun Sie einfach
%Vor%