2012-05-25 4 views
39

Vim speichert die Liste der Befehle, die wir angewendet haben: für die aktuelle Ausführung. Aber wenn ich vim schließe und es erneut starte, ist der vim-Befehlsverlauf verloren. Ich versuchte set history = 1000 in der .vimrc-Datei, aber das hat nicht geholfen.
Wo behält Vim die lokale Befehlsgeschichte?
Wie lautet der Befehl, um den Befehlsverlauf beizubehalten?
Vim Datensatzhistorie

+1

Funktioniert gut auf meinem System, welche Version von vim laufen Sie? – Stefan

+0

funktioniert es gut auf meinem Desktio-System .. Version 7.3 aber es funktioniert nicht auf meinem Lappy. sogar diese Version ist 7.3 Ich denke –

+0

Ich habe gerade meine '.vimrc' überprüft, es gibt keine Einstellung bezüglich des Befehlsverlaufs ... das Speichern des Verlaufs scheint der Standard zu sein. – Stefan

Antwort

19

Um zu überprüfen, ob Vim die Datei 'viminfo' unterstützt (die den Verlauf speichert), :echo has('viminfo'). Die entsprechende Einstellung darf nicht leer sein: :set viminfo? und :set history? sollten größer als eins sein.

Wenn es ein Problem ist das Schreiben der viminfo Datei (obwohl Vim in diesem Fall beschweren soll), könnten Sie versuchen, einen anderen Ort vorbei über vim -i /tmp/viminfo

+4

Es war seltsam, dass ich nicht die Erlaubnis hatte, an ~ ~/.vimininfo zu schreiben und vim hat mich nicht benachrichtigt. – Amir

+6

wtf, mein ~/.viminfo war root: root für absolut keinen Grund und vim beschwere sich auch nicht! – vak

1

Sie müssen die Option viminfo einstellen. Legen Sie es in Ihrem $ MYVIMRC

aktualisieren Um herauszufinden, wo die Option zuletzt eingestellte/geändert:

:verbose set viminfo? 

Siehe http://vimdoc.sourceforge.net/htmldoc/starting.html#viminfo-file

Wenn Sie Vim beenden und es später wieder starten, Sie würden normalerweise eine Menge von Informationen verlieren. Die viminfo-Datei kann verwendet werden, um sich an diese Informationen zu erinnern, die es Ihnen ermöglicht, dort fortzufahren, wo Sie aufgehört haben.

Dies wird in Abschnitt | 21.3 | eingeführt der Bedienungsanleitung.

Die viminfo Datei zu speichern, verwendet wird:

  • Die Geschichte Kommandozeile.
  • Der Suchstring Geschichte.
  • Der Verlauf der Eingabezeile.
  • Inhalt von nicht leeren Registern.
  • Marken für mehrere Dateien.
  • Dateimarkierungen, die auf Speicherorte in Dateien zeigen.
  • Letztes Such-/Ersatzmuster (für 'n' und '&').
  • Die Pufferliste.
  • Globale Variablen.

Die viminfo-Datei wird nicht unterstützt, wenn | + viminfo | Feature wurde zur Kompilierzeit deaktiviert.

Sie können auch Session Dateien verwenden.

69

nur ein Thema, das mir den anderen Tag gefangen, die möglicherweise Seien Sie nicht Ihr Problem:

Auf einigen Linux-Systemen (zB Ubuntu), wenn Sie VIM zum ersten Mal ausführen, führen Sie es als Super-Benutzer, dann wird die $ HOME/.viminfo-Datei mit Root-Besitzer und erstellt Ihr lokaler Benutzer hat keine Berechtigung, darauf zu schreiben.Dies erklärt, warum mein VIM den Befehlsverlauf nicht gespeichert hat, wenn alles korrekt konfiguriert wurde.

Fazit: Suchen Sie auf einem * nix-System Ihre .viminfo-Datei und stellen Sie sicher, dass Sie Lese-/Schreibberechtigungen dafür haben.

+2

Super! Dank einer Mühle für diesen Tipp Balint! –

9

Sie sollten die Berechtigungen der Datei .viminfo überprüfen. Möglicherweise müssen Sie den Besitzer der Datei mithilfe chown oder sudo chown zu Ihrem aktuellen Benutzer ändern.

+0

Das war mein Problem. Es war standardmäßig root. – felwithe

4

Herr Baint hat die Antwort gegeben.

  • Gehen Sie zu $HOME Verzeichnis.
  • Geben Sie ls -l .viminfo, um Berechtigungen zu überprüfen.
  • Berechtigung ändern, damit Gruppe und Besitzer auch schreiben können Erlaubnis. Verwendung:

    sudo chown yourUserId $HOME/.viminfo 
    

Es sollte das Problem beheben.