command-notfound 不会抱怨 zsh 中的未知命令

command-notfound 不会抱怨 zsh 中的未知命令

我安装了该command-not-found包并且正在将其加载到我的程序中,.zshrc如下所示:

source /etc/zsh_command_not_found

虽然我现在可以获得未找到但可以通过安装其他软件包获得的命令建议(例如asdf),但我不再获得任何未找到命令时的反馈没有提供该命令的建议(例如asdfasdfadfasdf)。在这种情况下,命令行上绝对没有输出,因此我经常不会注意到命令未运行。(例如,我不希望 Conda 默认修改我的 shell 环境,但这意味着每当我想使用该conda命令时,我都必须获取 Conda shell 脚本。现在我经常只注意到下面的三个命令,我实际上忘记获取该脚本,而我的 conda 调用没有执行任何操作。)

我怎样才能解决这个问题?

答案1

/etc/zsh_command_not_found在你的主目录中创建一个副本:

cp /etc/zsh_command_not_found ~/.zsh_command_not_found

使用您想要的编辑器打开它:

vim ~/.zsh_command_not_found

--no-failure-msg从此行中删除标志:

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

所以它看起来应该是这样的:

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

保存并关闭编辑器。

而不是寻找来源/etc/zsh_command_not_found,而是~/.zsh_command_not_found在你的来源中.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

我不是zsh用户,所以我不知道为什么默认--no-failure-msg传递给。/usr/lib/command-not-found

相关内容