editar - Ejecute los comandos<Plug> en vim
vim comandos (1)
<Plug>
asignaciones <Plug>
están destinadas a ser mapeadas y llamadas a través del mapa. Un mapa <Plug>
es un dispositivo para exponer una interfaz limpia de acciones de complementos para el usuario.
Ejemplo: En lugar de asignar alguna clave a alguna función de complemento en el código duro del complemento, como "asignar zz
a la acción ''centrar el cursor estéticamente''",
nnoremap <expr> zz ''zz''.float2nr(winheight(0)*0.1).''<C-E>''
es mejor exponer solo un mapeo <Plug>
que el usuario pueda reasignar, sin tener que copiar y pegar la "acción".
nnoremap <expr> <Plug>NiceCenterCursor ''zz''.float2nr(winheight(0)*0.1).''<C-E>''
nmap zz <Plug>NiceCenterCursor
Esto es fácil de anular, reutilizar, conectar por el usuario.
<Plug>
asignaciones <Plug>
solo están activas en los modos para los que se han definido. Para ejecutar una asignación <Plug>
que está definida para el modo normal, puede hacer lo mismo que con cualquier comando normal: use :normal
(sin el signo de exclamación).
:execute "normal /<Plug>NiceCenterCursor"
Dado que <Plug>
realidad representa una clave mágica especial, necesitamos usar :normal
junto con :execute
y escape the <Plug>
.
El mecanismo <Plug>
se describe en profundidad en :h 41.11
. Ver también este artículo sobre este tema por un maestro de Vim .
Recientemente encontré un complemento vim usando algo llamado <Plug>
. Por ejemplo, hay un comando <Plug>abc_def
que me gustaría ejecutar.
He intentado todo como :<Plug>abc_def
y similar. Nada funcionó. Y :help <Plug>
no dio información.
Sin embargo, pude ejecutarlo creando una asignación :map x <Plug>(unite_redraw)
. Entonces puedo ejecutarlo presionando x
.
Ahora, ¿hay alguna forma de ejecutar :<Plug>abc_def
sin crear un mapeo ficticio solo para ejecutarlo? El complemento real que uso es Unir.