Ich verwende MacVim und wenn ich es nicht vom Terminal ( mvim
) aus starte, enthält $ PATH nicht das, was ich in meinem .bash_profile festgelegt habe. Es scheint nur die Standardwerte zu haben /usr/bin:/bin:/usr/sbin:/sbin
.
Ich verwende OS X 10.5.8. Selbst wenn ich es manuell in meiner .vimrc einstellen könnte, wäre das in Ordnung, obwohl ich es vorziehen würde, es vom selben Ort wie Terminal zu ziehen. Ich habe versucht, den Vorschlägen einer Website zu folgen let $PATH += /blah/foo:/bar/etc
, ohne Erfolg.
Bearbeiten / Lösung: Siehe meine Antwort unten. MacVim hat eine Option, um dies zu beheben.
Antworten:
MacVim scheint den $ PATH so zu erhalten, dass die benutzerdefinierten Punktedateien eines normalen Benutzers ignoriert werden.
Ich kann nicht sagen, warum sie es lieber so machen, aber es scheint wahr zu sein. In den Einstellungen (auf der Registerkarte "Erweitert") können Sie "Vim-Prozesse in einer Login-Shell starten" auswählen, dies verbessert sich jedoch nur
$PATH
geringfügig für mich.Das Beste, was ich sagen kann, verwendet MacVim
/usr/libexec/path_helper
- das wiederum die Elemente verwendet, die (1) in der/etc/paths
Datei und (2) alle zusätzlichen Elemente im/etc/paths.d/
Verzeichnis gefunden haben. Alle Änderungen, die im Home-Verzeichnis eines Benutzers (über.profile
oder dergleichen) vorgenommen werden, werden ignoriert.Kurz gesagt, Sie erhalten die OSX-Standardeinstellungen sowie alle Anwendungen, die sich selbst hinzufügen
/etc/paths.d
. (MacTex tut dies beispielsweise auf meinem System.) Wenn Sie also Ihren MacVim-Pfad anpassen möchten, besteht eine Möglichkeit darin, eine Datei mit Elementen hinzuzufügen/etc/paths.d
. (Ich würde/etc/paths
seitdem nicht mehr direkt bearbeiten. Sie laufen Gefahr, dass die Änderungen durch Systemupdates rückgängig gemacht werden.)Vielen Dank, dass Sie mich darüber informiert haben. Ich mache einen Wunschliste-Fehler bei MacVim.
quelle
/etc/paths.d
wird es beim nächsten Start von MacVim angezeigt. Welches Format geben Sie dort ein? Ich glaube, es sollte ein Element pro Zeile sein, mit einem $ PATH-Verzeichnis in jeder Zeile (z. B. / usr / texbin).Übrigens ist die Einstellung "Vim-Prozesse in einer Login-Shell starten" in MacVim nicht mehr verfügbar (zumindest nicht in Version 7.3). Ich sehe, dass das Starten von MacVim über den Finder den falschen Pfad erhält, das Starten über eine Shell (als "mvim") jedoch den richtigen Pfad.
quelle
Es stammt nicht aus .bash_profile, aber Sie können dies in Ihrem .vimrc verwenden:
Sie müssen das: haben, sonst ist es keine korrekte PATH-Variable.
quelle
/usr/bin/vim
(von Apple) als auch/opt/local/bin/vim
(von MacPorts), und es scheint unnötig. Vim im Terminal nimmt bereits den richtigen $ PATH auf, der von meinen Punktedateien stammt.Ich kann nicht glauben, dass ich das vorher nicht gesehen habe. Okay, ich kann es glauben. Auf jeden Fall bietet MacVim eine Option, die dieses Problem löst. Aktivieren Sie unter "Einstellungen" die Option "Vim-Prozesse in einer Anmeldeshell starten". Das ist es, es funktioniert. Snazzy. Ich Idiot.
Hoppla
Ich habe diese Antwort versehentlich geschrieben, ohne zu bemerken, dass Telemachos mir bereits die richtige Antwort gegeben hat . Markierte seine als Antwort.
quelle
Dieser Artikel im Mac Dev Center kann von Nutzen sein.
quelle
Ich hatte kein Problem damit, eine Datei zum Verzeichnis paths.d hinzuzufügen. Ich habe eine Datei namens mysql hinzugefügt, deren Inhalt war:
/ usr / local / mysql / bin [Zurück]
Dann habe ich diese Datei im Verzeichnis paths.d abgelegt und ihren Besitz in root: rad geändert. Jetzt wird das MySQL-Verzeichnis automatisch zu meiner Variablen $ PATH hinzugefügt.
Ich habe nicht vollständig nachgeforscht, aber möglicherweise ist (a) das Einfügen von [RETURN] am Ende der Zeile und / oder (b) das Festlegen des Dateieigentums auf root erforderlich.
quelle
MacVim liefert
~/.zprofile
und/etc/profile
, damit Sie IhrePATH
Einstellungen dort vornehmen können.Siehe https://github.com/b4winckler/macvim/wiki/Troubleshooter#for-zsh-users und diese Frage zum Stapelüberlauf .
(Getestet mit MacVim Version 7.3 (65)).
quelle
Ich bin heute darauf gestoßen. MacVim verfügt nicht mehr über die Option "Login-Shell", und das Bearbeiten systemweiter Dateien für eine benutzerspezifische Einstellung ist lückenhaft.
Hier ist eine Lösung, die nur vim-Optionen verwendet (siehe
:help :!
und:help shell
).Fügen
~/.vimrc
Sie die Zeilen hinzuDadurch wird
bash
Ihre Standard-Shell von (Mac) Vim erstellt und das-l
Flag (Login-Shell) zu Befehlen hinzugefügt, mit denen aufgerufen wird:!{cmd}
. Bei der Ausführung:shell
wird bash als "interaktive Shell, die keine Login-Shell ist" gestartet.Damit die
$PATH
Arbeit funktioniert, muss sie~/.bash_profile
für:!
und~/.bashrc
für eingerichtet sein:shell
. (SieheINVOCATION
inman bash
)UPDATE: Dies war auf meinem anderen Computer nicht erforderlich, daher gibt es wahrscheinlich noch etwas anderes, das die Hauptursache ist.
quelle
$PATH
in.zprofile
und fügen Sie das-l
Flag in entwederset shell
oder einset shellcmdflag
.Ich weiß mehr über Unix als über Macs, daher kann der folgende Rat funktionieren oder auch nicht. Versuchen Sie, dies in Ihre .vimrc-Datei einzufügen:
Das mag den Trick machen, aber es gibt eine kleine Einschränkung: Das .bash_profile soll nur einmal bezogen werden. Es kann einige nicht idempotente Befehle enthalten (Dinge, die nur einmal ausgeführt werden sollten). Ein typisches Beispiel:
Je mehr aufgerufen wird, desto größer und redundanter
$PATH
wird es. Wenn dies jedoch keine so große Sache ist, wird unter Unix empfohlen, den einmaligen Befehl in Ihre Datei einzufügen~/.bashrc
und von dort aus auszuführen .source ~/.bashrc
.vimrc
quelle
:source .bash_profile
aber es wird nur der Fehler "Kein Editorbefehl" für jeden Befehl in der Datei angezeigt, ebenso wie für .bashrc.Ich habe auf der Vim StackExchange-Website eine sehr ähnliche Frage gestellt und dort eine Antwort gepostet, die für mich funktioniert!
quelle