【发布时间】:2020-06-26 14:32:37
【问题描述】:
我想配置 ctags 以识别 fortran 代码中的编译器指令。更具体地说,我想匹配下面的vim搜索结果
/\v[ \t]*#define[ \t]+([-[:alnum:]*+!_:\/.?]+)/
其中 \v 引发了非常神奇的级别(请参阅Can I turn on extended regular expressions support in Vim?)。或者,使用普通正则表达式进行搜索
/[ \t]*#define[ \t][ \t]*\([-[:alnum:]*+!_:\/.?][-[:alnum:]*+!_:\/.?]*\)/
可以使用。如果找到通用编译器指令,那也会对我有所帮助。一个实际的应用是,当按下
_ABORT("delta_time is too small")
我会被重定向到相应的定义
#define _ABORT(msg) call abimem_abort(msg, __FILE__, __LINE__)
基于https://andrew.stwrt.ca/posts/vim-ctags/,我尝试添加任一
--regex-fortran=/[ \t]*#define[ \t]+([-[:alnum:]*+!_:\/.?]+)/\1/d,directives/
或
--regex-fortran=/[ \t]*#define[ \t][ \t]*\([-[:alnum:]*+!_:\/.?][-[:alnum:]*+!_:\/.?]*\)/\1/d,directives/
到 ~/.ctags。基于http://ctags.sourceforge.net/ctags.html,我也尝试添加--line-directives=yes,但在上面举的实际应用中我都无法成功。使用的时候已经可以看到额外的种类了
ctags --list-kinds
但仅此而已。出了什么问题?
【问题讨论】:
-
您的第一次尝试使用提供的示例。
标签: vim fortran ctags compiler-directives