有没有人可以解释 Ctrl + i 和 Tab 键发送相同代码的原因是什么?
由于"历史原因"。
例如,这个事实可能会影响vim的行为以及一些绑定,例如question。
答案 0 :(得分:2)
我认为这与Tab在ascii中的编码方式有关。
如果我们查看这个ascii table和ascii的手册页(下面复制)
Oct Dec Hex Char Oct Dec Hex Char
────────────────────────────────────────────────────────────────────────
000 0 00 NUL '\0' 100 64 40 @
001 1 01 SOH (start of heading) 101 65 41 A
002 2 02 STX (start of text) 102 66 42 B
003 3 03 ETX (end of text) 103 67 43 C
004 4 04 EOT (end of transmission) 104 68 44 D
005 5 05 ENQ (enquiry) 105 69 45 E
006 6 06 ACK (acknowledge) 106 70 46 F
007 7 07 BEL '\a' (bell) 107 71 47 G
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
我们可以看到tab是ascii字符集中的第9个字符(十进制)。可以使用字母表中的控件和第i个字母来键入每个非打印字符。由于我是字母<C-I>
中的第9个字母,因此是Tab。这也是回车显示为^M
的原因。
至于为什么vim对待他们是一样的。很久以前,为此目的使用控制键很重要。