假设我的.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
设置启用子字符串匹配,但我无法在我的系统上使用这些设置。