【发布时间】:2017-08-24 20:04:37
【问题描述】:
我有一个脚本,它接受类似文件的参数(多部分参数),我正在获取可能的值并将它们放入一个名为 raw 的数组中,然后使用
_multi_parts / "(${raw[@]})"
自动完成。问题是这是区分大小写的,我怎样才能让它输入mycommand get fo并按Tab,如果Foo是原始内容之一,它将自动完成到mycommand get Foo/。
完整的完成在这里供参考:
_mycommand() {
local curcontext="$curcontext" state line
_arguments "1: :->command" "*: :->label"
case $state in
command)
_arguments "1: :(add get ls rm)"
;;
*)
case $words[2] in
add|get|ls|rm)
if [ -f ~/.pts ]; then
IFS=$'\n' read -d '' -r raw <<< "$(mycommand ls)"
_multi_parts / "(${raw[@]})"
fi
;;
*)
_files
;;
esac
esac
}
_mycommand "$@"
mycommand ls 输出类似如下名称的路径:
Foo/Bar/x
Foo/Bar/y
Derp/z
Placeholder/z
【问题讨论】:
标签: zsh zsh-completion