Skip to main content
3 of 4
Copy edit
Marlon Richert
  • 4.3k
  • 11
  • 38

How to make `zsh` immediately show all completions, without first inserting the common prefix?

I have zsh set up with Oh-My-Zsh. The z plugin allows me to jump to recently used directories.

When I type z name<TAB>, it autocompletes name from the list of recently visited dirs by matching name against the list.

https://github.com/ohmyzsh/ohmyzsh/blob/6d5b8484ce7198161d5f617c3db9fd7d3833d48c/plugins/z/z.sh#L250

Sometimes the result contains only a single entry, when I know there should be multiple. I have debugged the $reply variable and it happens if all entries have the same prefix, e.g. /path/to/dir, containing dirs with name In this case there is only the prefix in the autocomplete menu instead of full list of matched dirs. Hitting <TAB> again after expansion, triggers a new call to z script complete function now with the full common prefix instead of my search query , e.g. /path/to/dir

When I press <Shift+Tab> which is bound to reverse-menu-complete zsh properly selects the last item and shows the full list.

Is there a way to make Tab immediately show all completions, without first inserting the common prefix?

dre-hh
  • 195
  • 8