如何让 Ctrl + Page Down 在 Terminal.app 中的 Vim 内切换选项卡?

如何让 Ctrl + Page Down 在 Terminal.app 中的 Vim 内切换选项卡?

在 Ubuntu 的终端中运行 vim 时,我可以使用Ctrl+Page UpPage Down在 vi​​m 选项卡之间切换。如何为 Terminal.app 或 Mac OS X 的 iTerm2 设置此功能?我有一台 Macbook Air (2011),所以我没有“合适的”Page UpPage Down键,如果这很重要的话。

我尝试设置各种转义代码,但目前没有任何效果。

编辑:我没有权限回答我自己的问题,但答案如下:

回答:

我找到了正确的转义序列。在 Terminal.app 的键盘设置中,

将“控制页面向上”设置为“发送字符串到 shell:”,值为:“\033[5;5~”

将“控制页面向下”设置为“将字符串发送到 shell:”,值为:“\033[6;5~”

答案1

如果您的键盘上没有实际的pageuppagedown键,则无法将它们映射到任何东西。

  • <C-PageDown>是和的替代方案:tabnext:tabngt
  • <C-PageUp>是和的替代方案:tabprevious:tabNgT

我强烈建议你使用gtgT,它们遵循 Vim 的语法(“前向命令”用小写字母表示,“后向命令”用大写字母表示),因此非常容易记忆。

如果你不喜欢,gt/gT你可以将它们映射到更符合你口味的东西:

nnoremap <C-Up> gT
nnoremap <C-Down> gt

但我不认为有必要。

您的示例(PageUp/PageDown无 - 键盘)似乎很好地体现了 Vim 看似奇怪的设计决策的智能性。

--编辑(根据提问者的要求)--

我找到了正确的转义序列。在 Terminal.app 的键盘设置中,

将“控制页面向上”设置为“发送字符串到 shell:”,值为:“\033[5;5~”

将“控制页面向下”设置为“将字符串发送到 shell:”,值为:“\033[6;5~”

答案2

根据 ramn 的回答,仅作为参考,以下是如何解决这个问题iTerm2

  1. iTerm/ Preferences.../ Profiles/Keys
  2. 按下+按钮添加个人资料快捷方式
  3. 使用快捷方式:^Page Up,操作:“发送转义序列”,值[5;5~
  4. 使用快捷方式:^Page Down,操作:“发送转义序列”,值[6;5~

相关内容