I've just migrated to Zsh from Bash, but I have a bit of a problem in it. In bash on an Ubuntu system, when I type the name of a command which does not exist, Bash searches the apt database for a matching command name and prints out the package names that provide that command. It's a really useful feature, so I was wondering if something like that could be implemented in Zsh using a script or something?
Here's an example:
$>xmms2 The program 'xmms2' is currently not installed. You can install it by typing: sudo apt-get install xmms2-client-cli
Or if the command is not an exact match:
$>xmms No command 'xmms' found, did you mean: Command 'lmms' from package 'lmms' (universe) Command 'xmms2' from package 'xmms2-client-cli' (universe) Command 'xmds' from package 'xmds' (universe) Command 'xdms' from package 'xdms' (universe)
As suggested by Michał Politowski, I'll answer my own question and mark it as solved :)
To get this functionality in zsh install a package named "command-not-found" (I don't know about other distro's, but in Ubuntu it's in the repositories).
NOTE: In Ubuntu 12.04 this package is installed by default.
sudo apt-get install command-not-found
And then you will need to edit your .zshrc and then source in the file /etc/zsh_command_not_found by adding the following line in your .zshrc
source /etc/zsh_command_not_found
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With