В vim в insert
режиме, если я нажимаю CTRL+V, я попадаю в то, что известно как , x mode (^[,^D...)
и когда я нажимаю клавишу (например, клавишу Escape), я получаю ^[
или что-то еще, что начинается с ^
. Он также становится зеленым в моем редакторе.
Что это такое и для чего это используется?
решение1
От: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.
TheСтраница руководства 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этом случае не имеет никакого эффекта, Vim видит то же самое, что и при нажатии CtrlV. Попробуйте CtrlVCtrlVи CtrlVCtrlShiftV.