我的 .vimrc 中有一个条目,当我按空格键时,它会在视口中向下翻页。它看起来像这样:

map <Space> <PageDown>

我想创建另一个键映射,在按住 Shift 并按空格键时将视口向上分页。我已经尝试过以下条目:

map <Shift><Space> <PageUp>
map <S-Space> <PageUp>

都不起作用。有人知道如何实现这个功能吗?

有帮助吗?

解决方案

你做不到。 CMS的解决方案适用于gVim,但不适用于vim,因为终端无法区分<!> lt; Space <!> gt;和<!> lt; S-Space <!> gt;因为curses看到它们是一样的。未来如果vim获得libtermkey支持并且您的终端支持正确的<!> lt; CSI <!> gt;序列(如果配置正确,xterm会执行;还没有其他任何内容)。

其他提示

如果您在 iTerm2 中使用 vim,您可以通过发送十六进制键 15 将 shift-space 映射到 ctrl+U。这是一个屏幕截图:

enter image description here

要查找 ctrl+字母组合(例如 ctrl+u)的十六进制代码,您可以执行以下操作:

  • 在vim中进入插入模式
  • 按 ctrl+v 然后按 ctrl+u 然后按 ctrl+c 然后按 ga
  • 各种数字表示将打印在底部

您可以将此想法应用于其他支持键映射的终端模拟器。

使用此:

map <Space> ^D   " Pagedown when press Space
map <S-Space> ^U " Page Up when press Shift Space

要正确获取^ D和^ U符号,只需按Control-V Control-D和Control-V Control-U

对于OSX:

nnoremap <Space> <C-d>
nnoremap <S-Space> <C-u>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top