【问题标题】:Vim and GVim: leader key not workingVim 和 GVim:领导密钥不起作用
【发布时间】:2026-01-09 17:30:01
【问题描述】:

我安装了一些插件,包括 NERDCommenter 和 NERDTree。不过,我无法让领导者钥匙为他们工作。这些是我输入:map时的默认配置

v  \c<Space>     <Plug>NERDCommenterToggle
n  \c<Space>     <Plug>NERDCommenterToggle
v  \cc           <Plug>NERDCommenterComment
n  \cc           <Plug>NERDCommenterComment

\c&lt;space&gt; 就像点击c&lt;space&gt; 一样。我尝试在我的主目录中的.vimrc 中使用以下内容重新映射领导密钥:

let mapleader = ","

这会在我重新启动 vim 并输入 :map 时反映出来

v  ,c<Space>     <Plug>NERDCommenterToggle
n  ,c<Space>     <Plug>NERDCommenterToggle
v  ,cc           <Plug>NERDCommenterComment
n  ,cc           <Plug>NERDCommenterComment

但是,,c&lt;space&gt; 的行为就像我在击中 c&lt;space&gt;。这是怎么回事,我该如何解决?

编辑:在 VIM 中也以相同的行为对此进行了测试。

【问题讨论】:

  • 你应该很快地按下这些键。 set updatetime? 的输出是什么?这就是您拥有的毫秒数。
  • updatetime=4000。这是 4 秒默认值。我不会打他们太慢。
  • 你甚至无法开始我对这个帖子的感激之情。 10.000 倍谢谢你!!!

标签: vim


【解决方案1】:

在加载任何插件之前定义 mapleadermaplocalleader 键。

就在你的 .vimrc 之上!

【讨论】:

    【解决方案2】:

    我希望映射看起来很有趣

    v  <Leader>c<Space>     <Plug>NERDCommenterToggle
    n  <Leader>c<Space>     <Plug>NERDCommenterToggle
    v  <Leader>cc           <Plug>NERDCommenterComment
    n  <Leader>cc           <Plug>NERDCommenterComment
    

    让他们工作。我怀疑您是在 插件加载后设置地图领导者

    【讨论】:

    • &lt;Leader&gt;&lt;LocalLeader&gt; 在调用 map/noremap 时展开。如果 OP 在映射设置后更改了 mapleader,则更改不会反映在其中。
    • 我在我的~/.vimrc 中使用let mapleader = ","。根据我的阅读,.vimrc 在任何插件之前加载,并且这些插件定义了映射(但我对此并不完全确定)
    • @EricHu:插件在 vimrc、IIRC 期间加载。尝试将mapleader 设置移到顶部?另请参阅Note over here at vimdoc
    • @sehe groan 是的,就是这样。谢谢!
    • @EricHu:我很高兴你找到了它!
    【解决方案3】:

    您可能已将超时设置为零。在这种情况下,vim 不会在 mapleader 之后等待 key。

    :set timeout timeoutlen=0 ttimeoutlen=0
    

    【讨论】:

      【解决方案4】:

      这可能不是大多数人的答案,但可能会帮助少数人......

      我正在运行一个 debian 发行版(在我的情况下是 PureOS,尽管具体的风格可能并不完全重要)并且默认的 \ 领导密钥映射到开箱即用的 &lt;

      对我来说,重新映射关键代码是解决办法:

      sudo setkeycodes 56 43

      【讨论】: