vim+c ++: أدخل uuid في بند الحراسة
-
03-10-2019 - |
سؤال
أحاول أتمتة رؤوس التعليقات. أنا عالق في محاولة لمعرفة كيفية إدراج نتيجة uuidgen
أمر في رأسي باستخدام VIM's 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؟ أو في أمر استبدال السادس لهذه المسألة؟
المحلول
استخدم 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]*")
لا تنتمي إلى StackOverflow