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.

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.