zsh 完成 - 自定义脚本结果的子字符串
zsh completion - substring on results from custom script
假设我的 .zshrc
中有以下内容:
hello() {
echo "Hello !"
}
hello_list() {
echo "foo"
echo "bar"
echo "foobar"
echo "foobar"
}
_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 这让我想到了这个。 link 表示您可以使用 zstyle
设置启用子字符串匹配,但我无法在我的系统上使用这些设置。
假设我的 .zshrc
中有以下内容:
hello() {
echo "Hello !"
}
hello_list() {
echo "foo"
echo "bar"
echo "foobar"
echo "foobar"
}
_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 这让我想到了这个。 link 表示您可以使用 zstyle
设置启用子字符串匹配,但我无法在我的系统上使用这些设置。