Copie e cole isso no seu .zshrc
:
Os cursores estão usando o histórico local:
bindkey "${key[Up]}" up-line-or-local-history
bindkey "${key[Down]}" down-line-or-local-history
up-line-or-local-history() {
zle set-local-history 1
zle up-line-or-history
zle set-local-history 0
}
zle -N up-line-or-local-history
down-line-or-local-history() {
zle set-local-history 1
zle down-line-or-history
zle set-local-history 0
}
zle -N down-line-or-local-history
Se você também precisar de ligações de teclas ( CTRL+ cursores) para percorrer o histórico global, adicione também isso ao seu .zshrc
:
bindkey "^[[1;5A" up-line-or-history # [CTRL] + Cursor up
bindkey "^[[1;5B" down-line-or-history # [CTRL] + Cursor down
Para fazer isso funcionar, a opção SHARE_HISTORY (consulte 16.2.4 Histórico ) precisa estar ativada. Execute setopt
e verifique se "sharehistory" está listado. Se não adicionar setopt sharehistory
ao seu .zshrc
. Então, pode-se usar set-local-history como fizemos acima. A documentação diz:
Por padrão, os comandos de movimento do histórico visitam as linhas importadas e as linhas locais, mas você pode ativar e desativar isso com a ligação set-local-history zle. Também é possível criar um widget zle que fará com que alguns comandos ignorem os comandos importados e alguns os incluam.
Observe que, por padrão, o histórico global é usado (e todas as funções terminam com "zle set-local-history 0", ou seja, o histórico local está desativado). Então, pressionar CTRL+ Rprocurará o histórico global por padrão (o que faz sentido na maioria dos casos).
Isso é bastante semelhante à solução do @mpy, mas está pronto para copiar e colar. Sobrescreve as teclas do cursor para cima e para baixo. Eu usei essa entrada da lista de emails .
Veja também: