Widziałem przykłady online, w których ludzie dodają ścieżki do domyślnej ścieżki w Emacsie za pomocą:
(add-to-list 'exec-path "/usr/local/bin/")
Jestem nowy w Elisp i myślę, że rozumiem, co robi powyższe stwierdzenie, ale mam kilka pytań:
W jakiej kolejności Emacs przeszukuje ścieżki wykonania? Na przykład, czy w ogóle bierze pod uwagę wartość
$PATH
(zmiennej środowiskowej) (a jeśli tak, przed czy poexec-path
?)Jak mogę wstawić wiele takich ścieżek? Czy mogę je po prostu łączyć? na przykład
(add-to-list 'exec-path "PATH1", "PATH2")
czy powinienem zrobić:
(add-to-list 'exec-path "PATH1:PATH2:PATH3")
Znalazłem też ten interesujący pakiet na GitHub: exec-path-from-shell . Dlaczego potrzebny jest pakiet do tego?
Motywacja
Czy kiedykolwiek odkryłeś, że polecenie działa w twojej powłoce, ale nie w Emacsie?
Zdarza się to często w OS X, gdzie instancja Emacsa uruchomiona z GUI dziedziczy domyślny zestaw zmiennych środowiskowych.
Ta biblioteka działa rozwiązuje ten problem, kopiując ważne zmienne środowiskowe z powłoki użytkownika: działa, prosząc powłokę o wydrukowanie interesujących zmiennych, a następnie kopiując je do środowiska Emacsa.
C-h v exec-path
skorzystaj z instrukcji obsługi (Emacs i Elisp). W podręczniku i exec-path
zawiera pomocne wyjaśnienie. Najpierw zapytaj Emacsa - nie będziesz żałował, że tak zrobiłeś.
(describe-function 'add-to-list)
(C-h f
) poda ci dokumentadd-to-list
funkcji, a także linki do źródła. Jest też(describe-variable 'exec-path)
(C-h v
). To nie ma być komentarz RTFM - te dokumenty nie odpowiadają na wszystkie pytania, które wymieniłeś, tylko coś przydatnego.