Preenchimento automático do estilo X-Code Command-T para zsh

5

Acabei de começar a usar o plugin Command-T para o vim, e isso é incrível. Caso você não tenha ouvido falar, ele permite que você digite algo assim:

Sb

para selecionar Something.hs-boot na lista

src/project/Control/Whatever/Foobs.hs
src/project/Control/Whatever/Something.hs-boot
src/project/Control/Whatever/Something.hs

E assim por diante.

Eu queria saber se eu poderia usar um estilo de autocompletar semelhante com o zsh. Eu entendo que a conclusão do shell não poderia ser tão extensa quanto a conclusão do vim porque a complemento do shell provavelmente não deveria estar pesquisando todo o sistema toda vez que você digita uma letra, mas existe algum tipo de conclusão semelhante onde eu poderia pelo menos tipo

s/p/c/w/Sb<tab>

e obter um efeito semelhante ao acima?

Ouvi dizer que o zsh tem uma funcionalidade de preenchimento automático bem programável, mas meu shell-fu é bastante fraco.

Alguém sabe como configurar isso?

    
por So8res 25.01.2012 / 17:38

2 respostas

1

Para completar caminhos parciais, basta iniciar o sistema de conclusão (pelo menos no meu sistema, usando zsh v4.3.17 ):

autoload -U compinit && compinit
zmodload zsh/complist

Se você quiser ficar um pouco mais chique, pode tornar a correspondência insensível a maiúsculas e minúsculas:

zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

Atualização 1:

Eu não sei se você pode fazer autocompletar no estilo Command-T ... mas como o zsh precisa obter todas correspondências antes de exibir algo, fazendo isso on-the-fly, especialmente em algum lugar que tenha muitos subdiretórios / arquivos, pode não ser viável.

Você pode, no entanto, usar:

**/*thing <Tab>

O ** corresponde a todos os arquivos & subdiretórios do diretório atual.

Idéia: Se não precisar ser uma lista atualizada de arquivos, você poderia escrever uma função de conclusão que usa a saída de locate (isto é, uma saída pré-calculada lista de arquivos)

Atualização 2: link

    
por 03.05.2012 / 10:33
1

Outra alternativa interessante é usar algo como fasd .

    
por 05.05.2012 / 08:48