Autocomplete de terminal: percorra as sugestões

30

Eu tive isso na minha configuração do Ubuntu e desde que eu mudei para o Fedora eu quero configurá-lo e eu esqueci como ... A idéia é simples:

Eu não quero que o terminal me mostre sugestões quando eu dobrar a aba , ao invés disso, eu quero que ele passe por todas as sugestões possíveis a cada pressão na aba . isso pode ser feito no Vim também.

Então, quando eu digitar gedit a e pressionar a aba , ele mostrará todos os arquivos com a primeira letra a .

    
por vanjadjurdjevic 11.11.2011 / 22:12

2 respostas

44

Este é realmente um recurso de linha de chamada chamado menu-complete . Você pode vinculá-lo à guia (substituindo o padrão complete ) executando:

bind TAB:menu-complete

Você provavelmente deseja adicionar isso ao seu ~/.bashrc . Como alternativa, você poderia configurá-lo para todas as conclusões readline (não apenas bash) em ~/.inputrc .

Você também pode encontrar bind -p (mostrar ligações atuais, observe que a guia como "\C-i" ) e bind -l (lista todas as funções que podem ser ligadas) são úteis, assim como o seção de edição de linha manual do manual e documentação da readline .

    
por 11.11.2011 / 22:19
3

Você pode percorrer o menu de conclusão no Bash e também pode mostrar o menu de itens. Ao contrário do Zsh, o item de menu atual não será destacado.

Adicione a ~/.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

Documentação de 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.
    
por 03.06.2018 / 16:43