一种快速在 C/C++源码中查找类名/函数名的方式

前言

在使用 C/C++ 库的时候,为了最小限度的包含头文件,想知道指定的 TAG (类名/函数名)在那个头文件里。以前我的做法是使用 grep 搜索所有头文件 find . -type f \( -name '*.h' -o -name '*.hpp' \) | xargs grep -nH TAG。这样做一方面效率低下,一方面匹配的结果很多,不准确。
想到了 vim 结合 ctags 可以进行代码跳转,于是可以使用下面的方法来查找

vim temp.c
:set ctags=./tags  # tags 是预先通过 ctags 生成的
iTAG

为了定位,一顿操作,久了很烦。

快捷的查找方式

依然是利用 vim 和 ctags,但是简化了步骤。

准备工作

  1. 在源码目录下建立 tags 文件:ctags -R inc/
  2. 在 ~/.bashrc 中添加 alias lookup_tag='vim -c "set tags=./tags" -t "$@"'

使用方式

进入源码 tags 所在的目录键入 lookup_tag TAG,如果存在这个 TAG 就会打开这个文件。亲测 boost 生成的 800M+ 的 tags,秒开,感受不到延迟,舒服~。

在 vim 的普通模式下输入 :f 可以显示文件名。

参考

  1. Setting a vim option from the command line?

你可能感兴趣的:(一种快速在 C/C++源码中查找类名/函数名的方式)