Tamamlama listesini zsh olarak dinamik olarak güncelleyin


13

TabTamamlama için zsh'ın sonuç listelerini oldukça yararlı buluyorum , ancak davranışlarını biraz değiştirmek istiyorum:

Ben Tabilk kez ve daha sonra eklenen her yeni harf ile dinamik olarak güncelleme zaman görünmelidir . Varsayılan davranış, önerilerin yalnızca tekrar değerlendirildiğinde yeniden değerlendirilmesidir Tab, bu tekrarlanan tuşa basmayı kaydetmek istiyorum. ( Güncelleme: Ancak olası tamamlamaları listeleyin, yalnızca bir seçenek kalsa bile gerçek bilgi istemi satırımı otomatik olarak değiştirmemelidir.)

Böyle bir davranışa ulaşmanın bir yolu var mı?


zshKişiselleştirmenin davranışını derinlemesine inceleyebilirsiniz . Tam olarak ne olmalı? Şu anda bu soru , ilk SEKME'den sonra her tuşa basmak için seçeneklerin listelenmesini istiyormuşsunuz gibi görünüyor , ancak bu aslında hiçbir şeyi tamamlamayacak. Her tuşa basıldığında bir SEKME gibi davranmalı mı? Bunun, istenmeyen tamamlamalar için biraz geri dönme anlamına geleceğini unutmayın.
peth

@ user112553 İlk seçenek: Bu anlamda, aslında tekrarlanan bir SEKME gibi davranmamalıdır. Sadece öneri listesinin dinamik olarak ayarlanmasını istiyorum.
F30

Yanıtlar:


2

İstediğiniz çözümü sunabilecek yollardan biri incremental-complete-word:

zle -N incremental-complete-word
bindkey '^Xi' incremental-complete-word

Bu yükler işlev ve bağlandığı o kadar Ctrl- X i. Şimdi deneyebilirsiniz:

> k^Xi
incremental (complete): -no prefix-

Bu örnekte, harf k, ardından Control-X i yazılmıştır.

> kil
incremental (complete): kill       

Ben yazdım ilve şimdi bir olası tamamlanma oldu ( kill). Birisi bunu kabul edebilir ve enter tuşuna basabilir.

> kill^D
incremental (complete): -no prefix-
- external command -
kill      killall   killall5

Ctrl- Dzsh yazarak olası tamamlamaları gösterir.

Gönderen zshcontrib(1):

artımlı tam sözcük
Bu bir sözcüğün artımlı olarak tamamlanmasını sağlar. Bu komutu başlattıktan sonra, yazdığınız her karakterden sonra ^Hveya ile silebileceğiniz bir tamamlama seçenekleri listesi gösterilebilir DEL. Return tuşuna basmak tamamlanmayı kabul eder ve sizi normal düzenlemeye döndürür (yani komut satırı hemen yürütülmez). TABNormal tamamlama yapmak, ^G başladığınız andaki durumuna geri dönmek ^Dve maçları listelemek için tuşuna basabilirsiniz .

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.