Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

How does zsh figure out currently installed packages on Debian, and how can I update that information? After running apt-get install, zsh won't autocomplete that package as a possible parameter for apt-get purge or apt-get remove. The only way I can get it to update is to run a new shell. None of the tricks I've found seem to work: rehash or even rm ~/.zcompdump && compinit don't help.

Bash recognizes package installs and removals, and modifies the possible parameter lists for apt-get remove/purge accordingly, without any user interaction. This is using the default configuration on Debian wheezy.

With the default configuration for zsh, I don't get any parameter completion for apt-get at all. I'm using the following custom rc to get completion (with the above caveat):

autoload -U compinit
eval `dircolors -b`
PS1="%n@%M:%~ > "
zstyle ':completion:*' list-colors $LS_COLORS
share|improve this question
# auto rehash commands
zstyle ':completion:*' rehash true
share|improve this answer
No, this does not help. Even with this, or manually calling the rehash command, the package names available for completion are not updated. I've now started using exec zsh, though that's of course not perfect (i.e. because of background jobs). – Rörd Oct 20 '13 at 13:18
Where do I have to add this line? To .zshrc? – white_gecko May 19 '15 at 8:52

You must log in to answer this question.

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