A mágica funciona devido ao command_not_found
pacote que fornece uma função command_not_found_handle
para bash e zsh .
Isso funciona em bash por causa desse snippet em /etc/bash.bashrc
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
Há também um arquivo /etc/zsh_command_not_found
que você pode pesquisar para obter esse comportamento para zsh - aqui, a função é chamada command_not_found_handler
.
A partir de uma pesquisa rápida, não parece que tcsh inclua essa funcionalidade para definir um command_not_found_handle
. Então pode ser o nome, é diferente, nesse caso você só precisa converter o trecho em tcsh e incluí-lo no seu ~/.tcshrc
, senão você não pode!