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?

È stato utile?

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
scroll top