I had this on my Ubuntu setup and since I switched to Fedora I want to set it and I forgot how… The idea is simple :
I don’t want the terminal to show me suggestions when I double tab, instead I want it to cycle through every possible suggestion with each press on tab… this can be done in Vim also.
So when I type gedit a and press tab it will show me every file with a first letter a.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
This is actually a readline feature called menu-complete . You can bind it to tab (replacing the default complete) by running:
bind TAB:menu-complete
You probably want to add that to your ~/.bashrc. Alternatively, you could configure it for all readline completions (not just bash) in ~/.inputrc.
You may also find bind -p (show current bindings, note that shows tab as "C-i") and bind -l (list all functions that can be bound) useful, as well as the bash manual’s line editing section and readline’s documentation.
Method 2
You can cycle through the completion menu in Bash, and you can also show the menu of items. Unlike in Zsh, the current menu item will not be highlighted.
Add to ~/.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 from 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.
Method 3
Add this line to your inputrc file:
TAB:menu-complete
- For system wide:
/etc/inputrc - For current user:
~/.inputrc
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0