Gostaria de um tcsh'ism que não consegui encontrar: Em uma linha em branco sem conteúdo, quero pressionar a tecla Tab e ver o equivalente a ls. Ou seja, eu quero
$ <tab>
para fazer outra coisa além de me dar uma \ t. Encontrei recursos fantásticos para a conclusão de comandos, mas não para este caso base. Qualquer ajuda nisso seria ótimo! Obrigado.
shell
configuration
zsh
kristopolous
fonte
fonte
O comportamento de Tabno início de uma linha é controlado pelo estilo . No entanto, existem apenas dois comportamentos suportados:
insert-tab
zstyle ':completion:*' insert-tab false
zstyle ':completion:*' insert-tab true
zstyle ':completion:*' insert-tab pending[=N]
Se você apenas deseja concluir os comandos nessa posição,
zstyle ':completion:*' insert-tab true
fará. Se você quiser algo diferente, como listar os arquivos no diretório atual, precisará modificar_main_complete
.Um tópico recente na lista zsh-workers discutido
insert-tab
.fonte
_main_complete
faz parte do código zsh que implementa a conclusão. Está naCompletion/Base/Core/_main_complete
árvore de origem, normalmente instalada em um local como/usr/share/zsh/functions/Completion/Base/_main_complete
.-command-
não faz com que <Tab> liste os arquivos no diretório atual. Tudo o que você fez foi restringir as correspondências para omitir os nomes dos comandos. Mas apenas as coisas que seriam concluídas nesta posição são listadas, portanto não os arquivos no diretório atual (somente diretórios e executáveis dependendo deautocd
ePATH
).Aqui está a implementação completa da lista automática do tcsh no zsh, quando você pressiona tab na linha vazia
Aqui está:
Se você deseja emular o tcsh mais de perto, adicione-o ao seu .zshrc:
fonte
Eu escrevi este widget zsh que aprimora o uso do TAB, não apenas em uma linha vazia, mas também enquanto você digita um comando.
Ele pode ser configurado para incluir "cd" ou "./" nesses casos com uma variável global.
export TAB_LIST_FILES_PREFIX
fonte