我正在使用以下映射来管理窗口大小:
:nnoremap <kPlus> <C-W>+
:nnoremap <kMinus> <C-W>-
:nnoremap <kDivide> <C-W><
:nnoremap <kMultiply> <C-W>>
将控件前缀添加到地图窗口跳转没有任何影响:
:nnoremap <C-kDivide> <C-W>h
:nnoremap <C-kMultiply> <C-W>l
按<C-kMultiply>
的行为与<kMultiply>
知道为什么吗?
答案 0 :(得分:0)
扩展ZyX所说的内容:
像<C-kMultiply>
这样的键可以在GVim中正常工作,GVim接收来自GUI环境的键盘输入,但由于控制字符的古老方式,它们无法在作为终端Vim输入的流中表示。在其中定义:
控制修改器通过简单地将两个高位置零来工作,因此例如 G ( 10 00111)变为BEL
( 00 强> 00111)。这意味着它只能使用单字节字符代码:没有办法将它应用于多字节转义序列,例如<kMultiply>
实际发送的内容。
(这也是为什么你通常不能在终端中将 Ctrl 和 Shift 结合起来:<C-G>
和<C-g>
结束一旦高位被清零,就作为相同的控制字符。)
面对这样一个无法代表的密钥组合会发生什么变化因终端而异:例如xterm
将忽略修饰符并将<C-kMultiply>
发送为<kMultiply>
,而gnome-terminal
1}}将拒绝完全发送按键。