Usando / para pesquisar usando o ZSH

1

Eu gosto de pesquisar meu histórico de comandos usando os seguintes atalhos de teclado:

<ESC>/
Type in command fragment<RET>
n => to look backwards in time
N => to go forwards

Isso funciona bem quando você está usando o 'modo vi' no ZSH, mas recentemente adicionei o vim como meu editor padrão no meu arquivo .zshenv. Agora, quando eu pressionar "/", vejo isto:

tom@flanders ~ZSH [master]
± %                          
zsh: do you wish to see all 5226 possibilities (5226 lines)?

Eu encontrei esse atalho que parecia promissor, mas não fez diferença:

bindkey -M vicmd '/' history-incremental-pattern-search-backward

Há algo mais que eu esteja sentindo falta?

    
por Tom Purl 25.07.2012 / 16:02

1 resposta

0

Primeiro, eu acho isso um pouco estranho: por padrão, o zsh usa combos de teclas estilo emacs (escape seguido por uma chave), a menos que esteja no modo vi, ponto no qual os combos de teclas no estilo emacs são Desativado. O zsh também se coloca no modo vi se você usar um editor do tipo vi como seu editor padrão. Então, parece-me que você provavelmente não originalmente no modo vi, até que você editasse seu zshenv.

Então, primeiro eu perguntaria: você tem 100% de certeza de que sempre esteve usando o modo vi? Ou seja, bindkey -e resolve seu problema (tente em um shell aberto)?

Pode ser que você esteja realmente melhor no modo emacs ( bindkey -e ). Por outro lado, pode ser que você gostaria de estar no modo vi, mas seria melhor com algumas ligações de estilo emacs .

Ou, talvez eu esteja completamente errado, e eu deveria focar apenas na sua instrução bind, que está escrita incorretamente.

Em primeiro lugar, a inclusão do bit "vicmd" impede que isso funcione no modo insert (normal): ele só funciona se você primeiro pressiona o escape (sozinho) para sair do modo de inserção modo de comando (como você faria no vim). Então, você não pode pressionar "esc- /" como um acorde (tente pressionar escape, soltá-lo e pressionar "/").

Tente a seguinte ligação:

bindkey '\e/' history-incremental-pattern-search-backward 

Agora você deve ser capaz de pressionar "escape- /" como um acorde e obter os resultados desejados.

    
por 11.01.2013 / 16:30

Tags