vim + c ++:在一个保护子句中插入一个uuid

J. *_*fer 6 c++ vim guard-clause autocmd

我正在尝试自动化文件注释标题.我试图弄清楚如何uuidgen使用vim的autocmd 将命令的结果插入到我的标题中.

在标题内,存在占位符文本,如下所示:

#ifndef _UUID_
#define _UUID_

// Code goes here!

#endif // _UUID_
Run Code Online (Sandbox Code Playgroud)

填充_UUID_.vimrc 的autocmd行是:

autocmd bufnewfile *.h exe "1,$s/_UUID_/" . r!uuidgen ."/g"
Run Code Online (Sandbox Code Playgroud)

问题出现在r!uuidgen下. 如何在autocmd行中插入shell命令执行的结果作为文本?或者在vi替换命令中?

Luc*_*tte 5

使用system(),不要忘记选择结果 - > matchstr(system('uuidgen'), "[^\n\r]*")

注意:对于更复杂的模板,您可以使用mu-template等解决方案.例如,在c-header.template中,您必须更改s:guard对matchtr()+ system()的调用的值.