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
.
的什么地方
我在 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
.