VIM + C ++: вставить UUID в ограждении
-
03-10-2019 - |
Вопрос
Я пытаюсь автоматизировать заголовки комментариев файлов. Я застрял, пытаясь выяснить, как вставить результат результата uuidgen
Команда в мой заголовок, используя Autocmd Vim.
Внутри заголовка текст заполнителя присутствует, как это:
#ifndef _UUID_
#define _UUID_
// Code goes here!
#endif // _UUID_
Линия AutoCMD для заполнения _UUID_
в .VIMRC:
autocmd bufnewfile *.h exe "1,$s/_UUID_/" . r!uuidgen ."/g"
Проблема входит под r! Uuidgen. Как вставить результат Shell-Command-выполнения в виде текста в линии AutoSmd? Или в команде подстановки VI для этого вопроса?
Решение
Используйте систему () и не забудьте Comp результат -> matchstr(system('uuidgen'), "[^\n\r]*")
NB: Для более сложных шаблонов вы можете использовать решения, такие как шаблон. Отказ Например, в C-Header.template, вам пришлось бы изменить ценность s:guard
к вызовам на Matchtr () + System ().
Другие советы
Моя результирующая линия Autocmd после предложения Люка было, для потомства ради:
autocmd bufnewfile *.h exe "1,$g/_UUID_/s/_UUID_/" . matchstr(system('uuidgen'), "[^\n\r]*")