O zsh
shell pode ser configurado para mostrar o que bash
mostra quando um comando não existe, da mesma forma que isto:
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
em vez do prompt ZSH:
[kahless /home/teward]% sysv-rc-conf
zsh: command not found: sysv-rc-conf
Nota: não quero alterar o prompt em si, mas quero alterar o resultado de zsh: command not found
para uma saída do tipo bash The program 'progname' is currently not installed. You can install it by typing:
ou similar.
Isso é possível com o 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
linha.command not found
mensagem que você pode adicionarexit
no final da funçãocommand_not_found_handler
em/etc/zsh_command_not_found
.Observe que você pode adicionar uma verificação se o arquivo existir, se você estiver compartilhando seu .zshrc em distribuições que não possuem um
/etc/zsh_command_not_found
arquivo:Além disso, caso você esteja usando o oh-my-zsh , já existe um plugin
command-not-found
, que você pode adicionar à suaplugins
variável que faz a mesma coisa.fonte
Se você estiver usando o oh-my-zsh , poderá procurar "plugins" dentro do seu
.zshrc
.Adicione o
command-not-found
plug - in à lista de plug-ins para carregar automaticamente (esse plug-in já está instalado por padrão).Como isso:
fonte
A maneira como funciona é através da função command_not_found_handle () no bash. O bash fornece um gancho que é basicamente uma função que é chamada quando um comando não é encontrado. A implementação do bash do Ubuntu intercepta e faz uma pesquisa de pacotes, enquanto o bash do Debian não (e o mesmo com zsh). Você pode verificar a página de manual do zsh para ver se isso tem uma função semelhante.
Aqui está como você pode começar, esperando que o zsh seja semelhante.
fonte
command-not-found
por padrão e o Debian não. O recurso já existe para o zsh, mas não é ativado por padrão.command_not_found_handler
em zsh. Consulte zsh.sourceforge.net/Doc/Release/Command-Execution.html .Além disso, se você não quiser que o zsh tenha esse comportamento 100% do tempo, é possível fazer manualmente algo como:
/usr/lib/command-not-found urxvt
ou adicione um comando não encontrado ao seu $ PATH
fonte