zsh no modo vi, mas usando as teclas de seta para pesquisar o histórico

1

Quando o modo vi está habilitado para zsh ( bindkey -v ) se houver qualquer maneira para pesquisar a história de acordo com o modo regular, ou seja, escrevendo algumas letras e pressionando os para cima / baixo teclas de seta?

Eu acho isso muito mais rápido do que pressionar escape, então ? , digitar algumas letras, pressionar Enter em seguida, usando n para rolar ao longo dos jogos.

Além disso, parece que a pesquisa no modo vi corresponde a qualquer lugar no comando, eu só quero combinar no início do comando, como busca regular com as teclas de seta.

    
por Kris 11.09.2018 / 10:19

1 resposta

0

Note que você está discutindo diferentes metodologias de pesquisa aqui:

A pesquisa “the vi way” com / ou ? irá procurar por comandos inteiros armazenados no histórico.

O que você quer que as teclas de seta para cima e para baixo façam é algo diferente: você quer que eles iterem através de itens armazenados no histórico que correspondem (no início) ao que você já digitou na linha de comando.

Sem entrar em muitos detalhes, o seguinte deve ser uma maneira bastante infalível de alcançar isso:

autoload -Uz history-search-end

zle -N history-beginning-search-backward-end history-search-end
zle -N history-beginning-search-forward-end history-search-end

bindkey -M vicmd '^[[A' history-beginning-search-backward-end \
                 '^[OA' history-beginning-search-backward-end \
                 '^[[B' history-beginning-search-forward-end \
                 '^[OB' history-beginning-search-forward-end
bindkey -M viins '^[[A' history-beginning-search-backward-end \
                 '^[OA' history-beginning-search-backward-end \
                 '^[[B' history-beginning-search-forward-end \
                 '^[OB' history-beginning-search-forward-end
    
por 01.11.2018 / 09:43

Tags