O que o keymap “vi-move” no modo vi do Bash realmente faz?

0

A seção de mapa de teclado no Manual de referência do Bash diz que um dos as opções aceitáveis são "vi-move". Não parece haver nenhuma descrição para o que isso corresponde. Estou bem familiarizado com "vi-command" e "vi-insert", mas não consigo encontrar nada sobre "vi-move".

Eu esperava que isso

    
por Pak 18.02.2014 / 03:42

3 respostas

1

diff <(bind -p -m vi-move) <(bind -p -m vi-command) não mostra diferença, então acho que são apenas sinônimos. No entanto, a documentação readline apenas afirma que vi e vi-command são equivalentes e, apesar de mencionar o modo vi no mesmo parágrafo, ele falha em afirmar a equivalência entre os três modos. Então, eu perguntei a Chet Ramey e sua resposta autoritária foi "sim [os três são os mesmos]".

    
por 04.01.2016 / 00:58
0

Pesquisando localmente pelo manual do bash, a string "vi-move" aparece na seção de ligações do VI Mode:

VI Mode bindings
         VI Insert Mode functions

         "C-D"  vi-eof-maybe
         ... <snip>
         "C-["  vi-movement-mode
         ...

Em vim , fazer :help ^[ mostra isso:

                                            i_CTRL-[ i_<Esc>                                                                                              
<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode.  Finish
            abbreviation. 
            Note: If your <Esc> key is hard to hit on your keyboard, train
            yourself to use CTRL-[.

Esta é apenas a chave de transição para ir do modo Insert para o modo Normal, então eu acho que vi-move é basicamente o modo "Normal" no vim. Eu não tenho certeza como isso mapeia para algo útil no Bash, no entanto. Meu keymap mostra vi ou vi-insert dependendo se eu invoco o bash -V digitando-o ou pressionando Esc k CR para reproduzir do histórico.

    
por 18.02.2014 / 06:31
0

vi-move , vi-command e vi são sinônimos para o um e o mesmo keymap (conforme comprovado por @memeplex), e é o único definido como ativo pelo comando vi-movement-mode .

O mapa de teclas vi-insert está ativo pelo comando editing-mode vi ou set -o vi .

Observe que em bash v4.3.11 (1), a execução do comando vi-movement-mode quando o mapa de teclado emacs está ativo não altera o prompt se show-mode-in-prompt for on , mas mudar para vi-editing-mode faz. A solução alternativa é aqui .

    
por 17.08.2016 / 09:00