Assumindo que a guia seja esmagada após stuff
em ambos os casos
% ls
bar foo.txt
% whence stuff
% alias stuff=less
% zstyle ':completion:*:*:stuff:*' file-patterns '*.txt:all-files'
% stuff
bar foo.txt
um botão relevante de zshoptions(1)
é
COMPLETE_ALIASES
Prevents aliases on the command line from being internally sub-
stituted before completion is attempted. The effect is to make
the alias a distinct command for completion purposes.
então
% setopt COMPLETE_ALIASES
% stuff foo.txt
caso contrário, o alias já é outra coisa.
Para verificar os efeitos colaterais, devemos confirmar que essa alteração não interrompe a conclusão em aliases para os quais não há conclusão ou configuração de estilo,
% setopt COMPLETE_ALIASES
% whence foo
% unfunction _foo
unfunction: no such hash table element: _foo
% alias foo=ls
% foo (eval):1: command not found: _foo
com COMPLETE_ALIASES
definido, talvez seja necessário configurar as conclusões para cada alias ou listar ou incluir os nomes de alias no compdef
, por exemplo,
% compdef _ls foo
% foo
...
Por outro lado, acho que exec
wrappers são bastante elegantes, já que eles podem ser chamados por exec(3)
ou system(3)
sem a necessidade de carregar um shell grande ou poluir o que deveria ser uma simples chamada de sistema com configuração de shell interativa.