como fazer com que ctrl + p se comporte exatamente como a seta para cima no zsh?

15

Primeiro de tudo, estou usando zsh e oh-my-zsh com quase nenhuma outra personalização.

No zsh, quando pressiono a seta para cima, ele traz os últimos comandos. E se eu digitar alguns caracteres antes de pressionar a seta para cima, ele trará o comando mais recente começando com esses caracteres. É um recurso bastante útil, pois emito muitos comandos git / vim / scp como alternativa.

Mas agora estou mudando para um teclado sem as teclas de seta e costumo usar ctrl+ em pvez da seta para cima para completar o histórico. No entanto, não importa quantos caracteres eu digitei antes de pressionar ctrl+ p, ele sempre trará o comando mais recente (não o mais recente começando com esses caracteres)

Como devo configurar o zsh (ou oh-my-zsh) para corrigir isso?

Gordon Gao
fonte

Respostas:

18
bindkey "^P" up-line-or-search
Michael Wild
fonte
Muito obrigado! Vou arquivar um problema no oh-my-zsh para adicioná-lo ao seu lib / keybinding.zsh padrão.
Gordon Gao
4
Você pode adicionar bindkey "^N" down-line-or-searchtambém para obter consistência.
ejoubaud
6
bindkey -e

Isso usa as combinações de teclas do emacs e parece funcionar para mim.

Noturno
fonte
No seu arquivo shell rc, ~/.zshrc se você definir export EDITOR=vim, também a ligação de teclas no shell será alterada para vim. Neste caso, a ligação chave set manualmente para o modo emacs porbindkey -e
MutantMahesh