Ich habe ein seltsames Problem mit vim
Snow Leopard: Ich bekomme einen Exit-Code ungleich Null, wenn ich einfach renne vim
und dann beende.
$ vim
# exit immediately using :q
$ echo $?
1
Wenn ich jedoch den vollständigen Pfad zu verwende vim
, wird dieses Verhalten nicht angezeigt
$ /usr/bin/vim
# exit immediately using :q
$ echo $?
0
Zuerst dachte ich, ich käme vim
von irgendwo früher auf meinem Weg, aber:
$ which vim
/usr/bin/vim
Also bin ich ratlos. Was könnte das verursachen?
UPDATE: Dieses Problem hat sich auf magische Weise von selbst gelöst, was mich sehr misstrauisch macht. Meine derzeit beste Theorie ist, dass ich ein Problem mit meinem .vimrc
oder einem Plugin hatte, das ich versehentlich behoben habe, als ich mein Setup auf eine andere Weise geändert habe. Wenn ich genau feststellen kann, was ich getan habe, um es zu beheben, werde ich auf jeden Fall mit diesen Informationen aktualisieren. Danke für die Antworten.
-u NONE
, wodurch vim angewiesen wird, überhaupt keine Konfigurationsdatei zu laden. Könnte in einigen Situationen helfen.Antworten:
Hast du
filetype off
in deinem vimrc? Versuchen Sie, es durch Folgendes zu ersetzen:Ich hatte dieses Problem mit Tim Popes Pathogen unter OS X. Dieser Artikel hat mir geholfen, das Problem zu lösen. Wenn Sie Pathogen verwenden ...
... mach das stattdessen:
http://andrewho.co.uk/weblog/vim-pathogen-with-mutt-and-git
quelle
.vimrc
.filetype on
über das Bestehende geworfenfiletype off
.Ich kann mir zwei mögliche Erklärungen vorstellen.
vim
ist eigentlich ein Alias. Beachten Sie, dasswhich
keine Aliase angezeigt werden. Verwenden Sietype
stattdessen (es sei denn, Sie führen csh oder tcsh aus).Vim sucht nach einer Datei in einem Pfad relativ zu seinem Installationsverzeichnis, das es anhand seiner Suche ermittelt
argv[0]
(der Name der ausführbaren Datei, wie er von der Shell übergeben wird), und findet diesen Pfad irgendwie nicht, wenn er über einen relativen Pfad aufgerufen wird. Das wäre technisch möglich, aber ich glaube nicht, dass Vim das tatsächlich tut.quelle
Bei einem ähnlichen System ist das hier nicht der Fall: Snow Leopard und die Standardversion von Vim.
Versuchen Sie diesen Befehl:
Dadurch erhalten Sie eine Liste aller Systemaufrufe, die Vim während der Initialisierung und beim sofortigen Herunterfahren durchführt. (
dtruss
Entsprichtstrace
Linux, wenn Sie das schon einmal verwendet haben.)Was Sie suchen, ist eine Zeile in der Nähe des Endes, die einen Fehlercode anzeigt, normalerweise -1. Ein Blick auf die Argumente zum Systemaufruf sollte Sie zum Problem führen. Eine Möglichkeit mit hoher Wahrscheinlichkeit ist eine fehlende Datei, die wahrscheinlich bei einem
open()
Anruf angezeigt wird.Wenn Vim sauber beendet , wenn auf diese Weise läuft, haben Sie wahrscheinlich ein Problem mit den Berechtigungen, die die
sudo
benötigten , damitdtruss
herumzulaufen erhält. In diesem Fall können Sie das Problem wahrscheinlich beheben, indem Sie die Berechtigungen reparieren .quelle
dtruss
Ausgabe an Ihre Frage an. (Oder zumindest die letzten 25 Zeilen oder so.) Was für Sie unverständlich ist, kann einen anderen zur richtigen Antwort führen.sudo
"behoben" wurde, und das Sie darüber informierte, dass Sie Reparaturberechtigungen ausführen mussten? Oder war es eher so, dassdtruss
Ihnen ein Syscall-Fehler angezeigt wurde, und wenn ja, welcher und warum ist er fehlgeschlagen?.vim
Verzeichnis und genommen.vimrc
, und die Dinge hatten vollständige Pfade und fehlende Dateien von nicht verwendeten Plugins.Ich hatte dieses Problem mit den Rückkehrcodes. Ich habe es auf einen
loadview
unbeaufsichtigt ausgeführten Befehl in meinem vimrc zurückgeführt, der beständige Ansichten bietet:Wenn Sie einen Puffer ohne Dateinamen eingeben, wird der
silent! loadview
ausgeführt und der Fehler ausgeblendetwas auch dazu geführt hatte, dass der Rückkehrcode auf eins gesetzt wurde.
quelle