【问题标题】:Remap Ctrl-D in vim在 vim 中重新映射 Ctrl-D
【发布时间】:2012-11-06 20:04:09
【问题描述】:

我想重新映射另一个组合键,例如 CTRL-G,以用作 CTRL-D确实(注意:不一样S-Down/PageDown/CTRL-F kbd>)。

到目前为止我所拥有的是:

nmap ^G :exe 'normal '.&scroll.'^E<CR>'

调出我的 vim 命令模式并输入它,它运行良好。但是,当我保存 .vimrc 并重新加载 vim 时,在按下 CTRL-G 时出现以下错误:

E114: Missing quote: '
E15: Invalid expression: 'normal '.&scroll.'

似乎无法正确评估 ^E。但是,我在使用或任何其他方式指定 CTRL-E 时完全不成功。我在这里错过了什么?

【问题讨论】:

    标签: vim


    【解决方案1】:

    ^G^E 是特殊字符,放在.vimrc 中时效果不佳。您需要使用&lt;C-g&gt;&lt;C-e&gt;,但由于您的Ctrl+E 放在字符串中,您需要对其进行转义并写入\&lt;C-e&gt;。您还需要使用双引号而不是单引号 - 否则您无法进行转义。

    另外说明 - 您可能应该使用 nnoremap 而不是 nmap,这样如果您将 &lt;C-e&gt; 重新映射到其他位置,&lt;C-g&gt; 的行为仍将与原始 &lt;C-e&gt; 相同。

    【讨论】:

    • 我不知道 nnoremap!正因为如此,我可以做 nnoremap 然后将 重新映射到其他东西。感谢您的建议!
    【解决方案2】:

    我认为你可以为 CTRL-E&lt;C-E&gt;

    【讨论】:

    • :exec 'norm'.&scroll.'' 不起作用,无论是在 vim 命令中(通过点击 :) 还是在映射中使用时
    • 正如 Idan 指出的那样,在字符串中您需要像 \&lt;C-E&gt; 一样对其进行转义。
    猜你喜欢
    • 1970-01-01
    • 2014-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多