Le zsh
shell peut-il être configuré pour afficher ce qui bash
s'affiche lorsqu'une commande n'existe pas, de la même manière que ceci:
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
plutôt que l'invite ZSH:
[kahless /home/teward]% sysv-rc-conf
zsh: command not found: sysv-rc-conf
Remarque Je ne souhaite pas modifier l'invite elle-même, mais je souhaite modifier le résultat de zsh: command not found
en une sortie de type bash The program 'progname' is currently not installed. You can install it by typing:
ou similaire.
Est-ce possible avec ZSH?
The program 'progname' is currently not installed. You can install it by typing:
partie)zsh: command not found: sysv-rc-conf
zsh: command not found
ligne.command not found
message, vous pouvez ajouterexit
à la fin de la fonctioncommand_not_found_handler
dans/etc/zsh_command_not_found
.Notez que vous souhaiterez peut-être ajouter une vérification si le fichier existe si vous partagez votre .zshrc entre des distributions qui n'ont pas de
/etc/zsh_command_not_found
fichier:De plus, dans le cas où vous utilisez oh-my-zsh , il existe déjà un plugin
command-not-found
, que vous pouvez ajouter à votreplugins
variable qui fait la même chose.la source
Si vous utilisez oh-my-zsh , vous pouvez simplement rechercher des "plugins" dans votre
.zshrc
.Ajoutez le
command-not-found
plugin à la liste des plugins à charger automatiquement (ce plugin est déjà installé par défaut).Comme ça:
la source
La façon dont cela fonctionne est à travers la fonction command_not_found_handle () dans bash. bash fournit un hook qui est essentiellement une fonction qui est invoquée lorsqu'une commande n'est pas trouvée. L'implémentation bash d'Ubuntu la piège et effectue une recherche de paquets, tandis que bash de Debian ne le fait pas (et la même chose avec zsh). Vous voudrez peut-être consulter la page de manuel de zsh pour voir si cela a une fonction similaire.
Voici comment vous pouvez commencer, en espérant que zsh soit similaire.
la source
command-not-found
par défaut et Debian non. La fonctionnalité existe déjà pour zsh également, elle n'est tout simplement pas activée par défaut.command_not_found_handler
en zsh. Voir zsh.sourceforge.net/Doc/Release/Command-Execution.html .De plus, si vous ne voulez pas que zsh ait ce comportement 100% du temps, vous pouvez simplement faire manuellement quelque chose comme:
/usr/lib/command-not-found urxvt
ou ajoutez une commande introuvable à votre $ PATH
la source