Zsh tamamlamanın Bash tamamlaması gibi davranmasını nasıl sağlayabilirim?


12

Zsh'a geçtim ama tamamlanmayı sevmiyorum. Sekme tuşuna basıldığında, her biri paylaşılan önek bulunan 20 dosyam varsa, zsh ilk dosyayı tam olarak tamamlar, ardından sekmeye her basıldığında listede ilerlemeye devam eder. Sonuna yakın bir tane istersem, sekmeye birçok kez basmam gerekecekti.

Bash'ta bu basitti - sekmeye basın ve öneki alırdım. Yazmaya devam etsem (ve sekmeye basarsam), bash kesin olarak tamamlanacaktır. Bu davranışı çok daha sezgisel buluyorum ama zsh'ın diğer özelliklerini bash'a tercih ediyorum.

Bu tarz bir tamamlama elde etmenin bir yolu var mı? Google önerdi setopt bash_autolist, ancak bunun benim için bir etkisi olmadı (ve kabuğum başlatıldığında hiçbir hata mesajı yazdırılmadı).

Teşekkürler.

Yanıtlar:



8

Ne istiyorsun muhtemelen şu:

setopt noautomenu

1
(10 yıl sonra) Kabul edilen cevabın benim için (belirgin) bir etkisi yoktu. Bu tam olarak istediğim şeydi ve OP'nin istediği gibiydi.
Jer

1

.Zshrc dosyasında "menu select" seçeneğini kullanırsanız başka bir seçenek daha vardır:

autoload -U compinit
compinit
zstyle ':completion:*:*:*:*:*' menu select

Ok tuşlarıyla sonuçta gezinebilirsiniz. Örneğinizi "paylaşılan öneki olan 20 dosya" ile ele alalım:

  • [SEKME] 'ye ilk bastığınızda, zsh daha fazlasını tamamlar ve ardından bir olasılık listesi görüntüler
  • o zaman bash'taki gibi tamamlayabilirsiniz (ekstra bir karakter yazın, 0'a gidin)
  • veya [SEKME] 'yi yeniden yazın, ardından kabuk isteminizin altındaki menüde vurgulanan olası seçenekleri göreceksiniz; bonus, ok tuşlarınızla olanaklarda gezinebilirsiniz

Sonunda son olasılığa ulaşmak için:

  • Bash ile en iyi ihtimalle [TAB] sonra ekstra bir karakter, sonra [TAB] 'ı tekrar vurursunuz (belki daha fazla)
  • Zsh ile [SEKME] sonra [SEKME] tuşuna tekrar basın (menüye girmek için), ardından son öğelere ulaşmak için "<-" (sol ok tuşu)

Bu durumda ikisi de 3 tuş vuruşudur. Gerisi çoğunlukla bir tat meselesidir.

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.