我如何在Vim中进行shift +空格键翻页?

我在我的.vimrc中有一个条目,当我点击空格键时,它使页面向下翻页。 它看起来像这样:

map <Space> <PageDown> 

我想创build另一个按键映射,当按住shift键并按空格键时,将视口向上翻页。 我已经尝试了以下条目:

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

既没有工作。 任何人都知道如何实现这个function?

你不能。 CMS的解决scheme将适用于gVim,但不适用于vim,因为terminal无法区分<Space>和<S-Space>,因为curses看到它们相同。 如果vim获得libtermkey的支持,terminal支持正确的<CSI>序列(如果configuration正确,xterm没有做任何事情),将来可能会有这种情况。

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

在这里输入图像说明

要查找一个hex代码为一个Ctrl +字母组合,例如Ctrl + U,您可以执行以下操作:

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

您可以将此想法应用于支持密钥映射的其他terminal仿真器。

用这个:

 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> <Cd> nnoremap <S-Space> <Cu>