Можно zsh
ли настроить оболочку, чтобы показать, что bash
показывает, когда команда не существует, аналогично этому:
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
а не приглашение ZSH:
[kahless /home/teward]% sysv-rc-conf
zsh: command not found: sysv-rc-conf
Примечание. Я не хочу изменять само приглашение, но я хочу изменить результат с zsh: command not found
bash-like вывода The program 'progname' is currently not installed. You can install it by typing:
или аналогичного.
Это возможно с ZSH?
The program 'progname' is currently not installed. You can install it by typing:
часть)zsh: command not found: sysv-rc-conf
zsh: command not found
линии.command not found
сообщение, которое вы можете добавитьexit
в конце функцииcommand_not_found_handler
в/etc/zsh_command_not_found
.Обратите внимание, что вы можете добавить проверку, если файл существует, если вы делитесь своим .zshrc между дистрибутивами, у которых нет
/etc/zsh_command_not_found
файла:Кроме того, если вы используете oh-my-zsh , уже есть плагин
command-not-found
, который вы можете добавить в своюplugins
переменную, которая делает то же самое.источник
Если вы используете oh-my-zsh , вы можете просто искать «плагины» внутри вашего
.zshrc
.Добавьте
command-not-found
плагин в список плагинов для автозагрузки (этот плагин уже установлен по умолчанию).Так:
источник
Это работает через функцию command_not_found_handle () в bash. bash предоставляет хук, который в основном является функцией, которая вызывается, когда команда не найдена. Реализация bash в Ubuntu перехватывает его и выполняет поиск пакетов, а bash в Debian - нет (и то же самое с zsh). Вы можете проверить man-страницу zsh, чтобы увидеть, имеет ли она подобную функцию.
Вот как вы можете начать, надеясь, что Zsh похож.
источник
command-not-found
по умолчанию, а Debian - нет. Эта функция уже существует для zsh, но по умолчанию она не активирована.command_not_found_handler
на зш. См. Zsh.sourceforge.net/Doc/Release/Command-Execution.html .Также, если вы не хотите, чтобы zsh имел такое поведение в 100% случаев, вы можете просто сделать что-то вручную:
/usr/lib/command-not-found urxvt
или добавьте команду not-found к вашей переменной $ PATH
источник