zsh - 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
根据我对文档的阅读,我认为这是因为我有zstyle ':completion:*' matcher-list ''
许多ohmyzsh
配置文件之一。
当我按下制表符时,如何获得基于子字符串匹配显示的列表?我真的很难理解文档。
解决方案
尝试更改_hello
为:
_hello() {
compadd -M 'l:|=* r:|=*' $(hello_list ${words[2]})
}
我在这里偶然发现了第 6.7.5 节中的一些注释:http: //zsh.sourceforge.net/Guide/zshguide06.html导致我这样做。该链接表明您可以使用zstyle
设置启用子字符串匹配,但我无法让其中任何一个在我的系统上运行。
推荐阅读
- python - 有一个“这永远不会发生”的声明是一种好习惯吗
- php - PHP:关于清理 json $_POST 的说明
- python - 使用生成器从批量 .npy 文件中训练 Keras 模型?
- ios - UIView 到 UIImage 没有子视图和隐藏
- visual-studio-code - 为什么 vscode 要求保存更改?
- python - 综合组织几个由“或”连接的语句
- javascript - 使用 jest 获取测试
- java - 将 JavaFX ContextMenu 居中在屏幕中间?
- json - “解析 http://localhost:8080/ 期间的 Http 失败”
- c# - 没有“IEnumerable”类型的 ViewData 项
' @Html.DropDownList