Como ligar a seta em ~ / .inputrc (readline) para o modo de inserção vim?

2

Quando em aplicativos Readline com o modo vim ativado em ~ / .inputrc ( set editing-mode vi ) existe uma maneira de vincular a chave de%% vo_de% no modo <Up> ? Para exibir o item de histórico anterior, por exemplo. Parece que tenho que pressionar a tecla ESC primeiro, só então funciona.

Aqui está minha tentativa de fazer isso 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

Observe também que, quando eu pressiono vi-insert e, em seguida, Ctrl+v , ele imprime <Up> .

Consegui que funcionasse como queria no zsh: link

    
por Paweł Gościcki 12.10.2012 / 10:53

1 resposta

0

O que você quer funciona em bash já: Eu posso usar a seta para cima para exibir o item de histórico anterior no modo de inserção de vi. O comando a seguir mostra como ele está configurado. Talvez você esteja confundindo history-search-backward com 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)
    
por 18.10.2012 / 22:35