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



有人能解释Ctrl+iTab键发送相同代码的原因吗
我只能想这是因为"历史原因"。

例如,这个事实可能会影响vim的行为,比如这个问题中的一些绑定。

我认为这与Tab在ascii中的编码方式有关。

如果我们看看这个ascii表和ascii的手册页(复制如下)

Oct   Dec   Hex   Char                        Oct   Dec   Hex   Char
────────────────────────────────────────────────────────────────────────
000   0     00    NUL ''                    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个字母来键入。由于I是字母表中的第9个字母,<C-I>是Tab。这也是回车显示为^M的原因。

至于vim为什么对他们一视同仁。这可能是很久以前的遗留问题,当时使用控制键是很重要的。

最新更新