Atualmente, tenho o seguinte no meu .zshrc:
bindkey '^[[A' up-line-or-search
bindkey '^[[B' down-line-or-search
No entanto, isso parece corresponder apenas ao conteúdo da minha entrada atual antes que um caractere de espaço ocorra. Por exemplo, sudo ls /
corresponderá a todas as linhas da minha história que começam com sudo
, enquanto eu gostaria que correspondesse apenas às linhas que correspondem a toda a minha entrada. (ou seja sudo ls /etc
, corresponderia, mas não sudo cat /var/log/messages
)
O que preciso mudar para obter o comportamento desejado?
Aqui está todo o meu .zshrc, caso seja relevante: https://gist.github.com/919566
O zsh fornece essa funcionalidade usando
Ex.
Encontre o código exato da tecla
ctrl+vKEY
Ex.
ctrl+ vUP
ctrl+ vDOWN
ctrl+ vPageUp
ctrl+ vPageDown
etc.
fonte
$terminfo[kcuu1]
, <kbd> Abaixo </kbd> é$terminfo[kcud1]
.Este post de 2013 recomenda algumas combinações de teclas que correspondem a todas as palavras antes do cursor.
(Em uma versão anterior desta resposta, eu usei
$terminfo
como recomendado em um dos comentários na postagem do blog. Alguns valores terminfo estão listados aqui .)fonte
/etc/zsh/zshrc
, como$key[Up]
.$terminfo
você precisará alterar os modos do terminal. Veja aqui .$key[]
vez de$terminfo[]
. Espero que isso funcione bem para os leitores!Veja também o projeto zsh-history-substring-search .
Ele oferece o que você está procurando e pode até ser usado como um plugin oh-my-zsh.
fonte