Something that is a life-saver for me is to have bash cycle through the possibilities instead of showing a dumb list.
As bash is using readline for its auto-completion, add the following lines to ~/.inputrc
Once you're satisfied and have thoroughly tested below solution for a few days/weeks, cut and paste (don't copy!) the same settings from ~/.inputrc to /etc/inputrc which contains the system-wide settings, making this available to all users on your system (including guest).
The codez:
# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right:
"\e[C": forward-char
"\e[D": backward-char
# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward
then exit your terminal (or remote terminal like putty) and open it again...
Examples:
When you have 3 files: file1, file2 and file3 and you type:
e fTabTabTab
it'll cycle through:
e file1
e file2
e file3
and when you want to cycle backwards, just hit Shift+Tab
When you type:
very-complicated-command with lots of command line parameters
and next time you need the same command, you just type:
very↑
and it'll type for you:
very-complicated-command with lots of command line parameters
This will save you a ton of time in bash! ;-)
~/.inputrcmight be preferable over/etc/inputrc, and 2. I think you can set this inbashdirectly: http://unix.stackexchange.com/q/55203/70524, http://unix.stackexchange.com/a/16926/70524 – muru Apr 11 '15 at 07:45git branch <tab through branches>. However, if I could see a list and tab through its items, that would be great! For directories and fileslsis an option to see what items are available. However, for subcommands it is not that easy or obvious, unfortunately. – Erik Dec 21 '16 at 08:39