Как удалить расширение файла в завершении ZSH?
-
21-09-2019 - |
Вопрос
Я хочу настроить ZSH, чтобы я мог завершить вклад:
myprog <tab>
используя все *.foo
файлы в ~/somedir
, но есть это так, чтобы он отображал их без а .foo
расширение.
Есть какой-либо способ сделать это?
Это то, что у меня есть до сих пор:
#compdef myprog
typeset -A opt_args
local context state line
local -a mydirs
mydirs="(. ~/somedir)"
_arguments -s -S \
"*:name:->foos" \
&& return 0
case $state in
(foos)
_files -W ${mydirs} -g '*.foo(:r)' && return 0
;;
esac
return 1
Однако это отображает удвоение вывода для каждого файла (то есть каждый .foo
Файл перечислен с и без его расширения). Есть ли способ обойти это?
Решение
Я считаю, что вам нужно установить file-patterns
стиль, вероятно, используя '%p:globbed-files'
.
Не связан с StackOverflow