问题中有一些模棱两可,这可能表明实际问题。vim 接受该绑定以k0
假设它是一个功能键。
大多数键盘,您会看到以 开头的数字功能键1
,一些终端描述将功能键 1 等同于k0
,少数将其等同k0
于功能键 10。也可能有人认为这是数字小键盘的一部分,但不太可能(因为键盘使用与功能键不同的字符序列)。
假设您使用了了解功能键的终端描述。vt100 终端描述没有这样做,因为 vt100 没有功能键(除了PF1通过PF4哪些功能键或不通过哪些功能键取决于您与谁交谈)。但是,如果您有TERM=vt100
,则可以根据终端描述识别某些数字键盘(例如,请参见vt100+fnkeys
描述上方的冗长注释)。
TERM=xterm
然而,它不在。
您忽略的是 vim(也许有帮助)使用其内置的 termcaps 修改终端描述。它使用这样的表条目识别PF1等:
{K_XF1, IF_EB("\033O*P", ESC_STR "O*P")},
{K_XF2, IF_EB("\033O*Q", ESC_STR "O*Q")},
{K_XF3, IF_EB("\033O*R", ESC_STR "O*R")},
{K_XF4, IF_EB("\033O*S", ESC_STR "O*S")},
但是编号键没有条目;没有钥匙"\033O*p"
。0
如果 vim (在终端描述中)有k0
,并且您没有将其映射到任何东西,vim 会将其视为文字0
。等也会发生同样的情况k1
,实际上将功能键和数字键盘视为同一事物。
对于它的价值,GNUscreen
做同样的事情,但也为编号的键。如果我在vim
里面跑screen
,vim
只会看到 0。vim 中的文字0
在命令模式下没有多大作用。