command-not-found не сообщает о неизвестных командах в zsh

Я установил пакет command-not-found и загружаю его в свой .zshrc примерно так:

source /etc/zsh_command_not_found

Хотя сейчас я получаю предложения по командам, которые не найдены, но могут быть получены путем установки дополнительных пакетов (например, asdf ), я больше не получаю any обратная связь, когда команда не найдена и , нет предложений, обеспечивающих эту команду (например, asdfasdfadfasdf ). В этом случае нет абсолютно никакого вывода в командной строке, и поэтому я часто не замечаю, когда команда не выполняется. (Например, я не Я не хочу, чтобы Conda изменяла мою среду оболочки по умолчанию, но это означает, что мне нужно использовать сценарий оболочки Conda всякий раз, когда я хочу использовать команду conda . Теперь я часто замечаю только три команды, которые я на самом деле забыл написать в сценарии, и что мои вызовы conda ничего не сделали.)

Как я могу это исправить?

2
задан 17 July 2020 в 19:25

1 ответ

Create a copy of /etc/zsh_command_not_found in your home directory:

cp /etc/zsh_command_not_found ~/.zsh_command_not_found

Open it using your desired editor:

vim ~/.zsh_command_not_found

Remove the --no-failure-msg flag from this line:

/usr/lib/command-not-found --no-failure-msg -- ${1+"$1"} && :

So it should look like this:

/usr/lib/command-not-found -- ${1+"$1"} && :

Save and close the editor.

Instead of sourcing /etc/zsh_command_not_found, source ~/.zsh_command_not_found in your .zshrc.

user@focal ~ % source ~/.zsh_command_not_found 
user@focal ~ % csh

Command 'csh' not found, but can be installed with:

sudo apt install csh   # version 20110502-5, or
sudo apt install tcsh  # version 6.21.00-1

user@focal ~ % conda
conda: command not found

I'm not a zsh user, so I've got no idea why --no-failure-msg is being passed to the /usr/lib/command-not-found by default.

0
ответ дан 30 July 2020 в 22:06

Другие вопросы по тегам:

Похожие вопросы: