O uso de ctrl + c ao invés de esc para sair do modo de inserção quebra qualquer coisa no vi?

15

Ao usar o vi, você pode sair do modo de inserção com Ctrl + C ao invés do mais tradicional Esc . Há alguma situação em que seria indesejável usar para o ex em vez do segundo? Isso quebra alguma coisa além das melhores práticas?

    
por MDMarra 02.11.2012 / 13:53

3 respostas

9

Ctrl-C e Esc não são iguais em vi / vim na maioria dos modos, incluindo o modo de inserção. A diferença é que Esc aciona abreviações, enquanto Ctrl-c não faz isso. Se isso é importante para você depende se você ou qualquer plug-in que você usa faz uso de abreviações.

Note que é mais seguro assumir que Esc e Ctrl-C do não significam a mesma coisa em vim . Outro exemplo deste mesmo site é ao sair do modo de inserção de bloco (não em vi ).

    
por 02.11.2012 / 14:45
3

Eu acho que você quer dizer vim , não vi .

Isso realmente funciona em vim , embora eu não a usasse a menos que tivesse 100% de certeza de que nunca tocaria em um sistema operacional não-Linux, nunca. O motivo é que outros SOs podem ter suas próprias implementações de vi , que não implementam isso, e você pode descobrir que ao executar vi nessas plataformas, o Ctrl-C tem seu próprio comportamento tradicional: interromper o processo e deixar seu terminal em um estado estranho.

    
por 02.11.2012 / 13:59
1

Se você está se referindo a vim , há uma pequena diferença. CTRL-C não verifica as abreviações e não aciona o evento InsertLeave . Então, você ou os plugins definiram quaisquer instruções autocmd que dependam de InsertLeave , elas não serão acionadas.

A partir da documentação oficial link :

<Esc> or CTRL-[ End insert or Replace mode, go back to Normal mode.  Finish
                abbreviation.

CTRL-C          Quit insert mode, go back to Normal mode.  Do not check for
                abbreviations.  Does not trigger the InsertLeave autocommand
                event.

Você pode definir um mapeamento para CTRL-C para <esc> e, em seguida, acionará InsertLeave .

    
por 08.06.2018 / 03:35

Tags