【问题标题】:Vim: Leader not workingVim:领导不工作
【发布时间】:2012-07-18 14:31:47
【问题描述】:

尝试使用vim-latexsuite 的映射时,使用Leader 的映射不起作用:

:nmap
----------------------------------------
n  <Leader>rf   @<Plug>Tex_RefreshFolds
n  <Leader>ls   @<Plug>Tex_ForwardSearch
n  <Leader>lv   @<Plug>Tex_View
n  <Leader>ll   @<Plug>Tex_Compile

此插件的所有其他映射都正常工作,因此插件正在正确加载。如果没有设置 mapleaderLeader 应该默认为 \(反斜杠)。

当在命令模式下输入\ll 时,光标会向右移动2 个字符,就像只需输入ll 一样。所以反斜杠似乎被忽略了。 Vim 不发出哔哔声或显示任何错误,ll 早于 1000 毫秒,这是我的 timeoutlen

我还在.vimrc/etc/vimrc 中尝试了以下设置(虽然我假设这里只需要设置mapleader):

let mapleader = ","
let maplocalleader = ","

在此之后,Vim 的行为方式相同:没有哔声,没有错误,并且在输入 ,ll 后光标向右移动 2 个字符。

任何想法如何解决这个问题?

【问题讨论】:

  • 输入:echo mapleader 会得到什么? :verbose nmap \?
  • :echo mapleader -> , and :verbose nmap \ (or ,) -> No mapping found
  • 这里,:nmap:nmap &lt;leader&gt; 不返回 n &lt;Leader&gt;b SomeCommand 而是 n ,b SomeCommand。请注意,&lt;leader&gt; 已扩展为其值。在我未经训练的眼睛看来,好像 mapleader 的值将设置为字符串&lt;Leader&gt;,这似乎很奇怪。
  • 这里可能不是这种情况,但它仍然是一个有用的花絮。如果在插件加载后更改了地图领导者,新的地图领导者将不会成为该插件映射的一部分。 mapleader 的另一个怪癖。
  • 手动重新安装插件并没有改变任何东西。还有什么想法吗?

标签: vim leader


【解决方案1】:

卸载 Vim,删除所有插件和配置文件并重新安装后,Leader 工作正常。不幸的是,我不知道究竟是什么导致 Vim 忽略了领导者。

【讨论】:

  • 在我的情况下,我在几个 ~/.vim/ftplugin/tex_*.vim 中以错误的顺序执行了一些冲突的“让 mapleader”领导更改。让他们以正确的顺序执行为我解决了这个问题,而无需重新安装。
【解决方案2】:

尝试清除 ~/.viminfo 文件的内容,如果您正在使用会话插件 -- 清除生成文件中的会话数据。然后重新启动 Vim。当我尝试不同的设置、映射等时,它有时会对我有所帮助。

【讨论】:

  • 这对我有用。我遇到了与原始帖子相同的问题,当我删除 .viminfo 并重新加载时,重新映射的领导密钥按预期工作。
【解决方案3】:

如果您的.vimrc 中有这样的映射,

nmap <Leader>rf @<Plug>Tex_RefreshFolds

那么nmap(不带参数)的输出应该是这样的:

n  \rf   @<Plug>Tex_RefreshFolds

换句话说,“”应该扩展为“\”。 由于您的情况并非如此,因此您的映射出了点问题。这可能是由于您的 cpoptions 中有“set cpoptions?看看。

【讨论】:

    【解决方案4】:

    如果您缩短了timeoutlen,您将无法快速输入。如果您查看:help 'ttimeoutlen',您会看到它暗示:

    :set timeout timeoutlen=3000 ttimeoutlen=100
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-26
      • 2020-06-17
      • 1970-01-01
      相关资源
      最近更新 更多