Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Zsh Package Suggestion

Tags:

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) 
like image 294
Bhaskar Kandiyal Avatar asked Jul 23 '10 08:07

Bhaskar Kandiyal


1 Answers

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

like image 147
Bhaskar Kandiyal Avatar answered Sep 28 '22 16:09

Bhaskar Kandiyal