依赖安装
1. 安装universal-ctags
git clone https://github.com/universal-ctags/ctags.git
cd ctags
sudo apt install gcc make pkg-config autoconf automake python3-docutils \
libseccomp-dev libjansson-dev libyaml-dev libxml2-dev
./autogen.sh
./configure --prefix=/path/to/universal-ctags #安装路径, 自己根据需要更换
make -j
sudo make install
sudo ln -s /path/to/bin/universal-ctags /usr/bin/ctags # 创建软连接到ctags
安装vim插件vim-gutentags
我使用的plug去管理vim插件,如果您使用其他插件管理或者还不太清楚plug怎么使用,请参考其他专业文章
在你的vimrc
文件的plug中间,插入下面代码, 然后:PlugInstall
Plug 'ludovicchabant/vim-gutentags'
配置ctags和vim-gutentags
在您的vimrc
文件中插入以下:
set tags=./.tags;,.tags
" gutentags 搜索工程目录的标志,碰到这些文件/目录名就停止向上一级目录递归
let g:gutentags_project_root = ['.root', '.svn', '.git', '.hg', '.project']
" 所生成的数据文件的名称
let g:gutentags_ctags_tagfile = '.tags'
" 将自动生成的 tags 文件全部放入 ~/.cache/tags 目录中,避免污染工程目录
let s:vim_tags = expand('~/.cache/tags')
let g:gutentags_cache_dir = s:vim_tags
" 配置 ctags 的参数
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extra=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
" 检测 ~/.cache/tags 不存在就新建
if !isdirectory(s:vim_tags)
silent! call mkdir(s:vim_tags, 'p')
endif
可以使用Ctrl+]
(跳转到函数定义)和Ctrl+t
(跳出定义), 可以递归使用;也可以CTRL-W ]
用新窗口打开并查看光标下符号的定义,或者 CTRL-W }
使用 preview 窗口预览光标下符号的定义。