Zsh sekmesi tamamlamaları kısmi yollar için istendiği gibi çalışmıyor


17

İçindeki dosyalar ve dizinler için büyük / küçük harfe duyarsız bulanık tamamlama istiyorum zsh. El kitabını birkaç saat okuduktan sonra, ben bu yüzden geldim:

zstyle ':completion:*:*:*:*:globbed-files' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:local-directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'
zstyle ':completion:*:*:*:*:directories' matcher 'r:|?=** m:{a-z\-}={A-Z\_}'

Ayrıca, TABolası tamamlamaları görüntülemek için bir kez basmak istiyorum , sadece tam olarak bir tamamlama varsa yazdıklarımı değiştiriyorum. Daha sonra TABikinci kez basmak beni "menü tamamlama" moduna sokmalıdır. Kılavuzlara dayanarak, bu ile geldim:

zstyle ':completion:*' menu select

Şimdi her şey bir koşul dışında olması gerektiği gibi çalışıyor. İki klasörüm var Desktopve .rstudio-desktopana dizinimde. Ben beri setopt globdots, ben aşağıdakileri yazmayı bekliyoruz:

$ cd ~/dktop<TAB>

komutumu girildiği gibi bırakmak ve tamamlama adayları olarak göstermek Desktopve .rstudio-desktop. Bunun yerine, beni aşağıdakileri bırakarak kaldırır dktop :

$ cd ~/

Tüm ilgili el kitaplarına, kılavuzlara, Stack Exchange sorularına ve diğer çeşitli kaynaklara baktım. Ama ne yaparsam yapayım, bu işi yapamam.

İlginçtir, ama, eğer ben de ev dizini ve beklendiği gibi aşağıdaki Her şeyin çalıştığından yazın:

$ cd dktop<TAB>

Yani, yalnızca yolların önde gelen olmayan segmentlerinde bir sorun var (ve bunun kullanılan etiket yerine etikete C-x hkarşılık geldiğini görebilirsiniz ).directorieslocal-directories

Kolay tekrarlanabilirlik için, burada bir olduğunu ~/.zshrc(ile taze El Capitan sanal makine üzerinde test Yukarıda açıklanan durum ve davranışı yeniden edeceğini zshHomebrew itibaren).


Çoğaltılamıyor. zsh 5.3.1üzerindeArch Linux . cd ~/dktop<tab>verim cd ~/Desktop.
PythonNut

@PythonNut zsh 5.3.1OS X ile sorun yeniden ortaya çıkar. İşletim sistemleri arasında bir fark olması ilginçtir.
Radon Rosborough

1
@PythonNut Aslında, bunun Linux'un büyük / küçük harfe duyarlı olması ve macOS'un büyük / küçük harfe duyarlı olmamasıdır.
Radon Rosborough

Dostça bir hatırlatma gibi, tüm Mac'ler / macOS büyük / küçük harfe duyarlı değildir; diskinizin büyük / küçük harfe duyarsız olup olmadığına bağlıdır.
konqui

Yanıtlar:


1

Olası bir çözüm:

bindkey "^I" expand-word

Bu sekmenin ~/mutlak yola genişlemesine neden olur .


Belki bir şey eksiktir, ancak bunun sekme tamamlamaları veya yukarıda özetlenen sorunu çözme ile hiçbir şekilde ilişkili olmadığını görmüyorum. Önerdiğin gibi yaparsam, SEKME tuşuna basmamı sağlar cd /Users/raxod502/dktopve tamamlama devre dışı kalır.
Radon Rosborough

@RadonRosborough Umut, ~/mutlak yoluna genişleyerek bulanık tamamlamanın çalışmaya başlamasıydı. Sorunun bir kez değerlendirdiği durumlardan biri gibi görünüyordu, ancak aslında çalışmak için iki kez değerlendirmeniz gerekiyor, bu yüzden bunun yerine mutlak yola sahip olmak, ~/sadece bir değerlendirmeye ihtiyaç duyduğu anlamına gelecektir. Ama bok, özür dilerim, bindkey'in eski bağların yerini aldığını unuttum ve iki işlevi bir tuşa bağlamanın bile mümkün olduğunu söyleyen bir şey bulamıyorum. Benim bağlantım olmadan, tamamlamanız mutlak yollar verildiğinde istendiği gibi çalışıyor mu?
ConstipatedNinja

Hayır. Giriş yolunun ~/dktopya da /Users/raxod502/dktop; sonuç aynıdır, yani dktopSEKME tuşuna bastığımda silinir.
Radon Rosborough
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.