VIM+C ++:ガード条項にUUIDを挿入します
-
03-10-2019 - |
質問
ファイルコメントヘッダーを自動化しようとしています。私はの結果を挿入する方法を見つけようとしています uuidgen
VIMのAutoCMDを使用してヘッダーにコマンドします。
ヘッダー内には、プレースホルダーのテキストが存在します。
#ifndef _UUID_
#define _UUID_
// Code goes here!
#endif // _UUID_
居住するautocmdライン _UUID_
.vimrcは次のとおりです。
autocmd bufnewfile *.h exe "1,$s/_UUID_/" . r!uuidgen ."/g"
問題はr!uuidgenの下にあります。 AutoCMD行のテキストとしてシェルコマンド解釈の結果を挿入するにはどうすればよいですか?または、その問題のためのVI代替コマンドで?
解決
system()を使用し、結果を削ることを忘れないでください - > matchstr(system('uuidgen'), "[^\n\r]*")
NB:より複雑なテンプレートについては、次のようなソリューションを使用できます mu-template. 。たとえば、in c-header.template, 、あなたはの価値を変えなければならなかったでしょう s:guard
matchtr()+system()への呼び出しに。
他のヒント
Lucの提案の後の私の結果のAutocmdラインは、後世のためでした:
autocmd bufnewfile *.h exe "1,$g/_UUID_/s/_UUID_/" . matchstr(system('uuidgen'), "[^\n\r]*")
所属していません StackOverflow