Terminal otomatik tamamlama: öneriler arasında geçiş yapma


37

Bunu Ubuntu kurulumumda yaptım ve Fedora'ya geçtiğimden beri ayarlamak istiyorum ve nasıl olduğunu unuttum ... Fikir basit:

İki katına çıktığımda terminalin bana önerilerde bulunmasını tabistemiyorum, bunun yerine her basışta olası her öneride dolaşmalarını istiyorum tab... bu da Vim'de yapılabilir.

Bu yüzden yazarken gedit ave basın tabbana ilk harfi ile her dosyayı gösterecektir a.


Yanıtlar:


51

Bu aslında denilen bir readline özelliğidir menu-complete. Çalıştırarak sekmeye (varsayılanı değiştirerek complete) ciltleyebilirsiniz:

bind TAB:menu-complete

Muhtemelen bunu da eklemek istersin ~/.bashrc. Alternatif olarak, onu tüm okuma satırı tamamlamaları için yapılandırabilirsiniz (sadece bash değil) ~/.inputrc.

Ayrıca , bash el kitabının satır düzenleme bölümünü ve okuma satırının belgelerinin yanı sıra, bind -p(geçerli bağlantıları göster, sekme olarak gösterilen notu göster "\C-i") ve bind -l(bağlanabilen tüm işlevleri listeleyebilir) kullanışlı da bulabilirsiniz .


3
@ Vanjadjurdjevic: Elbette, onları farklı anahtarlara bağla.
derobert

4
menu-completeserin, ama tüm olası önerilerin listesini gizler ;-( mı mümkün hem seçenekler arasında listesi ve döngüyü görmek?
Ciro Santilli新疆改造中心法轮功六四事件

2
@CiroSantilli 六四 事件 法轮功 包 卓 轩 Ben de okuma çizgisi tabanlı mermilerde bu özelliği seviyorum. Şu anda bunu yapmanın zsh yolu çok havalı: ilk sekme isabeti tüm olasılıkları gösteriyor, ikinci isabet sekmesi tamamlama öğelerini değiştirmeye başlıyor.
xuhdev

1
En kullandığınız varsayalım cdve menu-completeve dizinleri üzerinde bisiklet. Bu dizini "seçmek" için ve hangi dizinin içeriğini değiştirmeye başlamak için hangi tuşa basarsınız? Ayarlamak / bağlamak için başka bir şey var mı?
Tony,

1
@Tony evet, onu ekleyeceğim. Ancak eğer eğik çizgi kullanırsanız, sorun değil - " /usr/local//" gibi bir yol hala mükemmel şekilde geçerlidir ve içindeki menüleri tamamlamaya başlayacaktır /usr/local.
derobert

6

Bash'deki tamamlama menüsü arasında geçiş yapabilir ve öğelerin menüsünü de gösterebilirsiniz. Zsh'den farklı olarak, geçerli menü maddesi vurgulanmayacaktır.

Ekle ~/.inputrc:

set show-all-if-ambiguous on
set show-all-if-unmodified on
set menu-complete-display-prefix on
"\t": menu-complete
"\e[Z": menu-complete-backward

Dokümantasyon man bash:

Readline Variables
    menu-complete-display-prefix (Off)
           If set to On, menu completion displays the common prefix of the
           list of possible completions (which may be empty) before cycling
           through the list.
    show-all-if-ambiguous (Off)
           This alters the default behavior of the completion functions. If
           set to On, words which have more than one possible completion
           cause the matches to be listed immediately instead of ringing
           the bell.
    show-all-if-unmodified (Off)
           This alters the default behavior of the completion functions in
           a fashion similar to show-all-if-ambiguous. If set to On, words
           which have more than one possible completion without any
           possible partial completion (the possible completions don't
           share a common prefix) cause the matches to be listed
           immediately instead of ringing the bell.

Completing
    menu-complete
          Similar to complete, but replaces the word to be completed with
          a single match from the list of possible completions. Repeated
          execution of menu-complete steps through the list of possible
          completions, inserting each match in turn. At the end of the list
          of completions, the bell is rung (subject to the setting of
          bell-style) and the original text is restored. An argument of
          n moves n positions forward in the list of matches; a negative
          argument may be used to move backward through the list. This
          command is intended to be bound to TAB, but is unbound by
          default.
    menu-complete-backward
          Identical to menu-complete, but moves backward through the list
          of possible completions, as if menu-complete had been given
          a negative argument. This command is unbound by default.
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.