【问题标题】:Resolving a vim plugin mapping conflict - mapping already exists for \t解决 vim 插件映射冲突 - \t 的映射已存在
【发布时间】:2013-08-23 04:06:33
【问题描述】:

我跟着http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide#intro在gvim(安装在Windows 8机器上)安装了一堆用于Python编程的插件。 'command-t' 和 'tasklist' 插件之间似乎存在映射冲突,因为我收到以下错误消息:

>Error detected while processing C:\Users\Willem\vimfiles\bundle\tasklist\pl
>ugin\tasklist.vim:
>
>line  369:
>
>E227: mapping already exists for \t

然后我在 vim 中输入 :map 并看到一个映射是:

>n   \t             * :CommandT<CR>

有什么好办法解决这个问题吗?

【问题讨论】:

    标签: python vim plugins conflict


    【解决方案1】:

    如果找到到&lt;Plug&gt;TaskList 的映射,任务列表将不会映射到&lt;leader&gt;t

    所以你只需要在你的 vimrc 中创建一个到&lt;Plug&gt;TaskList 的映射。我在源代码中找到的示例是

    nnoremap <leader>v <Plug>TaskList
    

    【讨论】:

      【解决方案2】:

      另一个可能不完美的解决方案是直接编辑tasklist.vimaround 369 行并手动更改在那里完成的映射。

      【讨论】:

        【解决方案3】:

        这里有一个更一般的解释:

        来自 vim 帮助:

        &lt;SID&gt;&lt;Plug&gt; 都用于避免键入键的映射 干扰只能从其他映射中使用的映射。 注意使用&lt;SID&gt;&lt;Plug&gt;的区别:

        &lt;Plug&gt; 在脚本之外可见。它用于映射 用户可能希望将键序列映射到的位置。 &lt;Plug&gt; 是一个 键入的密钥永远不会产生的特殊代码。让它非常 其他插件不太可能使用相同的字符序列,请使用 这个结构: scriptname mapname 在我们的例子中 脚本名称是“Typecorr”,地图名称是“添加”。这导致 “TypecorrAdd”。只有 scriptname 的第一个字符和 mapname 是大写的,这样我们就可以看到 mapname 是从哪里开始的。

        因此,如果您希望不出现错误,则需要将某些内容映射到示例中的 &lt;Plug&gt;Tasklist

        像这样:

        nnoremap <leader>v <Plug>TaskList
        

        【讨论】:

          猜你喜欢
          • 2013-05-13
          • 1970-01-01
          • 2011-10-30
          • 1970-01-01
          • 2012-04-30
          • 1970-01-01
          • 1970-01-01
          • 2013-09-29
          • 1970-01-01
          相关资源
          最近更新 更多