文档的重要性不用我说了吧,任何一个上了规模的程序没有文档的话很难做后续开发的(记不住那么多成员和方法-_-)。
Java有生成文档的javadoc,C++的话,就要用Doxygen了。它可以使用多种注释语法,甚至可以混用(自然,Java的注释文档语法也支持的)
不过写Java程序可以在Eclipse里输入/**,回车,然后Eclipse就哗哗地根据其后的方法/属性帮你生成好。C#的话,一个///就能生成它的文档化注释。写C++,可以使用Doxymacs来生成,它还可以顺便为注释进行语法高亮(别问我注释有什么好高亮的,用了就明白了)。
Doxymacs和很多Emacs插件一样,安家在sourceforge上,主页在这里:
http://doxymacs.sourceforge.net/
它需要依赖三个包:W3、tempo和libxml2,可惜的是上面给出的W3和libxml2的地址已经失效,好在Ubuntu自带了这两个东西,其他系统的请自行查找
从http://www.lysator.liu.se/~davidk/elisp/下载tempo,再从http://sourceforge.net/projects/doxymacs/下载doxymacs,确认装了libxml2(在Ubuntu下包名就叫libxml2)和W3(Ubuntu下不知道叫什么,会不会是W3m那个包?还望达人指教)
下载完成后直接把tempo复制到Emacs的插件目录下(要有root权限,我的是/usr/share/emacs22/site-lisp)
然后编译Doxymacs,把下载下来的包解压后用如下命令编译:
编译好的文件会放在~/share/emacs/site-lisp下,也可以把它放到别的地方
然后编辑~/.emacs文件装载并配置之
目前还没有研究能不能像Eclipse那样自动补完注释,不过用自带的快捷键也是很方便的
默认的快捷键如下(我只用了生成注释的一部分,剩下的只是直接翻译另加一点点试用,可能不准确):
C-c d ?
从符号表中查找当前光标所在内容的文档(需要指定doxymacs-doxygen-dirs)C-c d r
重新扫描 Doxygen 的 tags 文件C-c d f
为所在位置之后的那个函数插入注释(注意是在当前光标处插入,最好在函数上方的空行处使用,插入前先对好齐)C-c d i 为当前文件插入注释(内容包括文件名、作者、日期和简介)
C-c d ;
为当前行的成员变量插入注释(类似M-;,但是格式不同)C-c d m
插入空白的多行注释,这个就在单纯是想要注释的时候用了C-c d s
插入空白的单行注释,和上面那个差不多C-c d @
插入分组注释。所谓分组注释就是将某个范围内的代码看作一组,生成文档时会单独归在一个组下。使用时要先选中想分组的那部分代码要生成文档当然要安装doxygen了,推荐把goxygen-gui一起装上,配置起来方便很多。在命令行输入doxywizard就可以启动gui,之后就是图形界面,相信不用介绍了。