如何重新映射 Vim 键(PageUp 和 PageDown)

How to remap Vim keys (PageUp and PageDown)

提问人:Jeff 提问时间:6/12/2013 最后编辑:Jeff 更新时间:12/4/2016 访问量:11886

问:

我想根据 Vim 滚动文档重新映射和映射。<PageUp><C-u>PageDown<C-d>

就目前而言,我看起来像这样:/etc/vim/vimrc

nnoremap <PageUp> <C-u>
nnoremap <PageDown> <C-d>

我尝试了很多不同的组合,但我所做的一切都没有奏效。

我的目标是在按住 PageUp/PageDown 时使光标移动到文件开头或 EOF。就像现在一样,光标在到达顶部之前停止(并且 PageDown 滚动到 EOF 之外)。只是我试图解决的烦恼。

编辑:以上设置工作正常。我在文件中放置的映射太早了。

Vim 键盘快捷键

评论


答:

12赞 romainl 6/12/2013 #1

以下映射呢?

nnoremap <PageUp> gg
nnoremap <PageDown> G

或者干脆使用 和 ?ggG

评论

0赞 Jeff 6/12/2013
不,那行不通。如果有帮助的话,我在 Debian 上。也许他们以一种我不明白的方式设置了 Vim?
0赞 Jeff 6/12/2013
等等,是的,它确实如此......我一直在编辑而不是.键映射是否仅在用户的 .vimrc 文件中起作用?/etc/vim/vimrc~/.vimrc
0赞 romainl 6/12/2013
我在 ubuntu 上,它可以工作,是转到第一行的规范命令和转到最后一行的规范命令。另外,在第一行和最后一行停下来。请向我们展示您的并告诉我们您使用的 Vim 版本。ggG<C-u><C-d>~/.vimrc
1赞 romainl 6/12/2013
哦,那好吧。切勿触摸 /etc/vim/自定义 Vim 所做的一切都必须在 和 中完成。~/.vim/~/.vimrc
0赞 Jeff 6/12/2013
哈,我的所有其他设置都在 /etc/vim/vimrc 文件中工作。我有点希望这是一个全局系统设置。
5赞 Ingo Karkat 6/12/2013 #2

不应将映射放入系统范围的映射中,而应将用户自定义项放入文件中。尽管如此,全局配置(如果这是您想要的)也应该有效。这并不意味着映射被清除或重新定义。您可以查看/etc/vim/vimrc~/.vimrc

:verbose nmap <PageDown>

如果未重新定义,则必须在所有加载的脚本中查找命令 (),或使用 捕获日志。:nunmap:scriptnamesvim -V20vimlog

评论

2赞 Ingo Karkat 6/20/2013
如果您对答案投反对票,请提供反馈,说明您认为它不充分的原因。
2赞 laktak 12/4/2016 #3

你可以用

map <silent> <PageUp> 1000<C-U>
map <silent> <PageDown> 1000<C-D>
imap <silent> <PageUp> <C-O>1000<C-U>
imap <silent> <PageDown> <C-O>1000<C-D>

fixing-pageup-and-pagedown

评论

1赞 Konrad 4/21/2021
这应该是公认的答案,这实际上与用户期望 PageUpPageDown 键执行的操作一致。