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

jer*_*nto 41 vim paging configuration-files

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

map <Space> <PageDown>
Run Code Online (Sandbox Code Playgroud)

我想创建另一个键映射,当按住shift并按下空格键时,该映射会将视口分页.我试过以下条目:

map <Shift><Space> <PageUp>
map <S-Space> <PageUp>
Run Code Online (Sandbox Code Playgroud)

都没有工作.有谁知道如何实现这个功能?

Zat*_*rus 33

你不能.CMS的解决方案适用于gVim,但不适用于vim,因为终端无法区分<Space>和<S-Space>,因为curses看到它们是相同的.将来有可能vim获得libtermkey支持,并且您的终端支持正确的<CSI>序列(如果配置正确,xterm会执行;还没有其他功能).

  • 它可以解决使用终端仿真器的功能,在命中`shift` +`space`时发送其他东西.有关(u)rxvt(以及评论中的xterm),请参阅@ BijouTrouvaille对iTerm2的回答,或[this](http://unix.stackexchange.com/a/88592/108579). (2认同)

Bij*_*lle 13

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

在此输入图像描述

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

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

您可以将此想法应用于支持键映射的其他终端仿真器.


CMS*_*CMS 6

用这个:

map <Space> ^D   " Pagedown when press Space
map <S-Space> ^U " Page Up when press Shift Space
Run Code Online (Sandbox Code Playgroud)

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

  • 当这样做时,它在使用Space和Shift Space时向下翻页......我在Debian Linux和OS X中尝试了这个.我分别运行VIM 7.0和VIM 7.2 (4认同)