2010-07-23 740 views
18

Acabo de migrar a Zsh desde Bash, pero tengo un problema. En bash en un sistema Ubuntu, cuando escribo el nombre de un comando que no existe, Bash busca en la base de datos apt un nombre de comando coincidente e imprime los nombres de paquete que proporcionan ese comando. Es una característica realmente útil, así que me preguntaba si algo así podría implementarse en Zsh usando un script o algo así.Zsh Sugerencia de paquete

He aquí un ejemplo:

$>xmms2 
The program 'xmms2' is currently not installed. You can install it by typing: 
sudo apt-get install xmms2-client-cli 

O si el comando no es una coincidencia exacta:

$>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) 
+0

Pertenece en superuser.com –

+0

ahh o k lo siento, soy nuevo aquí :) –

+0

@Paul R si este paquete no existe, ¿no es esta una pregunta de programación? @gastly si encuentras el origen de la secuencia de comandos que hace este truco, puedo portarlo a zsh. – ZyX

Respuesta

11

Como sugiere Michał Politowski, voy a responder a mi propia pregunta y marcarlo como resuelto :)

Para obtener esta funcionalidad en zsh instale un paquete llamado "command-not-found" (no sé sobre otras distro pero en Ubuntu está en los repositorios).

NOTA: en Ubuntu 12.04 este paquete está instalado de forma predeterminada.

sudo apt-get install command-not-found

Y entonces usted tendrá que modificar su .zshrc y luego origen en el archivo/etc/zsh_command_not_found añadiendo la siguiente línea en su .zshrc

source/etc/zsh_command_not_found

+2

Solo para ser claro. Ya tenía instalado command-not-found y todo lo que necesitaba agregar era lo siguiente to.zshrc 'source/etc/zsh_command_not_found' – Sam