例如,如何编写一个最小函数来获取call plug#begin()
和call plug#end()
之间的行内容。 vim-plug或vundle现在对我来说太复杂了,无法找到相关的补充。
call plug#begin()
Plug 'foo1'
Plug 'foo2'
call plug#end()
答案 0 :(得分:1)
与您的信念相反,插件没有"得到"来自~/.vimrc
的这些配置行。相反,Vim为每一行调用插件,因为Plug
是vim-plug插件管理器提供的自定义命令;它会自动传递参数(例如foo1
)。这很干净,很好,没有明确的检索或解析是必要的。 (所以,你甚至可以写execute 'Plug' 'foo' . s:count
,它仍然有用。)
call plug#begin()
和call plug#end()
的换行(大概)是为了:
.vimrc
插件尚未加载,:Plug
命令未定义且未事先明确定义'runtimepath'
;首先将它们全部收集起来并在最后进行一次处理可能会更有效率这可以通过:help :range
与:yank
:
/^call plug#begin()$/+1;/^call plug#end()$/-1 yank
或者,您可以使用更多低级功能:通过:let startLnum = search('^call plug#begin()$', '')
找到分界线,然后通过let lines = getline(startLnum, endLnum)
抓住两者之间的行。