Vim'deki $ PATH, Terminal ile eşleşmiyor


10

MacVim kullanıyorum ve Terminal ( mvim) ' dan başlatmadığımda onun $ PATH benim .bash_profile içinde ne ayarladığımı içermez. Sadece varsayılan değerlere sahip gibi görünüyor /usr/bin:/bin:/usr/sbin:/sbin,.

OS X 10.5.8 kullanıyorum. Ben .vimrc benim manuel olarak ayarlasa bile, bu iyi olurdu, ama ben Terminal ile aynı yerden çekmek tercih ederdim. Ben let $PATH += /blah/foo:/bar/etcboşuna ekleyerek, bir site önerilen ne takip etmeye çalıştım .

Düzenle / Çözüm: Aşağıdaki cevabımı görün. MacVim'de bunu düzeltme seçeneği vardır.


Yanıtlar:


12

MacVim , $ PATH değerini normal bir kullanıcının özel dotfiles'lerini yok sayacak şekilde alıyor gibi görünüyor.

Neden bu şekilde yapmayı tercih ettiklerini söyleyemem ama doğru gibi görünüyor. Tercihlerde (Gelişmiş sekmesi altında), "Vim işlemlerini bir giriş kabuğunda başlat" seçeneğini seçebilirsiniz, ancak bu yalnızca $PATHbenim için biraz iyileşir .

Söyleyebileceğim en iyi şey, MacVim kullanır /usr/libexec/path_helper- bu da /etc/pathsdosyada bulunan (1) öğeleri ve (2) /etc/paths.d/dizinde ek bulunan her şeyi kullanır . Kullanıcının ana dizininde ( .profileveya benzeri) yapılan değişiklikler göz ardı edilir.

Özetle, OSX varsayılanlarını ve kendilerini ekleyen uygulamaları alırsınız /etc/paths.d. (Örneğin, MacTex sistemimde bunu yapar.) Bu nedenle MacVim yolunuzu ayarlamak istiyorsanız, öğelerin bulunduğu bir dosya eklemektir /etc/paths.d. ( /etc/pathsDeğişikliklerin sistem güncellemeleri tarafından geri alınma riskini aldığınızdan beri doğrudan düzenlemem .)

Bunu bana bildirdiğiniz için teşekkürler. MacVim'de bir istek listesi hatası dosyalamak istiyorum.


Bunu da düşünürdüm, ama Terminal'de görünen ama MacVim ile değil birkaç şey ekledim '/etc/paths.d/'.
donut

Aslında, '/ etc / paths' dosyamda MacVim'in yolundakinden daha fazlası var.
donut

@Donut: Bu çok garip. /etc/paths.dMakinemde, bir şey eklersem, MacVim'i bir sonraki önyüklememde görünür. Oraya hangi biçimi koyuyorsunuz? Her satırda bir $ PATH dizini ile (örneğin, / usr / texbin) satır başına bir öğe olmalıdır.
Telemachus

Başlangıçta ilk paragrafınızı tamamen kaçırdım: "Bir giriş kabuğunda Vim işlemlerini başlat" seçeneğini seçmek benim için hile yaptı. Cevabımı gör.
donut

7

BTW, "Bir oturum açma kabuğunda Vim işlemlerini başlat" tercihi artık MacVim'de mevcut değil (en azından v7.3). MacVim'i Finder'dan başlatmanın yanlış yolu aldığını, ancak bir kabuktan başlatmanın ("mvim" olarak) doğru yolu aldığını görüyorum.


3

.Bash_profile kaynağından alınmamıştır, ancak bunu .vimrc dosyasında kullanabilirsiniz:

let $PATH=$PATH . ':/blah/foo'

Şuna sahip olmalısınız: yoksa doğru bir PATH değişkeni olmayacaktır.


Sadece denedim ve bu MacVim için $ PATH'ı değiştirmiyor gibi görünüyor. Ayrıca Terminalinde Vim (her ikisi ile de denedim /usr/bin/vim(Apple) ve /opt/local/bin/vim(MacPorts) ve gereksiz görünüyor terminali içinde Vim zaten benim nokta dosyaları tarafından kaynaklı olarak uygun $ PATH alır..
Telemachus'u

1
Bunu da boşuna denedim.
donut

2

Bunu daha önce görmediğime inanamıyorum. Tamam, inanabilirim. Her neyse, MacVim bunu çözen bir seçenekle geliyor. Tercihler altında "Vim işlemlerini bir giriş kabuğunda başlat" seçeneğini işaretlemeniz yeterlidir. İşte bu, işe yarıyor. Şık. Aptal ben.

Hata

