Atualiza dinamicamente a lista de conclusão no zsh

13

Eu acho que as listas de resultados do zsh para a conclusão da Tab são bastante úteis, no entanto eu gostaria de ajustar um pouco seu comportamento:

Eles devem aparecer quando eu Tab pela primeira vez e depois atualizar dinamicamente com cada nova letra adicionada. O comportamento padrão é que as sugestões só são reavaliadas quando você Tab novamente, eu quero salvar este pressionamento repetido de teclas. ( Atualização: Mas apenas liste as conclusões possíveis, ele não deve modificar automaticamente minha linha de prompt real, mesmo se houver apenas uma opção).

Existe alguma maneira de alcançar tal comportamento?

    
por F30 04.03.2012 / 02:41

1 resposta

2

Uma maneira que pode oferecer a solução desejada é incremental-complete-word :

zle -N incremental-complete-word
bindkey '^Xi' incremental-complete-word

Isto carrega a funcao e liga-a a Ctrl - X i . Agora você pode tentar:

> k^Xi
incremental (complete): -no prefix-

Neste exemplo, a letra k foi digitada, seguida por Control-X i.

> kil
incremental (complete): kill       

Eu digitei il e agora havia uma conclusão possível ( kill ). Pode-se aceitar isso e pressionar enter.

> kill^D
incremental (complete): -no prefix-
- external command -
kill      killall   killall5

Digitando Ctrl - D , o zsh mostra completações possíveis.

De zshcontrib(1) :

incremental-complete-word
This allows incremental completion of a word. After starting this command, a list of completion choices can be shown after every character you type, which you can delete with ^H or DEL. Pressing return accepts the completion so far and returns you to normal editing (that is, the command line is not immediately executed). You can hit TAB to do normal completion, ^G to abort back to the state when you started, and ^D to list the matches.

    
por 27.01.2013 / 13:42