【问题标题】:Zsh Package SuggestionZsh 包建议
【发布时间】:2011-03-19 23:55:05
【问题描述】:

我刚刚从 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)

【问题讨论】:

  • 属于 superuser.com
  • 啊,抱歉,我是新来的 :)
  • @Paul R 如果这个包不存在,那么这不是一个编程问题吗? @gastly,如果您找到执行此技巧的脚本的来源,我可以将其移植到 zsh。
  • @ZyX 我找到了解决方案,该功能位于 Ubuntu 中名为“command-not-found”的包中。我只需要将文件“/etc/zsh_command_not_found”中的包和源安装到我的 zshrc 中:)
  • @gastly,您能否将您的解决方案写为答案并接受它,以便知道该问题有正确答案?目前它仍然出现在各种未回答的问题列表中。

标签: zsh apt-get


【解决方案1】:

按照 Michał Politowski 的建议,我将回答我自己的问题并将其标记为已解决 :)

要在 zsh 中获得此功能,请安装一个名为“command-not-found”的包(我不知道其他发行版,但在 Ubuntu 中它位于存储库中)。

注意:在 Ubuntu 12.04 中默认安装此软件包。

sudo apt-get install command-not-found

然后您将需要编辑您的 .zshrc,然后通过在您的 .zshrc 中添加以下行来在文件 /etc/zsh_command_not_found 中获取源代码

来源 /etc/zsh_command_not_found

【讨论】:

  • 只是为了清楚。我已经安装了 command-not-found ,我需要添加的只是以下 to.zshrc source /etc/zsh_command_not_found
【解决方案2】:

在 MacO 上,这是 brew 公式;)

brew tap homebrew/command-not-found

并在~/.zshrc底部添加

HB_CNF_HANDLER="$(brew --repository)/Library/Taps/homebrew/homebrew-command-not-found/handler.sh"
if [ -f "$HB_CNF_HANDLER" ]; then
source "$HB_CNF_HANDLER";
fi

完整参考: https://github.com/Homebrew/homebrew-command-not-found

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    相关资源
    最近更新 更多