我刚刚从 Bash 迁移到 Zsh,但遇到了一点问题。在 Ubuntu 系统上的 bash 中,当我输入不存在的命令名称时,Bash 会在 apt 数据库中搜索匹配的命令名称并打印出提供该命令的软件包名称。这是一个非常有用的功能,所以我想知道是否可以使用脚本或其他东西在 Zsh 中实现类似的功能?
以下是一个例子:
$>xmms2
The program 'xmms2' is currently not installed. You can install it by typing:
sudo apt-get install xmms2-client-cli
或者如果命令不完全匹配:
$>xmms
No command 'xmms' found, did you mean:
Command 'lmms' from package 'lmms' (universe)
Command 'xmms2' from package 'xmms2-client-cli' (universe)
Command 'xmds' from package 'xmds' (universe)
Command 'xdms' from package 'xdms' (universe)
答案1
好的,我找到答案了!
首先,您需要安装一个名为“command-not-found”的软件包(不知道其他发行版的情况,但在 Ubuntu 中它位于存储库中)。
sudo apt-get install command-not-found
然后你需要编辑你的 .zshrc 并在文件 /etc/zsh_command_not_found 中获取源代码
source /etc/zsh_command_not_found