_kadmin
é provavelmente uma função completa para a ferramenta kadmin
- não um diretório. Se você tentar a conclusão em algo que zsh
não possa encontrar como um comando, um diretório ou uma conclusão de argumento de comando válida e conhecida, ele começará a oferecer funções de conclusão como possíveis candidatos de expansão. Por padrão, zsh
vem com muitos completadores, muitos dos quais você pode não precisar - existem pacotes configuráveis para AIX, BSD, Cygwin, várias distribuições Linux, etc, e todos são lidos e instalados no shell. Se você tentar uma expansão em algo que o zsh
não possa encontrar, ele terá todas as funções de conclusão instaladas para lhe oferecer.
Você configura zsh
para não oferecer funções complementares, colocando isso em ~/.zshrc
:
zstyle ':completion:*:functions' ignored-patterns '_*'
Recarregue o arquivo e você não deverá mais oferecer funções de conclusão para as ferramentas que você não instalou. Dê uma olhada na% man_de% manpage para (muito) mais detalhes.
EDITAR em resposta ao UPDATE 3
Se zshcompsys
for realmente uma conta de usuário, você poderá configurar _kadmin
para não oferecê-la em conclusões. Parece que a abordagem é listar as contas de usuário que você deseja que o shell considere, o que limita os nomes oferecidos apenas aos listados. A linha zsh
é algo assim:
zstyle ':completion:*' users asgeo1 root
Acho que você pode listar quantos usuários quiser depois da tag zstyle
. O shell só oferecerá os diretórios iniciais desses usuários como conclusões possíveis para a função users
ou interna.
Não sei por que adicionar o nome de usuário aos padrões ignorados no arquivo cd
não funcionou - você recarregou sua configuração depois de fazer a alteração?