PageUp/PageDown 键组合的一些键映射不起作用

Some key mappings for combinations with the PageUp/PageDown keys don't work

我在 Manjaro 上使用 rxvt-unicode 终端仿真器,.vimrc 中的以下两个映射不起作用,

nnoremap <C-PageUp>   :tabprevious<CR>
nnoremap <C-PageDown> :tabnext<CR>

尽管以下确实有效

nnoremap <C-t>        :tabnew<CR>

我认为您观察到的行为的原因正是所描述的 here

换句话说,就是这样(rhs是什么并不重要)

nnoremap <C-PageUp> :echo "hello"<CR>

将不起作用,因为 Vim 现在不起作用哪个转义序列对应于键码 <C-PageUp>

因此,你可以为其提供Ctrl-PageUp对应的转义序列,如

nnoremap ^[[5^ :echo "hello"<CR>

其中转义序列的前两个字符 ^[ 是对应于 Escape 的单个单元的一部分(这就是为什么 escape 顺序)。

您可以通过点击从插入模式获取整个序列(顺便说一句,这可能与您终端中的序列不同) Ctrl+VCtrl+PageUp;但是,鉴于 ^[ 的含义,您还可以使用 Ctrl+VEscape 然后键入 [5^手动.

不幸的是,输入 set <C-PageUp>=^[[5^ 会导致错误 E518。不知道为什么。

另一方面,另一种解决方案如下(再次描述here

set <F37>=^[[5^
nnoremap <F37> :echo "ciao"<CR>

其中 <F37> 是 Vim 提供的额外功能键码之一。我不知道这个东西在 :help.

的什么地方