解决vim插件映射冲突 - \ t已存在映射

时间:2013-08-20 23:07:45

标签: python vim plugins conflict

我跟着http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide#intro在gvim中安装了一堆用于Python编程的插件(安装在Windows 8机器上)。看来'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中映射并看到一个映射是:

>n   \t             * :CommandT<CR>

有解决这个问题的好方法吗?

3 个答案:

答案 0 :(得分:9)

如果找到<leader>t的映射,

任务列表将不会映射到<Plug>TaskList

因此,您只需要在vimrc中创建到<Plug>TaskList的映射。我在源代码中找到的例子是

nnoremap <leader>v <Plug>TaskList

答案 1 :(得分:2)

这是一个更一般的解释:

从vim帮助:

  

<SID><Plug>都用于避免键入键的映射   干扰仅用于其他映射的映射。   请注意使用<SID><Plug>

之间的区别      在脚本之外可以看到

<Plug>。它用于映射   用户可能希望将键序列映射到。 <Plug>是一个   键入的键永远不会产生的特殊代码。为了做到这一点   不太可能其他插件使用相同的字符序列,请使用   这个结构:scriptname mapname在我们的例子中   scriptname是&#34; Typecorr&#34;并且mapname是&#34; Add&#34;。这导致了   &#34; TypecorrAdd&#34 ;.只有scriptname的第一个字符和   mapname是大写的,这样我们就可以看到mapname的起始位置。

因此,如果您希望错误显示,则需要将示例中的内容映射到<Plug>Tasklist

像这样:

nnoremap <leader>v <Plug>TaskList

答案 2 :(得分:1)

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