Я пытаюсь автоматизировать заголовки комментария файла. Я застреваю, пытаясь выяснить, как вставить результат 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 замене управляют в этом отношении?
Используйте system(), и не забудьте измельчить результат.
-> matchstr(system('uuidgen'), "[^\n\r]*")
NB: Для более сложных шаблонов можно использовать решения вроде mu-template. Например, в c-header.template вам пришлось бы изменить значение s:guard
на вызов matchtr()+system().
Моя результирующая строка autocmd после предложения Люка была, для потомков:
autocmd bufnewfile *.h exe "1,$g/_UUID_/s/_UUID_/" . matchstr(system('uuidgen'), "[^\n\r]*")