我正在慢慢地从 bash 过渡到 zsh,并且几乎喜欢它的每一个部分,但有两件事我真的很想念。其中之一是快照完成,请参见此处: Enable snap TAB-completion for zsh
另一种是你在 Ubuntu 终端中输入命令而不是“哦,不!找不到相关命令!' 马上,你会得到这样的东西:
user@computer:~$ inkscape
Command 'inkscape' not found, but can be installed with:
sudo snap install inkscape # version 0.92.4, or
sudo apt install inkscape # version 0.92.4-5ubuntu5
See 'snap info inkscape' for additional versions.
有什么方法可以在 zsh 中启用它吗?我真的很想不必再切换回 bash 来使用它并捕捉自动完成功能。
谢谢!
对于apt 包建议,我们可以使用以下方法:
如果您使用的是oh-my-zsh,它带有一个名为 的插件
command-not-found
,您可以通过编辑 ~/.zshrc 来启用它,添加command-not-found
到插件列表中。例如 plugins=(command-not-found)
魔术发生在
bash
使用名为的函数的底层command_not_found_handle
:zsh
有一个非常相似的名字command_not_found_handler
:默认情况下(至少在我的 18.04 安装中)似乎未设置。尽管可能有更好的解决方案,但我看不出有什么理由不应该简单地将
bash
函数复制到zsh
(当然要适当更改名称):您可以将定义放在您的
~/.zshrc
或其他适当的初始化文件中。