zsh autocompletar o caractere curinga na rede

3

Um dos meus recursos favoritos do zsh é o autocomplete, especialmente quando estou preenchendo um nome de arquivo em uma máquina em rede. Mas como incluir curingas (como *) e ter autocompletar a máquina remota?

Por exemplo, digamos que eu tenha file1, file2 e file3 residindo em um servidor; Eu quero copiar todos esses arquivos para a minha máquina local, então eu entro

scp server:~/fi<tab>

zsh então preenche corretamente para

scp server:~/file

mas quando tento curinga

scp server:~/file*<tab>

tudo o que faz beep para mim (funciona corretamente se os caminhos dos arquivos são locais). Existe um conjunto de opções de zsh que faz este trabalho?

    
por randallmeadows 19.01.2011 / 22:44

2 respostas

0

Acho que a configuração de GLOB_COMPLETE deve mudar isso.

setopt GLOB_COMPLETE

De man zshoptions :

GLOB_COMPLETE

When the current word has a glob pattern, do not insert all the words resulting from the expansion but generate matches as for completion and cycle through them like MENU_COMPLETE. The matches are generated as if a ‘*’ was added to the end of the word, or inserted at the cursor when COMPLETE_IN_WORD is set. This actually uses pattern matching, not globbing, so it works not only for files but for any completion, such as options, user names, etc.

Note that when the pattern matcher is used, matching control (for example, case-insensitive or anchored matching) cannot be used. This limitation only applies when the current word contains a pattern; simply turning on the GLOB_COMPLETE option does not have this effect.

    
por 29.05.2012 / 08:19
0

Por alguma razão, você tem que escapar do caractere glob quando usado no caminho remoto em scp / ssh.

scp server:~/file\*<tab>

Isto também é verdade se você quiser, digamos, scp através de um monte de arquivos usando um glob (ao invés de fazer a conclusão do glob), por exemplo.

scp server:~/files/project.\* ~/localdir
    
por 17.02.2013 / 19:10