Oh-my-zsh ile zsh içindeki “auto cd” nasıl devre dışı bırakılır


29

Bu Google Googling herhangi bir sonuç göstermedi. İşte ne demek istediğim: Yolumda adlandırılmış bir ikili dosyaya xsahibim (mevcut klasörde değil, fakat klasörde PATH) ve ayrıca geçerli çalışma dizininde aynı isimde bir klasöre sahibim . Eğer xyazarsam, binaryin çalışmasını istiyorum ama bunun yerine cd bu klasöre. Bunu nasıl düzeltebilirim?

Yanıtlar:


46

Birinde üç soru var ;-)

AUTO_CD Seçeneği ve nasıl bulunur

Öncelikle aradığınız seçenek AUTO_CD. Arayarak kolayca bulabilirsiniz man zshoptions. Çağrı cihazı arama işlevinizi kullanın, genellikle tuşuna basın /ve anahtar kelimeyi girin. Bir nsonraki tekrarlamaya atlayın. Bu, aşağıdakileri getirecektir:

[..]
   Changing Directories
       AUTO_CD (-J)
              If  a  command is issued that can't be executed as a normal command, and the command is the name of a directory, perform the cd command to that directory.
[..]

Seçenek kullanılarak ayarlanmamış olabilir unsetopt AUTO_CD.

Düzgün kapatmak

Olarak tanımlanan oh-my-zsh kullanıyorsunuz

"Zsh yapılandırmanızı yönetmek için topluluk odaklı bir çerçeve" 120'den fazla isteğe bağlı eklenti (raylar, git, OSX, hub, capistrano, brew, ant, macports, vb.) İçerir ...

Dolayısıyla bir sonraki şey, çerçeveye göre seçeneklerin nasıl etkinleştirileceğini / devre dışı bırakılacağını bulmak.

Readme.textile dosya : tercih edilen yöntem etkinleştirmek için bu devletler / devre dışı eklentileri sizin .zshrc dosyanızda bir giriş olacağını plugins=(git osx ruby) AUTO_CD seçeneği kullanır hangi eklenti bulun. Manpage'den keşfedildiği gibi, -J anahtarı veya AUTO_CD ile çağrılabilir. Oh-my-zsh github'da mevcut olduğundan, onu aramak dosyayı açacaktır lib/theme-and-appearance.zsh. "Tema-ve-görünüm" eklentisinin tamamını devre dışı bırakmak istemiyorsanız, bir unsetopt AUTO_CD.zshrc yazın. Oh-my-zsh dosyalarını doğrudan değiştirmeyin, çünkü çerçeveyi güncellemeniz durumunda değişiklikleriniz kaybolacaktır.

Çalıştırılabilir dosyalar neden doğrudan başlatılmıyor?

Üçüncü sorunuz, doğrudan bir ikili dosyayı nasıl çalıştıracağınızdır: İkili dosyanızı bir yolla, örneğin içinde ./olduğu gibi bir önekle çalıştırmak zorundasınız ./do-something. Bu bir çeşit güvenlik özelliğidir ve değiştirilmemelidir. USB çubuğa takma, takma ve bir göz atma ls. lsEv dizininizi silen bir yürütülebilir dosya varsa , $ PATH sıranızın üzerine yazılacağından her şey kaybolurdu.

Tekrar tekrar aradığınız komutlar varsa, .zshrc'nizde bir takma ad ayarlamak ortak bir çözüm olacaktır.


4
Çok teşekkür ederim! İhtiyacım olan şey unsetopt auto_cdsatırdı (çalıştırılabilir uygulamanın yolumda olduğunu açıkça belirtmiştim ; yine de açıklama diğer kullanıcıların işleri anlamasına yardımcı olabilir).
Gabi Purcaru

Tam cevap ve bilgileri nasıl bulduğuyla ilgili detayları sağladığınız için teşekkür ederiz (böylece başkalarının bu gibi bilgileri gelecekte kendi başlarına bulmalarına yardımcı olun).
sondaki eğik çizgi

2
Son paragrafınız hiç mantıklı değil. OP, PATHortam değişkeninde, autocd'ye göre öncelik almak istedikleri bir ikili dosya hakkında soru soruyor . Kabuk betiğinin ya ./da belirtmeden yoldan bir yürütülebilir dosyayı çalıştırma konusundaki yetersizliği ile ilgisi yoktur /.
Qix

Benioku ile ilk bağlantı çalışmıyor. İşte burada . Ayrıca, OMZ libdizininin pluginssorusu ile ilgisi yoktur. Sorunun cevabında ve dediğiniz gibi, doğru komut unsetopt.
Timo
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.