<Plug>
Zuordnungen sind gemeint zu kartieren und über die Karte aufgerufen werden. Eine <Plug>
Karte ist ein Gerät, um dem Benutzer eine saubere Schnittstelle von Plugin-Aktionen zur Verfügung zu stellen.
Beispiel: Statt Mapping einige Schlüssel zu einem gewissen Plugin-Funktion in der Fest Code des Plug-Ins, wie "Karte zz
der Aktion 'Zentrum Cursor ästhetisch'",
nnoremap <expr> zz 'zz'.float2nr(winheight(0)*0.1).'<C-E>'
es ist besser, um nur ein benannt <Plug>
Zuordnung, die der Benutzer dann neu zuordnen kann, ohne die "Aktion" kopieren und einfügen.
nnoremap <expr> <Plug>NiceCenterCursor 'zz'.float2nr(winheight(0)*0.1).'<C-E>'
nmap zz <Plug>NiceCenterCursor
Dies ist dann einfach zu überschreiben, wiederverwenden, Plug-in durch den Benutzer.
<Plug>
Zuordnungen sind nur in den Modi sie definiert wurden. Um ein <Plug>
Mapping auszuführen, das für den normalen Modus definiert ist, können Sie wie bei jedem normalen Befehl vorgehen: Verwenden Sie :normal
(ohne das Ausrufezeichen).
:execute "normal \<Plug>NiceCenterCursor"
Seit <Plug>
tatsächlich eine besondere Magie Schlüssel darstellt, müssen wir :normal
zusammen verwenden, um mit :execute
und die <Plug>
zu entkommen.
Der <Plug>
Mechanismus ist in der Tiefe bei :h 41.11
beschrieben. Siehe auch this article about this topic by a Vim master.
Oh, also ist es wichtig, dass das 'nmap'' nmap' ist und nicht 'nnoremap', weil es' NiceCenterCursor' als nur ein anderes Mapping darstellt. Richtig? –
Tarrasch
@Tarrasch Genau, die rechte Seite der Karte muss neu zugeordnet werden, damit dies funktioniert. Das Gleiche gilt für ': normal': Es ist wichtig, das (Neuzuordnen)': normal' zu verwenden, nicht das nicht-remapping ': normal!'. – glts