Ctrl + I和Tab键发送相同代码的原因是什么?

时间:2014-04-24 02:50:01

标签: vim terminal keyboard

有没有人可以解释 Ctrl + i Tab 键发送相同代码的原因是什么?
由于"历史原因"。

,我只能弄清楚它

例如,这个事实可能会影响vim的行为以及一些绑定,例如question

1 个答案:

答案 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对待他们是一样的。很久以前,为此目的使用控制键很重要。