O que o CTRL + V faz no vim?

5

No vim, enquanto no modo insert , se eu pressionar CTRL + V, serei lançado no que é conhecido como x mode (^[,^D...) e quando pressiono uma tecla (a chave de escape, por exemplo) acabo com ^[ ou algo mais que comece com ^ . Também fica verde no meu editor.

O que é isso e para que é usado?

    
por leeand00 24.05.2017 / 03:20

1 resposta

9

De :h i_CTRL-V (o i_ indica o modo de inserção):

                                                i_CTRL-V
CTRL-V          Insert next non-digit literally.  For special keys, the
                terminal code is inserted.  It's also possible to enter the
                decimal, octal or hexadecimal value of a character
                i_CTRL-V_digit.
                The characters typed right after CTRL-V are not considered for
                mapping.  {Vi: no decimal byte entry}
                Note: When CTRL-V is mapped (e.g., to paste text) you can
                often use CTRL-Q instead i_CTRL-Q.

Então, quando você faz ^v Esc , você está literalmente digitando o caracter Esc no texto - o Vim não fará o que normalmente faz. O caractere Esc é geralmente representado como ^[ , o ^ sendo Ctrl , e pressionando Ctrl [ Geralmente você obterá o equivalente a pressionar Esc .

A página de manual ASCII do Ubuntu é útil para visualizar o mapeamento:

010   8     08    BS  '\b' (backspace)        110   72    48    H
011   9     09    HT  '\t' (horizontal tab)   111   73    49    I
012   10    0A    LF  '\n' (new line)         112   74    4A    J
013   11    0B    VT  '\v' (vertical tab)     113   75    4B    K
014   12    0C    FF  '\f' (form feed)        114   76    4C    L
015   13    0D    CR  '\r' (carriage ret)     115   77    4D    M
...
033   27    1B    ESC (escape)                133   91    5B    [

A Shift neste caso não tem efeito, o Vim vê a mesma coisa quando pressiona Ctrl V . Tente Ctrl V Ctrl V e Ctrl V Ctrl Deslocamento V .

    
por 24.05.2017 / 04:03