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:
^[[A
e^[[B
podem 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
terminfo
para 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-backward
kcuu1
ekcud1
sã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 associativoterminfo
usa os nomes da coluna "Cap-name" como chaves.