(2x) zsh: comando não encontrado

3

Eu finalmente decidi dar o mergulho e experimentar o zsh. Rodando em uma máquina do CentOS 7. A única coisa que eu acho estranhamente irritante é que, por alguma razão, cada vez que eu entro em um comando desconhecido, eu recebo o comando não encontrado duas vezes:

Por exemplo, se eu digitar "falha"

zsh: fail: command not found...
zsh: command not found: fail

Eu não posso, para a vida de mim, descobrir por que esse é o caso, ou encontrar alguém que parece ter tido esse problema. Talvez o meu google-fu não seja strong o suficiente, mas qualquer ponteiro seria apreciado.

meu .zsh é o básico até agora:

HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=10000

bindkey -e


zstyle :compinstall filename '/home/bmgraves/.zshrc'
autoload -Uz compinit
compinit

com bash:

bash: fail: command not found...

tcsh:

fail: Command not found.



print $+functions[command_not_found_handler]

+zsh:2> print 1
 1

zsh -x:

+zsh:7> fail
+command_not_found_handle:1> local 'runcnf=1'
+command_not_found_handle:2> local 'retval=127'
+command_not_found_handle:5> [[ $- -regex-match i ]]
+command_not_found_handle:8> [ '!' -S /var/run/dbus/system_bus_socket ']'
+command_not_found_handle:11> [ '!' -x /usr/libexec/packagekitd ']'
+command_not_found_handle:14> [ ']'
+command_not_found_handle:17> [ 1 -eq 1 ']'
+command_not_found_handle:18> /usr/libexec/pk-command-not-found fail
zsh: fail: command not found...
+command_not_found_handle:19> retval=127
+command_not_found_handle:26> return 127
zsh: command not found: fail
    
por Gravy 04.02.2016 / 18:05

1 resposta

1

Quando um comando não é encontrado, zsh invoca a função command_not_found_handler . Um uso típico para essa função é sugerir uma maneira de instalar o comando, se ele fizer parte de um pacote que faz parte de sua distribuição, mas não estiver instalado.

Em zsh, se a função retornar um status diferente de zero, zsh imprimirá sua mensagem de erro usual. Bash tem um recurso similar (lá a função é chamada command_not_found_handle ), mas com uma pequena diferença: no bash, se o comando retorna um status diferente de zero, o bash não imprime uma mensagem de erro.

A partir do rastreamento, você parece estar usando oh-my-zsh . Ele está chamando pk-command-not-found , que é o manipulador de comando não encontrado do Fedora, e que imprime sua própria mensagem de erro porque foi projetado para o bash. Não vejo uma maneira óbvia de suprimir uma das mensagens de erro. Se isso realmente te incomoda, você pode remover o command-not-found plugin da sua configuração oh-my-zsh (caso em que você não será solicitado a instalar o pacote contendo um comando se estiver disponível nos repositórios, mas não instalado).

    
por 06.02.2016 / 02:08

Tags