2013-08-20 16 views
10

Ich folgte http://sontek.net/blog/detail/turning-vim-into-a-modern-python-ide#intro, um eine Reihe von Plugins für Python-Programmierung in gvim zu installieren (installiert auf einem Windows 8-Rechner). Es scheint, dass es eine Zuordnung Konflikt zwischen dem ‚Befehl-t‘ und ‚Taskliste‘ Plugins, wie ich die folgende Fehlermeldung erhalten:Auflösen eines vim-Plugin-Mapping-Konflikts - Mapping existiert bereits für t

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

Dann tippe ich: Karte in vim und sehen, dass eine Abbildung ist:

>n \t    * :CommandT<CR> 

Gibt es eine gute Möglichkeit, dies zu lösen?

Antwort

9

Taskliste wird nicht auf <leader>t abgebildet, wenn eine Zuordnung zu <Plug>TaskList gefunden wird.

Sie müssen nur eine Zuordnung zu <Plug>TaskList in Ihrem vimrc erstellen. Das Beispiel, das ich im Quellcode gefunden wurde

nnoremap <leader>v <Plug>TaskList 
1

Eine andere, vielleicht unvollkommen, Lösung direkt tasklist.vim um die Linie würde 369 bearbeiten und manuell die Zuordnung ändern, die dort durchgeführt wird.

2

Hier ist eine allgemeinere Erklärung:

Vom vim Hilfe:

Sowohl <SID> und <Plug> verwendet werden, um zu vermeiden, dass Zuordnungen von typisierten Schlüssel mit Zuordnungen stören, die nur aus anderen verwendet werden Zuordnungen. Beachten Sie den Unterschied zwischen der Verwendung von <SID> und <Plug>:

<Plug> sichtbar außerhalb des Skripts. Es wird für Zuordnungen verwendet, denen der Benutzer möglicherweise eine Schlüsselsequenz zuordnen möchte. <Plug> ist ein spezieller Code, den ein getippter Schlüssel niemals erzeugen wird. Um es sehr unwahrscheinlich zu machen unwahrscheinlich, dass andere Plugins die gleiche Folge von Zeichen verwenden, verwenden Sie diese Struktur: scriptname mapname In unserem Beispiel ist der Skriptname "Typecorr" und der Mapname ist "Add". Dies führt zu "TypecorrAdd". Nur das erste Zeichen von Scriptname und mapname ist Großbuchstaben, so dass wir sehen können, wo mapname beginnt.

Wenn Sie also möchten, dass der Fehler nicht angezeigt wird, müssen Sie in Ihrem Beispiel etwas auf <Plug>Tasklist abbilden.

So:

nnoremap <leader>v <Plug>TaskList