Dictionary 为什么<;C-PageUp>;及<;C-PageDown>;不在vim工作?

Dictionary 为什么<;C-PageUp>;及<;C-PageDown>;不在vim工作?,dictionary,vim,tabs,Dictionary,Vim,Tabs,我在Windows上安装了Vim 7.2。在GVim中,和默认用于选项卡之间的导航。但是,它对Vim不起作用 我甚至在\u vimrc中添加了以下几行,但仍然不起作用 map <C-PageUp> :tabp<CR> map <C-PageDown> :tabn<CR> map:tabp 地图:塔本 但是,地图和工作 map <C-left> :tabp<CR> map <C-right> :tabn<

我在Windows上安装了Vim 7.2。在GVim中,
默认用于选项卡之间的导航。但是,它对Vim不起作用

我甚至在
\u vimrc
中添加了以下几行,但仍然不起作用

map <C-PageUp> :tabp<CR>
map <C-PageDown> :tabn<CR>
map:tabp
地图:塔本
但是,地图和工作

map <C-left> :tabp<CR>
map <C-right> :tabn<CR>
map:tabp
地图:塔本

有人知道原因吗?

您所描述的问题通常是由vim的终端设置不知道给定键的正确字符序列引起的(在控制台上,所有击键都转换为字符序列)。这也可能是由于您的控制台没有为您试图按下的键发送不同的字符序列造成的

如果是前一个问题,那么这样做可以解决:

:map <CTRL-V><CTRL-PAGEUP> :tabp<CR>
:映射:选项卡
其中
是这些键的字面意思,而不是“小于、C、T、R……等”


如果是后一个问题,那么您需要调整终端程序的设置或获得不同的终端程序。(我不确定这些选项中的哪一个确实存在于Windows上。)

这对许多人来说似乎很明显,但konsole用户应该知道,某些版本将
ctrl-pageup/ctrl-pagedown
绑定为它自己的选项卡式窗口功能的辅助绑定(如果不使用该功能,这可能不明显)。
只需从“配置快捷方式”菜单中清除它们,就可以让它们在vim中正常工作。我猜其他终端默认情况下可能会启用类似的功能。

我正在添加这个答案,从中获取详细信息,将已经给出/接受的内容与一些对我来说非常重要的详细信息进行整合

阿尔雷迪提出了答案 这话是真的:

  • map:echo“hello”
    不起作用,因为Vim不知道keycode对应的转义序列是什么
  • 一种解决方案是显式键入转义序列:
    map^[[5^:echo“hello”
    ,其中转义序列
    ^[[5^
    (通常不同于终端)可以通过Ctrl+VCtrl+PageUp获得
还有一个重要的细节 另一方面,对我来说最好的解决方案是

set <F13>=^[[5^
map <F13> :echo "hello"<CR>
set=^[[5]^
地图:回声“你好”

它使用了一个附加的功能键代码(最多可以使用
)。同样,您可以在
.vimrc
中的一个单独位置(或者从
.vimrc
中获取的另一个专用文件中)使用一组
set keycode=escapeSeSequence
.

这是第一个问题。我按字面意思键入“:map”,然后按键盘上的Ctrl PageUp,然后按“:tabp”。它可以工作。但它在“vimrc.map”中显示如下:tabp mapÎ:tabn@g33kz0r:Link死了。那么是什么为您修复了它?或者删除了注释;-)我在gnome终端上遇到了同样的问题和解决方案。