哦,我的zsh完成-自定义脚本结果的子字符串



假设我的.zshrc:中有以下内容

hello() { 
echo "Hello $1!" 
}
hello_list() {
echo "${1}foo"
echo "${1}bar"
echo "foo${1}bar"
echo "foobar${1}"
}
_hello() { 
compadd $(hello_list ${words[2]})
} 
compdef _hello hello

如果我键入hello bob<TAB>,我得到:

bobbar  bobfoo

从我对文档的阅读来看,我认为这是因为我在许多ohmyzsh配置文件中的一个文件中有zstyle ':completion:*' matcher-list ''

当我按下tab键时,如何获得基于子字符串匹配显示的列表?我真的很难理解这些文档。

尝试将_hello更改为:

_hello() { 
compadd -M 'l:|=* r:|=*' $(hello_list ${words[2]})
}

我无意中发现了6.7.5节中的一些注释:http://zsh.sourceforge.net/Guide/zshguide06.html这让我想到了这一点。该链接表明您可以使用zstyle设置启用子字符串匹配,但我无法在我的系统上使用这些设置。

最新更新