如何在 Vim 中使 shift+空格键向上翻页?
-
07-07-2019 - |
题
我的 .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。这是一个屏幕截图:
要查找 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>
不隶属于 StackOverflow