I’m a long time tcsh user, but all the cool kids seem to be using either bash or zsh nowadays (that is, completion patterns for git or stuff are available for bash and zsh, rarely for tcsh).
My problem is that both shells have behaviours regarding tab-completion of paths that drive me crazy, and I’m having much trouble finding how to change them to my liking.
Here’s a couple of examples of what I’m used to doing in tcsh that the others do differently:
- Then tab lists the contents of
- Pressing tab a second time completes to
- Pressing tab a third time lists the contents of
In bash, no matter how many times I hit tab, it will never go past
/usr/lib, requiring me to type the slash, which I don’t want to do.
/usr/li<TAB> first completes to
/usr/lib, then another tab lists
libexec/, a third time tab completes to
/usr/lib/, and all subsequent tabs cycle between
/usr/libexec/. I have no idea how to get past this point. I just want to go from
/usr/lib/, then list its contents.
Same goes for python. In tcsh, I type
pyt<TAB>, it completes to
python and lists
python2.6, etc, then a second tab settles for python and add the space. In bash it requires me to type the space and in zsh it cycles endlessly like in the first example.
Any help in taming these shells would be greatly appreciated. I don’t really want to spend time tweaking the other aspects of these shells until I solve the problem above.