我在.vimrc中放入了一些代码,以自动更新.cpp和.h文件文档中的“最新更新”字段。
我已经尝试将其用于.py文件,并且可以正常工作。问题是搜索以字符* Last Update
开头的行。这是我到目前为止的内容:
我的cpp文件中的注释
/**
* @file test.cpp
* @author John Doe
* @version
* @brief
* @date
* Created: 21 mai 2019
* Last Update:
*/
和我的.vimrc
autocmd BufWritePre *.h exe "%s/^ \* Last Update:.*$/Last Update: "
\. strftime("%d %b %Y (%T)") . "/e"
这会将评论更新为:
/**
* @file test.cpp
* @author John Doe
* @version
* @brief
* @date
* Created: 21 mai 2019
* Last Update: 21 mai 2019 (21:15:48)
*/
但是我什么都没有改变。
更新:我的头文件(.h)中具有相同的代码
答案 0 :(得分:0)
已更新,可使用.cpp
和 .h
文件
您需要将以下内容添加到.vimrc
或其他来源的文件中:
autocmd FileType cpp,h autocmd BufWritePre <buffer> :%s/^ \* Last Update:.*$/\=printf(' * Last Update: ') . strftime("%d %b %Y (%T)")/e
autocmd FileType cpp,h
.cpp
或.h
文件 autocmd BufwritePre <buffer>
:%s/^ \* Last Update:.*$/
\=printf(' * Last Update: ') . strftime("%d %b %Y (%T)")/e
当{replacement}以\=
开头时,它将被视为表达式。
由于字符串不需要表达式printf
来输出字符串的第一部分。然后通过printf
将两个函数strftime
和.
串联起来。