In the default configuration of bash in ubuntu, when you type the name of a software which is not installed, bash explains how to install it if the executable if it exists, or how to install an executable with a really close name if it does not exist. For example with emacs (which is not installed on my machine):
$ emacx
No command 'emacx' found, did you mean:
Command 'emacs' from package 'emacs23-lucid' (universe)
Command 'emacs' from package 'e3' (universe)
Command 'emacs' from package 'emacs23-nox' (main)
Command 'emacs' from package 'emacs24' (main)
Command 'emacs' from package 'emacs24-nox' (main)
Command 'emacs' from package 'emacs23' (main)
Command 'emacs' from package 'jove' (universe)
Command 'emacs' from package 'emacs24-lucid' (universe)
emacx: command not found
$ emacs
The program 'emacs' can be found in the following packages:
* emacs23
* emacs23-nox
* emacs24
* emacs24-nox
* e3
* emacs23-lucid
* emacs24-lucid
* jove
Try: sudo apt-get install <selected package>
With my current configuration of zsh I obtain:
$ emacx
zsh: command not found: emacx
$ emacs
zsh: command not found: emacs
There is also a difference of behavior when making a mistake in the name of an installed software. Say I want to launch gedit instead of kedit. With bash, I obtain:
$ kedit
No command 'kedit' found, did you mean:
Command 'xedit' from package 'x11-apps' (main)
Command 'edit' from package 'mime-support' (main)
Command 'nedit' from package 'nedit' (universe)
Command 'gedit' from package 'gedit' (main)
Command 'jedit' from package 'jedit' (universe)
Command 'medit' from package 'medit' (universe)
Command 'ledit' from package 'ledit' (main)
kedit: command not found
While with zsh I obtain:
$ kedit
zsh: correct 'kedit' to 'edit' [nyae]?
So, my questions are:
- Is it possible to have a similar behavior in zsh as with bash when trying to launch an executable not yet installed? If yes, how?
- Is it possible to display all the possibilities when there is a typing mistake, instead of giving one correction which can be wrong?