Що робить CTRL + V in vim?


13

У режимі vim, перебуваючи в insertрежимі, якщо я натискаю CTRL + V, я кидаюсь на те, що відомо, як x mode (^[,^D...)і коли натискаю клавішу (наприклад, клавіша втечі), я закінчую ^[або щось інше, що починається з ^. Він також зелений у моєму редакторі.

Що це, і для чого він використовується?


Ви впевнені, що це Вім? Ctrl+V(без зсуву) має таке значення в декількох емуляторах терміналів. Можливо, скажіть, який термінал ви використовуєте.
грочмал

@grochmal Це vim в Ubuntu 16.04
leeand00

Відповіді:


15

З :h i_CTRL-V( i_вказує режим вставки):

                                                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.

Отже, коли ви це робите ^v Esc, ви буквально вводите Escперсонажа в текст - Vim не буде робити все, що зазвичай робить. EscХарактер, як правило , видається в вигляді ^[, в ^істота Ctrl, і натискання Ctrl[буде зазвичай вам еквівалент натискання Esc.

Сторінка Ubuntu ASCII корисна для візуалізації відображення:

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    [

У Shiftцьому випадку немає ефекту, Вім бачить те саме, що і при натисканні CtrlV. Спробуйте CtrlVCtrlVі CtrlVCtrlShiftV.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.