Używam MacVim i kiedy nie uruchamiam go z terminala ( mvim
) jego $ PATH nie zawiera tego, co ustawiłem w moim pliku .bash_profile. Wydaje się, że ma tylko wartości domyślne, /usr/bin:/bin:/usr/sbin:/sbin
.
Używam OS X 10.5.8. Nawet jeśli mógłbym ustawić go ręcznie w moim .vimrc, byłoby dobrze, chociaż wolałbym, żeby ściągał z tego samego miejsca co Terminal. Próbowałem śledzić to, co sugerowała jedna strona, dodając let $PATH += /blah/foo:/bar/etc
bezskutecznie.
Edycja / rozwiązanie: Zobacz moją odpowiedź poniżej. MacVim ma opcję naprawienia tego.
Odpowiedzi:
MacVim wydaje się, że pobiera $ PATH w sposób, który ignoruje zwykłe pliki dotfile użytkownika.
Nie mogę powiedzieć czemu wolą robić to w ten sposób, ale wydaje się, że to prawda. W preferencjach (na karcie Zaawansowane) możesz wybrać opcję „Uruchom procesy Vima w powłoce logowania”, ale poprawia to tylko
$PATH
trochę dla mnie.Najlepsze, co mogę powiedzieć, używa MacVim
/usr/libexec/path_helper
- który z kolei używa znalezionych przedmiotów (1) w/etc/paths
file i (2) cokolwiek dodatkowego znalezionego w/etc/paths.d/
informator. Wszelkie zmiany wprowadzone w katalogu domowym użytkownika (przez.profile
lub tym podobne) jest ignorowane.W skrócie otrzymujesz domyślne ustawienia OSX oraz wszystkie aplikacje, które się do nich dodają
/etc/paths.d
. (Na przykład MacTex robi to w moim systemie.) Jeśli więc chcesz dostosować ścieżkę MacVima, jednym ze sposobów byłoby dodanie pliku z elementami do/etc/paths.d
. (Nie edytowałbym bezpośrednio/etc/paths
od tego czasu ryzykujesz, że zmiany zostaną cofnięte przez aktualizacje systemu.)Dzięki za poinformowanie mnie o tym. Wyszedłem z pliku błędów w MacVim.
źródło
/etc/paths.d
, pojawia się przy następnym uruchomieniu MacVima. Jaki format tam umieszczasz? Myślę, że powinien to być jeden element w wierszu z katalogiem $ PATH w każdej linii (np. / Usr / texbin).BTW, preferencja „Uruchom procesy Vima w powłoce logowania” nie jest już dostępna w MacVim (przynajmniej nie w wersji 7.3). Widzę, że uruchomienie MacVima z Findera prowadzi do niewłaściwej ścieżki, ale uruchomienie go z powłoki (jako „mvim”) ma poprawną ścieżkę.
źródło
Nie pochodzi z .bash_profile, ale możesz użyć tego w swoim .vimrc:
Musisz mieć: lub nie będzie poprawną zmienną PATH.
źródło
/usr/bin/vim
(od Apple) i/opt/local/bin/vim
(z MacPorts) i wydaje się to niepotrzebne. Vim w terminalu już odbiera odpowiedni plik $ PATH pochodzący od moich plików kropek.Nie mogę uwierzyć, że wcześniej tego nie widziałem. Dobra, mogę w to uwierzyć. W każdym razie MacVim jest wyposażony w opcję, która rozwiązuje ten problem. W sekcji Preferencje zaznacz „Uruchom procesy Vima w powłoce logowania”. To wszystko, to działa. Odlotowy. Głupi ja.
Ups
Przypadkowo napisałem tę odpowiedź, nie wiedząc, że Telemachus już mi dał poprawna odpowiedź . Oznaczył jako odpowiedź.
źródło
Ten artykuł w Mac Dev Center może być użyteczny.
źródło
Nie miałem problemu z dodaniem pliku do katalogu paths.d. Dodałem plik o nazwie mysql, którego zawartość była:
/ usr / local / mysql / bin [Return]
Następnie umieściłem ten plik w katalogu paths.d i zmieniłem jego własność na root: wheel. Teraz katalog mysql jest automatycznie dodawany do zmiennej $ PATH.
Nie przeprowadziłem pełnego dochodzenia, ale być może (a) włącznie z [POWRÓT] na końcu linii i / lub (b) ustawienie własności pliku na roota może być konieczne.
źródło
Wiem więcej o unixie niż o macach, więc poniższe porady mogą, ale nie muszą działać. Spróbuj umieścić to w swoim pliku .vimrc:
To może załatwić sprawę, ale istnieje niewielkie zastrzeżenie: plik .bash_profile ma być pozyskiwany tylko raz. Może zawierać niektóre polecenia nie idempotentne (rzeczy, które powinny być wykonywane tylko raz). Przykładem:
Im więcej się nazywa, tym większe i bardziej zbędne
$PATH
dostaje. Jeśli jednak nie jest to nic wielkiego, zalecenie dotyczące unixa polega na wprowadzeniu jednorazowego polecenia~/.bashrc
i biegnijsource ~/.bashrc
z twojego.vimrc
plik.źródło
:source .bash_profile
ale po prostu pojawia się błąd „Nie jest to polecenie edytora” dla każdego polecenia w pliku i to samo z .bashrc.MacVim będzie źródłem
~/.zprofile
i/etc/profile
, więc możesz umieścić swojePATH
ustawienia tam.Widzieć https://github.com/b4winckler/macvim/wiki/Troublesh#for-zsh-users i to pytanie na temat przepełnienia stosu .
(Testowane z MacVim w wersji 7.3 (65)).
źródło
Zadałem bardzo podobne pytanie Na stronie Vim StackExchange i zamieściłem tam odpowiedź, która działa dla mnie!
źródło
Wpadłem na to dzisiaj. MacVim nie ma już opcji „powłoka logowania”, a edycja plików systemowych dla ustawień specyficznych dla użytkownika jest pobieżna.
Oto rozwiązanie wykorzystujące tylko opcje vim (patrz
:help :!
i:help shell
).W Twoim
~/.vimrc
dodaj linieTo sprawia
bash
twoja domyślna powłoka z (Mac) Vima i dodaje-l
flag (powłoka logowania) do poleceń wywoływanych za pomocą:!{cmd}
. Podczas wykonywania:shell
, bash jest uruchamiany jako „powłoka interaktywna, która nie jest powłoką logowania”.Zrobić
$PATH
pracuj, musisz to mieć~/.bash_profile
dla:!
, i~/.bashrc
dla:shell
. (WidziećINVOCATION
wman bash
)AKTUALIZACJA: To nie było konieczne na moim innym komputerze, więc prawdopodobnie jest coś innego, co jest główną przyczyną.
źródło
$PATH
w.zprofile
i włącz-l
flagę alboset shell
lubset shellcmdflag
.