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?