ctags linux 环境变量,Ubuntu16.04安装配置和使用ctags

Ubuntu16.04安装配置和使用ctags

by ChrisZZ

ctags可以用于在vim中的函数定义跳转。在ubuntu16.04下默认提供的ctags是很老很旧的ctags,快要发霉的版本(5.9~svn20110310-11),快扔掉它,安装universal-ctags吧!

发霉的exuberant-ctags

来,一起看看,默认的ctags是什么情况。

查看apt提供了哪些ctags包

aptitude search ctags

查询结果:

v ctags -

v ctags:i386 -

i exuberant-ctags - build tag file indexes of source code definitions

p exuberant-ctags:i386 - build tag file indexes of source code definitions

p geany-plugin-ctags - ctags plugin for Geany

p geany-plugin-ctags:i386 - ctags plugin for Geany

p libparse-exuberantctags-perl - exuberant ctags parser for Perl

p libparse-exuberantctags-perl:i386 - exuberant ctags parser for Perl

其中只有exuberant-ctags是apt可安装ctags版本的正确名字。

查看exuberant-ctags版本信息

dpkg -l exuberant-ctags

查询结果:

Desired=Unknown/Install/Remove/Purge/Hold

| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend

|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)

||/ Name Version Architecture Description

+++-==============================================================-====================================-====================================-==================================================================================================================================

ii exuberant-ctags 1:5.9~svn20110310-11 amd64 build tag file indexes of source code definitions

看到其中版本号是5.9~svn20110310-11,已经7年没有更新了。这样的包,发霉7年了,扔了吧:

sudo apt remove exuberant-ctags -y

安装新鲜的universal-ctags

universal-ctags是什么?A maintained ctags implementation, https://ctags.io,一个负责的ctags实现,在github上开源并且持续更新和维护。

不多说,快点安装吧:

cd /tmp

git clone https://github.com/universal-ctags/ctags

./autogen.sh

./configure --prefix=/opt/software/universal-ctags # 我的安装路径。你按自己的情况调整。

make -j8

sudo make install

把ctags可执行文件更新到系统PATH上?No,我选择创建链接的方式:

# 如果你装了emacs-snapshot,那么现在的ctags命令实际上链接到了/usr/bin/ctags-snapshot,要先删除链接文件:

# sudo rm /usr/bin/ctags

# 然后,把新编译安装的universal-ctags链接过来:

sudo ln -s /opt/software/universal-ctags/bin/ctags /usr/bin/ctags

在vim中配置ctags

关键配置是:

set tags=tags;

set autochdir

放在vim配置文件中。

可以直接用我的vim配置:

cd /tmp

git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime

sh ~/.vim_runtime/install_awesome_vimrc.sh

git clone https://github.com/zchrissirhcz/dotfiles

cp dotfiles/my_configs.vim ~/.vim_runtime/

使用ctags

cd ~/work/opencv # 随便进入到一个你的c++工程目录

ctags -R . #递归地生成.tags文件

然后在vim中用Ctrl+](跳转到函数定义)和Ctrl+t(跳出定义)。注意,可以多层级嵌套使用,所以这两个操作相当于入栈和弹栈。

enjoy!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值