docs/cn/layers/gtags.md
tags 模块提供了项目 tags 管理工具,依赖 SpaceVim 自身的项目管理特性。
首先需要安装 GNU Global,可根据当前使用的操作系统, 使用自带的软件包管理工具安装。
sudo apt-get install global
OSX 下使用 homebrew 安装
brew install global --with-pygments --with-ctags
如果需要启用 global 的所有特性,你需要安装 2 个额外的软件包:pygments 和 ctags。 这两个可以使用系统自带的包管理器安装:
Ubuntu
sudo apt-get install exuberant-ctags python-pygments
ArchLinux
sudo pacman -S ctags global python-pygments
编译安装
下载最新的 tar.gz 文件,执行如下命令:
tar xvf global-6.5.5.tar.gz
cd global-6.5.5
./configure --with-exuberant-ctags=/usr/bin/ctags
make
sudo make install
如果需要启用 pygments 和 ctags,需要复制示例 gtags.conf.in 至 /etc/gtags.conf 或者 $HOME/.globalrc。例如:
cp gtags.conf.in ~/.globalrc
此外,启动 shell 时需要设置环境变量 GTAGSLABEL,通常需要修改 .profile 文件。
echo export GTAGSLABEL=pygments >> .profile
可在配置文件添加如下内容来启用该模块。
[[layers]]
name = "tags"
gtags 模块提供了以下模块选项:
gtagslabel: 设置 gtags 命令所使用的后台工具,可以选择 ctags 或者 pygments,默认是空。例如,使用 pygments 作为后台:
[[layers]]
name = "gtags"
gtagslabel = "pygments"
在使用 gtags 之前,建议先使用快捷键 SPC m g c 新建 GTAGS 数据库,
这一数据库也会在保存文件时自动更新。
如果你不使用 ctags 或者 pygments,gtags 默认将只支持如下语言:
如果你启用了 exuberant ctags,并且使用其作为后台(i.e., GTAGSLABEL=ctags or–gtagslabel=ctags),那么如下的语言将也得到支持:
作为 exuberant ctags 的替代,如果你启用 Universal ctags,除了上述语言以外,将还可以支持如下语言:
为了查找更多语言 symbol 的引用,而不仅仅时内置的语言分析器,你需要使用 pygments 作为后端,当启用 pygments 后,可以通过 gtags 查询函数和变量的定义以及引用处。
当 pygments 启用后,如下语言将得以支持:
| 快捷键 | 功能描述 |
|---|---|
SPC m g c | 新建 tag 数据库 |
SPC m g u | 手动更新 tag 数据库 |
SPC m g f | 列出数据库中所涉及到的文件 |
SPC m g d | 查找 definitions |
SPC m g r | 查找 references |
SPC m g j | 输入符号并查找其定义 |