Come rimuovere l'estensione del file in un completamento ZSH?
-
21-09-2019 - |
Domanda
Voglio regolare ZSH in modo da poter completare la scheda:
myprog <tab>
usando tutti *.foo
file in ~/somedir
, ma fallo in modo che li mostri senza il .foo
estensione.
C'è un modo per fare questo?
Questo è quello che ho finora:
#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
Tuttavia, questo visualizza il doppio dell'output per ogni file (ovvero ciascuno .foo
Il file è elencato con e senza la sua estensione). C'è un modo per aggirare questo?
Soluzione
Credo che tu debba impostare il file-patterns
stile, probabilmente usando '%p:globbed-files'
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow