¿Se zsh
puede configurar el shell para mostrar lo que se bash
muestra cuando no existe un comando, de manera similar a esto:
kahless:~$ sysv-rc-conf
The program 'sysv-rc-conf' is currently not installed. You can install it by typing:
sudo apt-get install sysv-rc-conf
en lugar del indicador ZSH:
[kahless /home/teward]% sysv-rc-conf
zsh: command not found: sysv-rc-conf
Tenga en cuenta que no quiero cambiar el indicador en sí, pero quiero cambiar el resultado de zsh: command not found
una salida de bash The program 'progname' is currently not installed. You can install it by typing:
o similar.
¿Es esto posible con ZSH?
The program 'progname' is currently not installed. You can install it by typing:
parte)zsh: command not found: sysv-rc-conf
zsh: command not found
línea.command not found
mensaje se puede añadirexit
al final de la funcióncommand_not_found_handler
en/etc/zsh_command_not_found
.Tenga en cuenta que es posible que desee agregar una marca si el archivo existe si está compartiendo su .zshrc en distribuciones que no tienen un
/etc/zsh_command_not_found
archivo:Además, en caso de que esté usando oh-my-zsh , ya hay un complemento
command-not-found
, que puede agregar a suplugins
variable que hace lo mismo.fuente
Si está utilizando oh-my-zsh , simplemente puede buscar "complementos" dentro de su
.zshrc
.Agregue el
command-not-found
complemento a la lista de complementos para cargar automáticamente (este complemento ya está instalado de forma predeterminada).Me gusta esto:
fuente
La forma en que funciona es a través de la función command_not_found_handle () en bash. bash proporciona un enlace que es básicamente una función que se invoca cuando no se encuentra un comando. La implementación de bash de Ubuntu lo atrapa y realiza una búsqueda de paquetes, mientras que bash de Debian no (y lo mismo con zsh). Es posible que desee consultar la página de manual de zsh para ver si tiene una función similar.
Aquí es cómo puede comenzar, esperando que zsh sea similar.
fuente
command-not-found
por defecto y Debian no. La función ya existe para zsh también, simplemente no está activada por defecto.command_not_found_handler
en zsh. Consulte zsh.sourceforge.net/Doc/Release/Command-Execution.html .Además, si no desea que zsh tenga este comportamiento el 100% del tiempo, puede hacer algo como:
/usr/lib/command-not-found urxvt
o agregue command-not-found a su $ PATH
fuente