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



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

>Error detected while processing C:UsersWillemvimfilesbundletasklistpl
>ugintasklist.vim:
>
>line  369:
>
>E227: mapping already exists for t

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

>n   t             * :CommandT<CR>

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

如果找到到<Plug>TaskList的映射,

任务列表将不会映射到<leader>t

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

nnoremap <leader>v <Plug>TaskList

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

来自vim帮助:

<SID><Plug>都用于避免类型键的映射干扰仅从其他映射使用的映射。注意使用<SID><Plug>:之间的区别

<Plug>在脚本外部可见。它用于映射用户可能想要将密钥序列映射到其。<Plug>是键入的密钥永远不会产生的特殊代码。让它变得非常其他插件不太可能使用相同的字符序列,请使用这个结构:scriptname mapname在我们的例子中scriptname为"Typecorr",mapname为"Add"。这导致"TypecorrAdd"。只有scriptname的第一个字符和mapname是大写的,这样我们就可以看到mapname的起始位置。

因此,如果你想不出现错误,你需要将一些东西映射到你的样本中的<Plug>Tasklist

像这样:

nnoremap <leader>v <Plug>TaskList

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

最新更新