vim的cscope _ ctags配置
概述
我们经常阅读源码,需要查看函数实现,结构体定义和接口调用等。
常见的工具有:
- sourceinsight
- vim
- vscode
- opengrok
自己常用的就是vim和opengrok: vim配置后比较跟手, 主要用来中小范围内的阅读代码; opengrok主要用来全工程搜索。两者完美互补。
cscope + ctags:不依赖编译就可以生成数据库,但在查看时会误报。
lsp:依赖编译才能生成数据库,在查看时很准确。
下文就说下自己cscope + ctags的配置方式
工具安装
sudo apt-get install cscope sudo apt-get install universal-ctags
cli 适配
~/bin/qk.sh // 自定义工具的使用 qtag(){ cs_bs=~/.cscope_bs find `pwd` -name "*.c" -o -name "*.h" > ls.files && cscope -Rbkq -i ls.files && ctags -R [ -d ${cs_bs} ] && cp -rf cscope.out ${cs_bs} }
bash/zsh 配置
~/.zshrc [ -f ~/bin/qk.sh ] && source ~/bin/qk.sh
nvim 配置
~/.config/nvim/init.vim //自动添加数据库;绑定快捷键 set tags=tags if has("cscope") set csto=1 set cst if filereadable("cscope.out") cs add cscope.out endif endif nmap <C-\>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-\>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-\>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-\>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-\>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-\>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-\>d :cs find d <C-R>=expand("<cword>")<CR><CR>
使用方法
cd xxx // 进入代码目录 qtag // 执行定义函数, 创建数据库 nvim // 开启nvim后阅读源码
效果如下:
本文来自博客园,作者:whilewell,转载请注明原文链接:https://www.cnblogs.com/viiv/p/16341532.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~