Löschen des Puffers aus der vim-Sitzung

8

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 .

  1. Sauberer Start von gvim
  2. Ich öffne einige Tabs mit :tabe , mache etwas Arbeit
  3. :mksession! ~/session , um meinen Sitzungsstatus zu speichern
  4. Benötigt keinen Puffer # 14, :14bd
  5. :ls bestätigt, dass # 14 gelöscht wurde
  6. :mksession! ~/session , um die Sitzung erneut zu speichern
  7. Fertig für den Tag, :qa
  8. Laden Sie gvim am nächsten Tag hoch, :so ~/session
  9. Puffer 14 existiert noch !!
  10. ???
  11. KEIN PROFIT
jjt 08.03.2011, 20:59
quelle

3 Antworten

7

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 :

%Vor%     
ZyX 09.03.2011, 15:45
quelle
4

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.

    
PDug 09.03.2011 07:06
quelle
0

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%     
Victoria Stuart 16.01.2017 18:48
quelle

Tags und Links