Bu cevabı yanlışlıkla Telemachus'un bana zaten doğru cevabı verdiğini fark etmeden yazdım . Cevap olarak işaretlendi.


Sevindim sıralanmış
Telemachus

1

Bu Mac Dev Center makalesi bazı yararlı olabilir.


Çalışamıyor. Yanlış bir şey yapıyor olabilir. Makale, ~ / Library / Preferences / org.vim.MacVim.plist olduğunu düşündüğüm bir uygulamanın 'bilgi özellik listesi dosyasına' 'LSEnvironment' özelliğini eklemenizi önerir. Ben bir anahtar olarak 'PATH' (ayrıca 'path' ve '$ PATH' çalıştı) ile bir sözlük ve bir dize değeri olarak yol için ne istediğini yaptı. Hala PATH'ı gizemli bir kaynaktan çekiyor gibi görünüyor. Plist dosyasının ekran görüntüsü
donut

1

Paths.d dizinine dosya eklemekte sorun yaşamadım. İçeriği mysql adlı bir dosya ekledim:

/ Usr / local / mysql / bin [Return]

Sonra bu dosyayı paths.d dizininin altına yerleştirdim ve sahipliğini root: wheel olarak değiştirdim. Şimdi mysql dizini otomatik olarak $ PATH değişkenime eklenir.

Tam olarak araştırmadım, ancak muhtemelen (a) satırın sonundaki [RETURN] dahil olmak üzere ve / veya (b) dosya sahipliğini root olarak ayarlamak gerekli olabilir.



1

Bugün bununla karşılaştım. MacVim artık "oturum açma kabuğu" seçeneğine sahip değildir ve kullanıcıya özgü bir ayar için sistem genelinde dosyaları düzenlemek kabataslaktır.

İşte sadece vim seçeneklerini kullanan bir çözüm (bkz. :help :!Ve :help shell).

Gözlerinde farklı ~/.vimrcsatırları ekleyin

set shell=/bin/bash
set shellcmdflag=-l\ -c

Bu, bash(Mac) Vim'deki varsayılan kabuğunuzu yapar ve -lçağrılan komutlara bayrak (oturum açma kabuğu) ekler :!{cmd}. Yürütülürken :shell, bash "bir giriş kabuğu olmayan etkileşimli kabuk" olarak başlatılır.

Yapmak için $PATHçalışmalarını, bunu ayarlanmış olması gerekir ~/.bash_profileiçin :!ve ~/.bashrciçin :shell. (Bkz INVOCATION. man bash)

GÜNCELLEME: Bu benim diğer bilgisayarımda gerekli değildi, bu yüzden muhtemelen temel nedeni olan başka bir şey var.


1
Benzer bir şeyi zsh için de yapabilirsiniz. Define $PATHiçinde .zprofileve şunları -lbirinde bayrak set shellveya set shellcmdflag.
jladan

0

Unix hakkında mac'lardan daha çok şey biliyorum, bu nedenle aşağıdaki tavsiyeler işe yarayabilir veya çalışmayabilir. Bunu .vimrc dosyanızı koymayı deneyin:

! source ~/.bash_profile

Bu hile yapabilir, ancak hafif bir uyarı var: .bash_profile sadece bir kez kaynaklanmak içindir. Bazı idempotent olmayan komutlar içerebilir (yalnızca bir kez yürütülmesi gereken şeyler). Konuşma konusu olan mesele:

$PATH += /blah/foo:/bar/etc

Ne kadar çok çağrılırsa, o kadar büyük ve gereksiz $PATHolur. O kadar büyük bir anlaşma değil, ancak, unix öneri bir defalık komutu koymak olacağını ~/.bashrcve çalıştırmak source ~/.bashrciçin gelen .vimrcdosyada.


.Bash_profile veya .bashrc kaynaklarından hiçbiri işe yaramadı. Manuel olarak çalışmayı denedim, :source .bash_profileancak sadece dosyadaki her komut için bir "Editör komutu değil" hatası ve aynı .bashrc ile geliyor.
çörek

üzgünüm ... ne düşünüyordum ... deneyebilirsin! kaynak .bash_profile
David Berger

Hem .bash_profile hem de .bashrc'yi denedim ama yine de gitmedim. PATH değiştirmek için .bash_profile dosyamda kullandığım şey: 'PATH = / usr / local / bin: /Applications/Espresso.app/Contents/SharedSupport/Tools /: / Applications / MacVim /: $ PATH' Ve .bashrc: 'export PATH = / Uygulamalar / MAMP / bin / php5 / bin: $ PATH'. Terminal oturumlarımı gerçekten etkileyen .bash_profile.
donut

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.