Que fait CTRL + V dans vim?

12

Dans vim en insertmode, si j'appuie sur CTRL + V, je suis jeté dans ce que l'on appelle x mode (^[,^D...)et lorsque j'appuie sur une touche (la touche d'échappement par exemple) je me retrouve avec ^[ou quelque chose qui commence par ^. Il devient également vert dans mon éditeur.

Qu'est-ce que c'est et à quoi sert-il?

leeand00
la source
Êtes-vous sûr que c'est Vim? Ctrl+V(sans le décalage) a cette signification dans plusieurs émulateurs terminaux. Peut-être dites-nous quel terminal vous utilisez.
grochmal
@grochmal C'est vim dans Ubuntu 16.04
leeand00

Réponses:

15

De :h i_CTRL-V( i_indique le mode d'insertion):

                                                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.

Ainsi, lorsque vous le faites ^v Esc, vous entrez littéralement le Esccaractère dans le texte - Vim ne fera pas ce qu'il fait habituellement. Le Escpersonnage est généralement représenté par ^[l' ^être Ctrlet le fait d'appuyer vous Ctrl[donnera généralement l'équivalent du fait d'appuyer Esc.

La page de manuel Ubuntu ASCII est utile pour visualiser le mappage:

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    [

Dans Shiftce cas, cela n'a aucun effet, Vim voit la même chose que lorsque vous appuyez sur CtrlV. Essayez CtrlVCtrlVet CtrlVCtrlShiftV.

muru
la source