我跟着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>
有解决这个问题的好方法吗?
答案 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
并手动更改在那里完成的映射。