4

我们正在考虑将 Doxygen 文档添加到 C++ 头文件中,但有些人不希望默认看到冗长的 Doxygen 文档。

.vimrc 中是否有默认折叠(折叠)Doxygen 注释的方法?

注意:我尝试过autocmd FileType c,cpp set foldmethod=syntax将折叠所有匹配的语法,但我无法弄清楚如何避免折叠函数、类等,即只折叠 Doxygen 文档格式。

如果 vim 的 C-fold 插件,另一种看起来可能是一个不错的解决方案。这是使其正常工作的详细安装顺序:

  1. 添加 Doxygen 语法高亮

(a) 从http://vim.sourceforge.net/scripts/script.php?script_id=5安装它,它将创建~/.vim/syntax/doxygen.vim.

(b)~/.vim\ftdetect\doxygen.vim用这一行添加:

au BufNewFile,BufRead *.doxygen setfiletype doxygen

(c)~/.vim/syntax/doxygen_load.vim加上这两行:

au! Syntax {cpp,c,idl}
au Syntax {cpp,c,idl} runtime syntax/doxygen.vim
  1. 在末尾添加~/.vimrc

    let mysyntaxfile='/home/dchinner/.vim/syntax/doxygen_load.vim' autocmd FileType c,cpp set foldmethod=syntax autocmd FileType c,cpp set foldlevel=10

请注意, foldlevel 确定最初将折叠多少。高值将确保大多数是开放的。

  1. 将 C 折叠添加到(取消)折叠代码或注释

(a) 从http://vim.sourceforge.net/scripts/script.php?script_id=1145安装它,它将安装~/.vim/plugins/cfold.vim~/.vim/after/syntax/c.vim.

(b) 在末尾添加~/.vim/syntax/doxygen.vim

syn region doxygenComment start= ... keepend fold

完毕!您现在可以使用这些 C-fold 插件组合键:

  • z[打开所有 doxygen 风格的评论
  • z]关闭所有 doxygen 风格的评论
  • z{打开所有代码块
  • z}关闭所有代码块

vim 一个带有 Doxygen 注释的文件,然后点击z]折叠 Doxygen 注释。

4

1 回答 1

2

两者都syntax/c.vim使用syntax/doxygen.vim语法折叠。由于 中的折叠定义周围没有条件c.vim,因此您不能只关闭一个部分。

您必须将默认设置$VIMRUNTIME/syntax/c.vim~/.vim/syntax/c.vim,并从语法命令中删除所有fold属性。这应该只留下折叠的 doxygen 部分(使用:set foldmethod=syntax)。缺点是您必须c.vim从现在开始维护您的特殊版本。

于 2013-04-04T06:54:32.057 回答