vim verwendet unter bestimmten Umständen eine frühere Version von vimrc

262
Paolo

Es passiert eine lustige Sache bei mir vim: Ich habe einige Änderungen an einem Benutzer vorgenommen ~/.vimrc, um die Statuszeile mit einer einfachen Funktion anzupassen (die Änderungen wurden bei mehreren Speicherungen vorgenommen, während ich den Code verfeinerte), und jetzt wird der Code ohne Probleme geladen, wenn ich Sie können vim FILEvon der Befehlszeile aus starten, laden aber aus irgendeinem Grund eine vorherige Version .vimrc(dh eine zuvor gespeicherte Version), wenn Sie die GUI (App-Menü) ausführen sudo visudooder ausführen vim.

Sehr eigenartig.

Das kann ich erkennen, weil es aufgrund einer fehlenden innerhalb dieser Funktion einen Syntaxfehler gibt, letdie ich in der letzten Version behoben und lädt fein für den Benutzer von Shell, aber nicht für den Benutzer, wenn von der GUI ausgeführt werden oder bei der Verwendung, sudowo eine Version des Code mit dem Syntaxfehler wird stattdessen beim Start geladen.

Ich habe versucht, den Benutzer .vimrczu kopieren, /rootund ich bin gelaufen, grep -rI "functionName" ~aber keiner hat geholfen.

Das Komische ist, dass vimwenn ich mit einer defekten Statuszeile drin bin, wenn ich sie benutze :e $MYVIMRC, die richtige geladen wird, so dass ich sie auch verwenden kann :source $MYVIMRCund alles gut aussieht (dh die Statuszeile funktioniert und der Syntaxfehler ist weg). .

Irgendwelche Vermutungen, warum beim vimStart in diesen beiden Situationen (und vielleicht mehr) eine Vorgängerversion verwendet wird?

1
Die Antwort von Ingo veranlasste mich, den Funktionscode dreimal zu überprüfen, und es handelte sich um einen weiteren Fehler in einer Kette von ifs, die abhängig von der geöffneten Datei abwechselnd ausgeführt wurden. Es hat jedoch sehr geholfen, den vim-Log zu durchlaufen. Paolo vor 5 Jahren 0
Kommentar entfernt Paolo vor 5 Jahren 0

1 Antwort auf die Frage

1
Ingo Karkat

Wenn ich "veraltete Konfiguration" höre, vermute ich folgendes:

  • Symlink gebrochen / vergessen, Benutzer config in root zu kopieren (dies ist spezifisch für Ihren Anwendungsfall, wenn Sie unter root laufen)
  • gespeicherte Sitzung ( :mksession) enthält alte Konfiguration und wird automatisch wiederhergestellt (scheint hier nicht der Fall zu sein)
  • Umgebungsproblem (Vim hat mehrere Standorte und überschreibt die Konfiguration, wie in beschrieben :help startup)

Ich würde zuerst :scriptnamesdie kaputte Root-Sitzung überprüfen . Dies sollte sagen, welche ~/.vimrcabgeholt wird und ob auch andere (alternative) Konfigurationen fehlerhaft geladen werden. Wenn dies keine Anhaltspunkte bietet, können Sie ein vollständiges Protokoll einer Vim-Sitzung mit erfassen vim -V20vimlog( sudoin Ihrem Fall möglicherweise vorangestellt, so dass das Problem auftritt). Überprüfen Sie nach dem Beenden von Vim die vimlogProtokolldatei und fügen ~/.vimrcSie möglicherweise Kommentare hinzu, damit Sie die verschiedenen Dateiversionen unterscheiden können.