web-dev-qa-db-fra.com

Terminal Autocomplège: cycle à travers des suggestions

J'avais ceci sur ma configuration Ubuntu et depuis mon passage à Fedora, je veux la mettre et j'ai oublié comment ... l'idée est simple:

Je ne veux pas que le terminal me montre des suggestions quand je double tab, au lieu de cela, je veux que cela parcourt chaque suggestion possible avec chaque presse sur tab... Cela peut être fait dans Vim aussi.

Alors quand je tape gedit a et appuyez sur tab Cela me montrera chaque fichier avec une première lettre a.

39
vanjadjurdjevic

C'est en fait une fonctionnalité de lecture en lecture appelée menu-complete. Vous pouvez le lier à l'onglet (remplacer la valeur par défaut complete) en exécutant:

bind TAB:menu-complete

Vous voulez probablement ajouter cela à votre ~/.bashrc. Sinon, vous pouvez le configurer pour toutes les achèvements readline (pas seulement bash) dans ~/.inputrc.

Vous pouvez également trouver bind -p (Affiche les fixations actuelles, note que montre l'onglet comme "\C-i") et bind -l (liste toutes les fonctions pouvant être liées) utiles, ainsi que la section Section d'édition de ligne de Bash Manua et Documentation de Readline .

53
derobert

Vous pouvez parcourir le menu d'achèvement de Bash et vous pouvez également afficher le menu des éléments. Contrairement à ZSH, l'élément de menu actuel ne sera pas mis en surbrillance.

Ajouter à ~/.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

Documentation 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.
8
gmarmstrong