用于C ++的vim中的Doxygen风格的注释

时间:2014-04-14 17:16:00

标签: vim editor comments doxygen

我想自动插入C ++文件的评论片段。谷歌搜索建议c.vim插件。我安装了它。现在,当我创建一个文件时,我会得到如下的模板。

 /* =====================================================================================
  *
  *       Filename:  Foo.h
  *
  *    Description:  :
  *
  *        Version:  1.0
  *        Created:  04/14/2014 08:35:44 PM
  *       Revision:  none
  *       Compiler:  gcc
  *
  *         Author:  YOUR NAME (), 
  *   Organization:  
  *
  * =====================================================================================
  */

:h csupport我发现我可以创建自己的评论模板。是否有更简单的方法在项目中获得doxygen风格的评论?或者这些模板可以在某处使用?

3 个答案:

答案 0 :(得分:7)

如果您只需要这些评论而不是c.vim的其他功能,我建议您使用一些代码段插件,例如SnipmateUltisnips。使用这些插件创建这样的代码段非常简单,而且功能非常强大。

答案 1 :(得分:4)

你可以使用Doxygen插件来实现vim。它可用here。只需输入:Dox即可添加您的评论。

例如,

/**
 * @brief 
 *  
 * @param list 
 * @param size
 * @param key
 * @param rec
 *
 * @return 
 */
bool jw_search ( int *list, int size, int key, int& rec )
{
    return true;
}

答案 2 :(得分:1)

lh-cpp& mu-template带有可调项目标题(我必须承认默认值非常糟糕)。您必须将templates / c / internals / c-file-header.template覆盖为:

VimL: let s:filename = s:path_from_root(expand('%:p'))
VimL: let s:prj_dox_group = lh#option#get('my_prj_dox_group', lh#marker#txt('group'))
/**@file <+s:filename+>
 * @ingroup <+s:prj_dox_group+>
 * @author  <+Author()+>
 * <p>Licence:<p> Your Project Licence
 */

(所有其他的东西已经被处理了:包含警卫将自动添加到头文件中,foo.h将自动包含在foo.c(pp)中)

然后在local_vimrc-like plugin中,您必须设置:

" File: /root/path/of/the/project/_vimrc_local.vim
:let b:my_prj_dox_group = "gMain" " you can override it in subfolders
:let b:sources_root = '/root/path/of/the/project' " for mu-template
:let b:includes = [b:sources_root . '/**'] " I can't remember which ftplugin uses b:includes
:let b:included_paths = [b:sources_root] " for ftplugin/c/c_AddInclude.vim
:let g:alternateSearchPath = 'sfr:.' " (or equivalent) for a.vim and for foo.cpp to include foo.h
BTW,lh-cpp还带有:DOX命令,该命令将解析函数签名以自动生成其doxygen标题(@param [in / out / 0],@ return,@ ingroup,@ thrrow (noexcept和已弃用的异常规范已分析),...将尽可能自动填充)

如果我们采用Saraht的例子,那就变成了:

/**
 * «brief explanation».
 * «details»
 * @param[«in,»out] list  «list-explanations»
 * @param[in] size  «size-explanations»
 * @param[in] key  «key-explanations»
 * @param[«in,»out] rec  «rec-explanations»
 *
 * @return «bool»
 * «@throw »
 * @pre <tt>list != NULL</tt>«»
 */
bool jw_search ( int* list, int size, int key, int& rec )

注意:«»次出现标记占位符

PS:我不知道如果你保留c.vim我会不会使用它。