我紧随其后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
,并手动更改在那里完成的映射。