【问题标题】:How to remap Vim keys (PageUp and PageDown)如何重新映射 Vim 键(PageUp 和 PageDown)
【发布时间】:2013-06-11 21:03:00
【问题描述】:

我想根据Vim scrolling documentation<PageUp> 重新映射到<C-u>PageDown<C-d>

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

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

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

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

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

【问题讨论】:

    标签: vim keyboard-shortcuts


    【解决方案1】:

    下面的映射呢?

    nnoremap <PageUp> gg
    nnoremap <PageDown> G
    

    还是简单地使用ggG

    【讨论】:

    • 不,那没用。我在Debian上,如果有帮助的话。也许他们以我不理解的方式设置 Vim?
    • 等等,是的……我一直在编辑 /etc/vim/vimrc 而不是 ~/.vimrc。键映射是否仅在用户的 .vimrc 文件中有效?
    • 我在 ubuntu 上,它可以工作,gg 是转到第一行的规范命令,G 是转到最后一行的规范命令。另外,&lt;C-u&gt;&lt;C-d&gt; 停在第一行和最后一行。请告诉我们您的 ~/.vimrc 并告诉我们您使用的 Vim 版本。
    • 哦,那好吧。 永远不要触摸/etc/vim/您为自定义 Vim 所做的一切必须~/.vim/~/.vimrc 中完成。
    • 哈,我所有的其他设置都在 /etc/vim/vimrc 文件中工作。我有点希望这是一个全局系统设置。
    【解决方案2】:

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

    :verbose nmap <PageDown>
    

    如果没有重新定义,您必须在所有加载的脚本 (:scriptnames) 中寻找 :nunmap 命令,或使用 vim -V20vimlog 捕获日志。

    【讨论】:

    • 如果您对答案投了反对票,请提供反馈,说明您认为它不充分的原因。
    【解决方案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

    【讨论】:

    • 这应该是公认的答案,这实际上与用户对 PageUpPageDown 键的期望一致。
    猜你喜欢
    • 1970-01-01
    • 2011-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2014-03-05
    • 1970-01-01
    相关资源
    最近更新 更多