<Plug>
mappature sono significava da mappare e chiamare tramite la mappa. Una mappa <Plug>
è un dispositivo che espone all'utente un'interfaccia pulita di azioni del plugin.
Esempio: Invece di mappatura qualche chiave di qualche funzione plug-in codice rigido del plugin, come ad esempio "mappa zz
all'azione 'cursore del centro estetico'",
nnoremap <expr> zz 'zz'.float2nr(winheight(0)*0.1).'<C-E>'
è meglio esporre solo una mappatura <Plug>
denominata che l'utente può quindi rimappare, senza dover copiare e incollare l'azione.
nnoremap <expr> <Plug>NiceCenterCursor 'zz'.float2nr(winheight(0)*0.1).'<C-E>'
nmap zz <Plug>NiceCenterCursor
Questo è quindi facile da sostituire, riutilizzare, collegare dall'utente.
<Plug>
mappature sono attivi solo nei modi che sono stati definiti per. Per eseguire una mappatura <Plug>
definita per la modalità normale, è possibile eseguire come con qualsiasi normale comando: utilizzare :normal
(senza il punto esclamativo).
:execute "normal \<Plug>NiceCenterCursor"
Dal <Plug>
rappresenta in realtà una chiave magica speciale, abbiamo bisogno di usare :normal
insieme :execute
e sfuggire alla <Plug>
.
Il meccanismo <Plug>
è descritto in profondità a :h 41.11
. Vedi anche this article about this topic by a Vim master.
Oh, quindi è essenziale che 'nmap' sia' nmap' e non 'nnoremap', perché penserà a' NiceCenterCursor' come a un'altra mappatura. Corretta? –
Tarrasch
@Tarrasch Esattamente, il lato destro della mappa deve essere rimappato affinché funzioni. Lo stesso con ': normal': è essenziale usare il (remapping)': normal', non il remapping ': normal!'. – glts