我在 Manjaro 上使用rxvt-unicode
终端模拟器,我的以下两个映射.vimrc
不起作用,
nnoremap <C-PageUp> :tabprevious<CR>
nnoremap <C-PageDown> :tabnext<CR>
即使以下确实有效
nnoremap <C-t> :tabnew<CR>
我认为您观察到的行为的原因正是这里描述的原因。
换句话说,像这样的东西(rhs 是什么并不重要)
nnoremap <C-PageUp> :echo "hello"<CR>
将无法工作,因为 Vim 现在不知道哪个转义序列对应于 keycode <C-PageUp>
。
因此,您可以为其提供对应于 的转义序列Ctrl-PageUp,如
nnoremap ^[[5^ :echo "hello"<CR>
其中转义序列的前两个字符 ,^[
是对应于的单个单元的一部分Escape(这就是转义序列的原因)。
您可以通过点击从插入模式获取整个序列(顺便说一下,这可能与我在终端中的不同)
Ctrl+VCtrl+PageUp;但是,鉴于 的含义^[
,您也可以使用Ctrl+VEscape然后[5^手动键入。
不幸的是, putset <C-PageUp>=^[[5^
会导致 error E518
。我不知道为什么。
另一方面,另一种解决方案如下(再次描述here)
set <F37>=^[[5^
nnoremap <F37> :echo "ciao"<CR>
<F37>
Vim 提供的额外功能键码之一在哪里。我不知道这东西在哪里:help
。