【问题标题】:zsh: completion menu. How to place common part of names?zsh:完成菜单。如何放置名称的公共部分?
【发布时间】:2012-06-29 04:10:36
【问题描述】:

我在我的 zsh 中配置了完成菜单。效果很好,没问题。

现在我想让我的 zsh 像这样:

假设一个目录中有 3 个文件:

  1. somefile_first
  2. somefile_second
  3. somefile_third

现在,当我按下 [TAB] 时,我会看到完成菜单,其中包含放置在命令行中的第一个文件。 但我希望 zsh 完成文件名的公共部分(在本例中为 somefile_),not 在公共部分之后放置任何其他内容,然后让我导航通过完成菜单。

我该怎么做?

【问题讨论】:

    标签: zsh tab-completion


    【解决方案1】:

    我意识到这个问题很老,但是在寻找相同的答案时我偶然发现了它。这是我发现的。

    AFAIK 使用完成菜单时 zsh 将始终在命令行中突出显示完成。但是你可以让它不那么仓促。

    unsetopt menucomplete
    setopt automenu
    

    改变行为,所以

    • 第一个TAB完成公共部分
    • 第二个列出完成而不更改命令行
    • 第三次启动菜单并以突出显示的完成完成命令行

    如果你更喜欢没有命令行更改而不是花哨的菜单取消设置自动菜单:

    unsetopt menucomplete automenu
    

    这提供了类似 bash 的完成。仅完成共同部分并列出命题。

    【讨论】:

    • 由于某种原因没有生效。
    • 在这些行之前添加 autoload -Uz compinitcompinit 会改变什么吗?
    猜你喜欢
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-09
    • 1970-01-01
    • 2012-01-08
    相关资源
    最近更新 更多