энергия + C++: вставьте uuid в защитный пункт

Я пытаюсь автоматизировать заголовки комментария файла. Я застреваю, пытаясь выяснить, как вставить результат uuidgen команда в мой заголовок с помощью 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 замене управляют в этом отношении?

6
задан J. Polfer 5 May 2010 в 15:18
поделиться

2 ответа

Используйте system(), и не забудьте измельчить результат. -> matchstr(system('uuidgen'), "[^\n\r]*")

NB: Для более сложных шаблонов можно использовать решения вроде mu-template. Например, в c-header.template вам пришлось бы изменить значение s:guard на вызов matchtr()+system().

5
ответ дан 17 December 2019 в 02:25
поделиться

Моя результирующая строка autocmd после предложения Люка была, для потомков:

autocmd bufnewfile *.h exe "1,$g/_UUID_/s/_UUID_/" . matchstr(system('uuidgen'), "[^\n\r]*")
1
ответ дан 17 December 2019 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: