Wie kann ich Plugin-Tastenzuordnungen neu definieren?

21

Ich habe ein Plugin installiert, das keinen Mechanismus zum Deaktivieren der von ihm definierten Tastenzuordnungen bietet. Ich möchte eine der <leader>ccdurch das Plugin definierten Zuordnungen ( ) für meinen eigenen Zweck neu definieren. Ich habe versucht, die folgende Zeile in meine einzufügen .vimrc:

noremap <leader>cc echo "my purpose"

Aber das funktioniert nicht, <leader>ccführt immer noch den Plugin-Befehl aus.

Wie kann ich mein Mapping so definieren, dass es die vom Plugin definierten überschreibt?

toro2k
quelle
Eine (zugegebenermaßen nicht großartige) Option ist, einfach die Quelle zu bearbeiten und die
fehlerhafte

Antworten:

20

Plugins werden nach Ihrer Quelle bezogen, vimrcsodass es keine Möglichkeit gibt, eine Plugin-Zuordnung in Ihrer zu überschreiben, vimrcwenn das Plugin keine Möglichkeit bietet, dies zu tun.

Wenn Sie Ihr benutzerdefiniertes Mapping in platzieren ~/.vim/after/plugin/mystuff.vim(der Name der Datei spielt keine Rolle), können Sie das Plugin-Mapping überschreiben.

romainl
quelle
1
Das funktioniert bei mir nicht. Ich map <C-l> somethinglege dort hinein und es wird immer noch von Pydocstring überschrieben.
oarfish
Gibt es eine Möglichkeit, dies für einen bestimmten Dateityp (wie ftplugin) zu tun?
Steven Lu
Ich stimme dir auch zu, das funktioniert eigentlich gar nicht.
Steven Lu
19

Wie in anderen Antworten erwähnt, werden die Plugins nach Abschluss des vimrc-Vorgangs bezogen.

Wenn Sie Ihre Außerkraftsetzungen in Ihrem vimrc behalten möchten, anstatt ein After-Plugin auszuführen, können Sie diesen "Trick" an einer beliebigen Stelle in Ihrer vimrc-Datei anwenden:

autocmd VimEnter * noremap <leader>cc echo "my purpose"

Von :help VimEnter:

VimEnter: Nachdem Sie alle Startvorgänge ausgeführt haben, einschließlich des Ladens von .vimrc-Dateien, führen Sie die Argumente "-c cmd" aus, erstellen Sie alle Fenster und laden Sie die Puffer darin.

Alles, was Sie in einen automatischen VimEnter-Befehl eingeben, wird ausgeführt, nachdem Vim bereit ist. Mit VimEnter diese Art und Weise können Sie alle Ihre Zuordnungen mit anderen Einstellungen zu halten , wo Sie halten sie verwendet werden: vimrc.

John O'M.
quelle