emacs-mode e vi-mode são apenas diferentes presets de ligações de teclas. Qualquer widget pode ser ligado em qualquer modo.
Os widgets em questão aqui são history-beginning-search-backward (presumivelmente para ↑ ) e history-beginning-search-forward (para ↓ ).
Para ligá-los às teclas para cima e para baixo no modo vicmd , você só precisa executar
bindkey '^[[A' history-beginning-search-backward
bindkey '^[[B' history-beginning-search-forward
- Nota 1: Isso substitui a configuração padrão para essas chaves.
-
Nota 2:
^[[Ae^[[Bpodem não ser os códigos corretos para o seu terminal.- ou Encontre os corretos pressionando Ctrl + v seguido pela chave em questão.
-
ou use a matriz associativa
terminfopara recuperar a ligação correta (graças a Stéphane Chazelas por seu comentário sobre isso):bindkey "$terminfo[kcuu1]" history-beginning-search-backward bindkey "$terminfo[kcud1]" history-beginning-search-backwardkcuu1ekcud1são os nomes de capacidade para ↑ e ↓ , respectivamente. Você pode obter uma lista de possíveis recursos e seus nomes naterminfo(5)manpage (man 5 terminfo). O array associativoterminfousa os nomes da coluna "Cap-name" como chaves.