Apa yang dilakukan CTRL + V dalam vim?

12

Dalam vim saat dalam insertmode, jika saya menekan CTRL + V saya dilemparkan ke dalam apa yang dikenal sebagai x mode (^[,^D...)dan ketika saya menekan tombol (misalnya tombol escape) saya berakhir dengan ^[atau sesuatu yang lain yang dimulai dengan ^. Itu juga berubah hijau di editor saya.

Untuk apa ini, dan untuk apa ini digunakan?

Leandand00
sumber
Apakah Anda yakin itu Vim? Ctrl+V(tanpa shift) memiliki arti di beberapa emulator terminal. Mungkin beri tahu kami terminal apa yang Anda gunakan.
grochmal
@ grochmal Ini vim di Ubuntu 16.04
leeand00

Jawaban:

15

Dari :h i_CTRL-V( i_mode penyisipan yang ditunjukkan):

                                                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.

Jadi, ketika Anda melakukannya ^v Esc, Anda benar-benar memasukkan Esckarakter ke dalam teks - Vim tidak akan melakukan apa pun yang biasanya dilakukan. The Esckarakter biasanya direpresentasikan sebagai ^[, yang ^makhluk Ctrl, dan menekan Ctrl[biasanya akan membuat Anda setara dengan menekan Esc.

The Ubuntu ASCII manualnya berguna dalam memvisualisasikan pemetaan:

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    [

Dalam Shifthal ini tidak memiliki efek, Vim melihat hal yang sama seperti saat menekan CtrlV. Coba CtrlVCtrlVdan CtrlVCtrlShiftV.

muru
sumber