Is it possible to configure zsh to expand global aliases during tab completion? For example, I have the common aliases:

alias -g '...'='../..'
alias -g '....'='../../..'

but when I type for example cd .../some<tab> it won't expand to cd .../something or cd ../../something. Consequently, I frequently won't use these handy aliases because I can't tab complete where I want to go.


2 Answers 2


Try looking up zsh abbreviations. They allow you to enter an "abbreviation" which automatically gets replaced with its full form when you hit a magic key such as space. So you can create one which changes ...<SPACE> to ../...

For example, this is what you need in your profile:

typeset -A abbrevs
        "..." "../.."
        "...." "../../.."        

#create aliases for the abbrevs too
for abbr in ${(k)abbrevs}; do
   alias -g $abbr="${abbrevs[$abbr]}"

my-expand-abbrev() {
    local MATCH
    zle self-insert

zle -N my-expand-abbrev    
bindkey " " my-expand-abbrev 
bindkey -M isearch " " self-insert

I have a custom ZLE widget for this, just drop it somewhere in a directory in $fpath. You can then configure it this way.

  • 1
    links are broken and their content is missing from this answer
    – Adam Katz
    Mar 16, 2021 at 21:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .