I just switched to zsh (from tcsh) and have only run into one serious frustration: There are multiple completions for pushpushd and pushln. I’d really like to only have pushd available, since this is really tripping up my muscle memory.

How can I set this up using zsh completion (specifically compsys)?

2 Answers 2


I don't know how to control the completion so precisely, but there is a builtin function called disable, which disables a command itself.

If you add disable pushln to your .zshrc, the pushln builtin will be disabled and no longer be displayed as a candidate.


Does this solve your issue?

alias push='pushd'
  • 1
    No, because that just means there'll be three completions for push rather than two. I want to start typing push (e.g. type either pus or push) and have the only completion be pushd.
    – Chris Hanson
    Apr 4, 2011 at 23:48

You must log in to answer this question.

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