自定义zsh自动完成

时间:2014-03-06 12:32:40

标签: linux bash command-line autocomplete zsh

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

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

  1. 如果我输入“cd D”并按TAB键,它将自动以“Do”结束。

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

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

  4. 再次按TAB,它将自动完成“Documents”(我很欣赏它在这里不会像Bash那样回到“Do”)。

  5. 此时我必须按两次Enter键才能更改目录。 (首先输入以选择“文档”,然后输入第二个以执行命令)。

  6. 我希望zsh表现如何:

    1. 如果我输入“cd D”并按TAB键,我想自动填写“文档”。
    2. 再次按TAB键,应自动完成“下载”。
    3. 再次按TAB键,应自动填写“文档”。
    4. 按Enter键一次,目录应更改为“Documents”。
    5. 我该怎么做? : - )

1 个答案:

答案 0 :(得分:3)

哇,一年没有回复。我希望你能找到怎样的方法,但对于那些可能通过搜索找到这个问题的人来说......

首先确保您已使用此行加载完成模块

zmodload zsh/complist

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

menuselect