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

问题描述

假设我的z <- vector(mode="list",length = length(x)) for(i in 1:length(x)){ for(j in 1:length(y)){ z[[i]] <- x[[i]] if(names(y)[j] %in% names(x[[i]])){ z[[i]][[names(y)[j]]] <- c(x[[i]][[names(y)[j]]],y[[j]]) }else{ } names(z) <- names(x) } } 中有以下内容

.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 配置文件之一中有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设置启用子字符串匹配,但是我无法在我的系统上使用任何子字符串匹配。