Ich habe Beispiele online gesehen, in denen Leute dem Standardpfad in Emacs Pfade hinzufügen mit:
(add-to-list 'exec-path "/usr/local/bin/")
Ich bin neu bei Elisp und ich denke, ich verstehe, was die obige Aussage bewirkt, aber ich habe ein paar Fragen:
In welcher Reihenfolge durchsucht Emacs die Ausführungspfade? Berücksichtigt es beispielsweise den Wert von
$PATH
(Umgebungsvariable) überhaupt (und wenn ja, davor oder danachexec-path
?)Wie kann ich mehrere solcher Pfade voranstellen ? Kann ich sie einfach weiter verketten? z.B
(add-to-list 'exec-path "PATH1", "PATH2")
oder soll ich tun:
(add-to-list 'exec-path "PATH1:PATH2:PATH3")
Ich fand dieses interessante Paket auch auf GitHub: exec-path-from-shell . Warum braucht man dafür ein Paket?
Motivation
Finden Sie jemals heraus, dass ein Befehl in Ihrer Shell funktioniert, aber nicht in Emacs?
Dies passiert häufig unter OS X, wo eine über die GUI gestartete Emacs-Instanz einen Standardsatz von Umgebungsvariablen erbt.
Diese Bibliothek löst dieses Problem, indem sie wichtige Umgebungsvariablen aus der Shell des Benutzers kopiert: Sie fordert Ihre Shell auf, die gewünschten Variablen auszudrucken und sie dann in die Emacs-Umgebung zu kopieren.
C-h v exec-path
, verwenden Sie die manuelle (n) (Emacs und Elisp). i exec-path
Leitet Sie in einem Handbuch zu einer hilfreichen Erklärung. Fragen Sie zuerst Emacs - Sie werden es nicht bereuen.
(describe-function 'add-to-list)
(C-h f
) gibt Ihnen das Dokument für dieadd-to-list
Funktion sowie Links zur Quelle. Es gibt auch(describe-variable 'exec-path)
(C-h v
). Dies ist kein RTFM-Kommentar. Diese Dokumente beantworten nicht alle Fragen, die Sie aufgeführt haben, sondern sind nur nützlich.