6

ファイルのコメント ヘッダーを自動化しようとしています。uuidgenvimのautocmdを使用して、コマンドの結果をヘッダーに挿入する方法を見つけようとして立ち往生しています。

ヘッダー内には、次のようなプレースホルダー テキストがあります。

#ifndef _UUID_
#define _UUID_

// Code goes here!

#endif // _UUID_

_UUID_.vimrcに入力する autocmd 行は次のとおりです。

autocmd bufnewfile *.h exe "1,$s/_UUID_/" . r!uuidgen ."/g"

問題は r!uuidgen の下に来ています。 shell-command-execution の結果をテキストとして autocmd 行に挿入するにはどうすればよいですか? または、その問題のvi置換コマンドで?

4

2 に答える 2

5

system() を使用し、結果を chomp することを忘れないでください ->matchstr(system('uuidgen'), "[^\n\r]*")

注意: より複雑なテンプレートの場合は、mu-templateなどのソリューションを使用できます。たとえば、c-header.templateでは、値s:guardを matchtr()+system() の呼び出しに変更する必要がありました。

于 2010-05-05T15:21:28.117 に答える
1

Lucの提案の後、結果として得られたautocmd行は、後世のために次のようになりました。

autocmd bufnewfile *.h exe "1,$g/_UUID_/s/_UUID_/" . matchstr(system('uuidgen'), "[^\n\r]*")
于 2010-05-05T15:33:41.380 に答える