【问题标题】:Insert and edit comments in c在 c 中插入和编辑注释
【发布时间】:2014-09-26 22:21:09
【问题描述】:

现在我有一堆已经插入 cmets 的 C 源文件,格式为 /*****......*****/ 用于函数,/*....*/ 用于短语和变量。我的任务是用 doxygen 记录这些文件。问题很明显:doxygen 不支持注释格式。所以我必须找到一种方法来修改文件的注释格式并添加其他进一步的 cmets。

我已经尝试使用带有 doxygen 工具包的 gvim。我只能插入一些简单的东西,比如

/**
* @brief 
*/

仅适用于函数。所以我想知道是否有办法让我修改已经存在的 cmets。提前谢谢你。

【问题讨论】:

  • 当然可以修改已有的cmets。您是在问是否有自动化工具可以做到这一点?
  • 你需要修改已有的cmets!
  • 您是否考虑过/尝试过任何 shell 命令/脚本方法,例如使用 grep/awk 等?也许在没有插件的情况下它在 vim 中很困难,但使用 grep/awk/sed 专门针对一堆文件要容易得多。它还取决于现有的命令布局。例如。如果 /****** 和 *****/ 之间有单行或多行文本等。
  • 是的,这是我的问题。一个工具(像vim这样的编辑器,像eclipse这样的编译器)。
  • 您似乎希望采用任意、非标准、不受支持的格式,并自动将其转换为 Doxygen 样式?这似乎不太可能 - 您最有可能必须使用 @alienfromouterspace 建议的一些工具。

标签: c doxygen


【解决方案1】:

对于 Vim:

\/\*\*\*\*\*\_.\{-}\*\*\*\*\*\/

发现

/*****
abcdef
*****/
void main()
{
    int a = 0;
    /**** abcdef ****/
}

/***** abcdef *****/
void function()
{
}

/*****
abcdef
abcdef
abcdef
*****/
void function2()
{
}

这可以很容易地转换为子表达式替换 VIM 命令:

:1,$ s/\(\/\*\*\*\*\*\)\(\_.\{-}\)\(\*\*\*\*\*\/\)/\/\*\*\2\*\//g

:) 也许在这里 python/grep-awk 会是更好的选择!

编辑:评论 - 上述解决方案严格基于 /***** 模式(即 /***** 中的“*”数)

【讨论】:

  • 非常感谢您的解决方案!实际上我也在尝试搜索和替换 vim !然而我并没有得到好的结果。例如对于像 /*abcdef*/ 这样的注释我想像 /**abcdef*/ 一样更改它,我使用命令:s#/*#/**#g,这是不正确的
  • 我知道你使用'\'来转义'/',但是对于每个*应该有一个'\'?我要么不理解 (_.\{-}) 部分,要么不理解开头的“1”。你能解释一下吗?
  • \_。匹配任何新行和字符,\{-} 使匹配不贪心(* ... \2 etc \0 表示完全匹配的字符串(忽略子模式)这里是类似的讨论stackoverflow.com/questions/8904068/…
  • 我使用了不同形式的替代命令行范围。例如 - :1:$ s/.../.../g 是我快速测试的。我猜你并不真的需要它们,因为你正在替换所有。
  • 好的,我明白了。它或多或少是我想要的。非常感谢! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 2021-12-18
  • 2012-10-07
  • 2013-05-06
  • 2017-03-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多