【问题标题】:Customizing zsh auto complete自定义 zsh 自动完成
【发布时间】:2015-12-03 18:17:36
【问题描述】:

我决定试试 zsh。首先,我将描述事情现在是如何工作的,然后我将描述我希望它们如何工作。

假设我在当前文件夹中有 2 个子文件夹,第一个“文档”,第二个“下载”。

  1. 如果我键入“cd D”并按 TAB,它将自动完成“Do”。

  2. 再次按 TAB,它将自动完成“文档”。

  3. 再次按 TAB,它将自动完成“下载”。

  4. 再次按 TAB,它会自动完成“文档”(我很欣赏它不会像 Bash 那样回到“执行”)。

  5. 此时我必须按两次 Enter 才能更改目录。 (第一个 Enter 选择“文档”,第二个执行命令)。

我希望 zsh 的行为方式:

  1. 如果我键入“cd D”并按 TAB,我想使用“文档”自动完成。
  2. 再次按 TAB,应该会自动完成“下载”。
  3. 再次按 TAB,应使用“文档”自动完成。
  4. 按 Enter 键一次,目录应更改为“Documents”。

我该怎么做? :-)

【问题讨论】:

    标签: linux bash command-line autocomplete zsh


    【解决方案1】:

    哇,一年了,没有回复。我希望你知道怎么做,但是对于其他可能通过搜索发现的人......

    首先确保你已经用这一行加载了完成模块

    zmodload zsh/complist
    

    然后您可以在 menuselect 期间将 Enter (又名 ^M)绑定到函数 accept-line - 这是正常行为 - 但通过在它前面加上一个点,如果强制它在函数之前离开 menuselect 模式执行

    bindkey -M menuselect '^M' .accept-line
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2012-01-26
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多