前言
在使用 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
<CTRL+]>
为了定位,一顿操作,久了很烦。
快捷的查找方式
依然是利用 vim 和 ctags,但是简化了步骤。
准备工作
- 在源码目录下建立 tags 文件:
ctags -R inc/
- 在 ~/.bashrc 中添加
alias lookup_tag='vim -c "set tags=./tags" -t "$@"'
使用方式
进入源码 tags 所在的目录键入 lookup_tag TAG
,如果存在这个 TAG 就会打开这个文件。亲测 boost 生成的 800M+ 的 tags,秒开,感受不到延迟,舒服~。
在 vim 的普通模式下输入
:f
可以显示文件名。