繁体   English   中英

在vim中执行<Plug>命令

[英]Execute <Plug> commands in vim

我最近发现了一个使用名为<Plug>的vim插件。 例如,我想执行一个命令<Plug>abc_def

我尝试了一切:<Plug>abc_def和类似的。 没有任何效果。 并且:help <Plug>没有提供任何信息。

但是,我已经能够通过创建映射来执行它:map x <Plug>(unite_redraw) 然后我可以按x执行它。

现在,有没有办法执行:<Plug>abc_def而不创建虚拟映射只是为了运行它? 我使用的实际插件是Unite。

<Plug>映射意味着通过映射进行映射和调用。 <Plug>映射是向用户公开插件操作的干净界面的设备。


示例:而不是将某些键映射到插件的硬编码中的某些插件函数,例如“将zz映射到动作'中心光标美学'”,

nnoremap <expr> zz 'zz'.float2nr(winheight(0)*0.1).'<C-E>'

最好只公开一个用户可以重新映射的命名<Plug>映射,而不必复制和粘贴“操作”。

nnoremap <expr> <Plug>NiceCenterCursor 'zz'.float2nr(winheight(0)*0.1).'<C-E>'
nmap zz <Plug>NiceCenterCursor

然后,这很容易被用户覆盖,重用和插入。


<Plug>映射仅在已定义的模式下处于活动状态。 要执行为正常模式定义的<Plug>映射,您可以像使用任何普通命令一样执行:use :normal (不带感叹号)。

:execute "normal \<Plug>NiceCenterCursor"

由于<Plug>实际上代表了一个特殊的魔术键,我们需要使用:normal with :execute并转义<Plug>

<Plug>机制在下面详细描述:h 41.11 另请参阅Vim master关于此主题的文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM