我正在 vim 中处理映射并遇到了问题。我可以映射到<Up>
, <Down>
, <Left>
,和<Right>
,我可以映射到 <S-Left>
和<S-Right>
,但我无法映射到 <S-Up>
和<S-Down>
。换句话说
:nmap <S-Right> l
有效,也有效
:nmap <Up> l
但是
:nmap <S-Up> l
没有。
也许SO会知道这个问题的答案,在这种情况下,我会将问题标题更改得更具体。但如果做不到这一点,我想要可以用来诊断故障所在的命令。
(如果我用上面的命令分解了你的 key ,请输入 :unmap <Up>
)
最佳答案
问题可能出在您的终端[设置]上。
您可以尝试按字面意思插入 Vim 收到的 key 来排除故障。在插入模式下,输入 <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 也无法区分。下一步是检查您的终端设置/使用不同的终端。
关于vim - 诊断 Vim 中的键绑定(bind)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39646579/