¿Cómo atar la flecha hacia arriba en ~ / .inputrc (readline) para el modo de inserción vim?

3

Cuando en las aplicaciones Readline con el modo vim habilitado en ~ / .inputrc ( set editing-mode vi), ¿hay alguna manera de vincular la <Up>tecla de flecha en el vi-insertmodo? Para mostrar el elemento del historial anterior, por ejemplo. Parece que tengo que presionar la tecla ESC primero, solo luego funciona.

Aquí está mi intento de hacerlo funcionar (~ / .inputrc):

$if mode=vi
  # INSERT MODE
  set keymap vi-insert
  "\e[A": history-search-backward # up-arrow
  "\e[B": history-search-forward  # down-arrow

También tenga en cuenta que cuando presiono Ctrl+vy luego <Up>, se imprime ^[[A.

Logré que funcione como quiero en zsh: http://paulgoscicki.com/archives/2012/09/zsh-vi-mode-with-emacs-keybindings/

Paweł Gościcki
fuente

Respuestas:

0

Lo que desea bashya funciona: puedo usar la flecha hacia arriba para mostrar el elemento del historial anterior en modo vi-insert. El siguiente comando muestra cómo está configurado. Tal vez estás confundiendo history-search-backwardcon history-prev?

$ bind -m vi-insert -p | grep hist
# beginning-of-history (not bound)
# dynamic-complete-history (not bound)
# end-of-history (not bound)
"\C-s": forward-search-history
# history-and-alias-expand-line (not bound)
# history-expand-line (not bound)
#  (not bound)
# history-search-forward (not bound)
"\eOB": next-history
"\e[B": next-history
# non-incremental-forward-search-history (not bound)
# non-incremental-forward-search-history-again (not bound)
# non-incremental-reverse-search-history (not bound)
# non-incremental-reverse-search-history-again (not bound)
"\eOA": previous-history
"\e[A": previous-history
"\C-r": reverse-search-history
# vi-fetch-history (not bound)
Martin Vidner
fuente
Estás confundiendo READLINE con shell. No tengo problemas para configurar el comportamiento deseado en mi shell de elección, que es zsh. Tengo problemas con las aplicaciones Readline, como la consola Postgresql, IRB, etc.
Paweł Gościcki