Vim ruft nicht mehr an <plug> im Einfügemodus? </plug>

304
huangzonghao

Ich habe die folgende Konfiguration in meiner Vimrc-Datei.

inoremap <C-A> <Plug>InsertComment 

Und irgendwo in meinem vim-Ordner, den ich definiert habe

inoremap <silent> <Plug>InsertComment <ESC>:call INSERT_MY_COMMENT 

Das Mapping hat wirklich gut funktioniert, nachdem ich es konfiguriert habe. Aber vor kurzem hörte es auf zu funktionieren. Und wann immer ich Key-Bind im Einfügemodus verwenden kann, statt voreingestellt die Funktion aufzurufen, die ich zugeordnet habe, fügt vim die gesamte <Plug>InsertCommentSache einfach in meinen Puffer ein.

Ich habe versucht zu debuggen und habe das herausgefunden, wenn ich kartiere

inoremap <C-A> <ESC>:call INSERT_MY_COMMENT

Es funktioniert immer noch wie gewünscht, was bedeutet, dass mit dem <Plug>Teil etwas nicht stimmt .

Ich habe jedoch keine Ahnung, warum <Plug>vim nicht mehr als ein Handle interpretiert wird, um andere Plugins aufzurufen.

Ich habe auch versucht, manuell zu kopieren und einzufügen

inoremap <silent> <Plug>InsertComment <ESC>:call INSERT_MY_COMMENT inoremap <C-A> <Plug>InsertComment 

in der Befehlszeile von vim, nur um sicherzustellen, dass die Konfigurationen nicht versehentlich gelöscht wurden. Trotzdem würde vim das nicht als Funktion akzeptieren, sondern den reinen Text in den Puffer kopieren.

0

1 Antwort auf die Frage

0
huangzonghao

Entschuldigung, ich habe das Problem herausgefunden. Wir sollten die noremapKonfiguration einfach nicht verwenden, wenn wir damit umgehen <Plug>. Das Ändern der Karte imapwürde funktionieren.