我正在研究vim中的映射并遇到了问题。我可以映射到<Up>
,<Down>
,<Left>
和<Right>
,我可以映射到<S-Left>
和<S-Right>
,但我可以' t映射到<S-Up>
和<S-Down>
。换句话说
:nmap <S-Right> l
有效,
也有效:nmap <Up> l
但
:nmap <S-Up> l
不
也许SO会知道这个问题的答案,在这种情况下,我会将问题标题更改为更具体。但如果不这样做,我会喜欢用于诊断失败原因的命令。
(如果我使用上述命令打破了你的密钥,请输入:unmap <Up>
)
答案 0 :(得分:2)
问题可能在于您的终端[设置]。
您可以做的是排除故障,试图直接插入Vim收到的密钥。在插入模式下,键入<C-V>
,然后键入(移位)光标键。对我来说(带有TERM=gnome-256color
的gnome-terminal),我得到了这些不同的值(所以移位的光标键对我来说都是适用的,是的):
" Up, S-Up, Down, S-Down
^[OA ^[[1;2A ^[OB ^[[1;2B
" Left, S-Left, Right, S-Right
^[OD ^[[1;2D ^[OC ^[[1;2C
如果你看到移位和未移位键的值相同,你的终端不会区分它们,所以Vim也不能。接下来的步骤是检查您的终端设置/使用不同的终端。