vim ctags 插件实现代码跳转的功能。希望在一个项目中快速的找到函数,变量,宏等定义的地方。

下载

http://ctags.sourceforge.net/

安装

tar -jxvf ctags-5.8.tar.gz

cd ctags-5.8

vim INSTALL (在这里可以看到如何安装ctags,没有兴趣的可以不看这步)

./configure

make

sudo make install

使用&配置

使用

1、生成tags文件

cd ~/testCode/

/usr/local/bin/ctags -R ./  (这里指定了全路径是因为安装了多个ctags,所以需要指定哪个版本。)

如果是C++工程,建议使用 ctags -R --c++-kinds=+p --fields=+ialS --extra=+q ./

命令完成后就会产生一个tags文件。ctags 插件就是根据这个文件来进行函数定位的。

2、打开一个文件,然后选定任意一个函数或者变量,使用 ctrl + ] 就可以跳转到该函数或者变量定义的地方。

3、ctrl + t 跳回去

配置 (可以直接复制到 ~/.vimrc)

"ctags config
"设置tags文件路径,这样不管在哪用vim打开代码都可以跳转了。
"如果不设置,那么就必须在有tags文件的目录才能跳转
set tags=/code/svn/study/trunk/tags

"实现自动递归查找功能,但是我在set tags 之后就可以实现递归查找了。
"有可能是因为我的tags是在项目根目录下生成的有关。先记录,如果
"不能实现递归跳转可以添加上试试。建议tags文件都在项目根目录下生成。
"set autochdir
"set tags=tags;

命令总结

ctags -R * (生成tags文件。建议在项目的根目录下生成tags文件,因为ctags要实现整个项目跳转就需要项目根目录下有这个文件。)

vim -t 函数名或者变量名

ts  (tagslist, 可以列出当前跳转的所有结果)

tp (tagspreview, 跳转到上一个)

tn (tagsnext,跳转到下一个)

ctrl + ] (跳转)

ctrl + t (跳回到最初的地方)

报错

ctags -R ./
ctags: Failure on attempt to read file : Is a directory

当前目录下有一个tags的目录,删除或者改名即可。

其他

ctags -R ./   命令是默认只包含C语言的语法分析。

如果需要支持C++语法分析,需要用如下命令:

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ./

如果有echofunc插件来显示函数的参数定义插件。那么需要用如下命令:

ctags -R --fields=+lS ./

建议直接使用:

ctags -R --c++-kinds=+p --fields=+ialS --extra=+q ./

参考

https://blog.csdn.net/kang99827765/article/details/39430433

vim 插件 -- ctags的更多相关文章

  1. vim插件ctags的安装和使用

    vim插件ctags的安装和使用 2013-11-19 20:47 17064人阅读 评论(0) 收藏 举报  分类: 开发工具(3)  linux编程(9)  c/c++编程(11)  版权声明:本 ...

  2. 使用VIM插件ctags来阅读C代码

    说明 Ctags是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有vim.并且vim中已经默认安装ctags,它可以帮助程序员很容易地浏览源代码:ctags最先是用 ...

  3. vim插件ctags的安装与使用

    LINUX系统下看程序或者编程序时,看到一个函数经常需要知道该函数的定义,这时ctags就派上用场了,其安装和使用方法如下: 安装方法: sudo apt-get install ctags (ubu ...

  4. vim插件ctags的安装和使用【转】

    本文转载自:http://blog.csdn.net/g_brightboy/article/details/16830395 [ctags功能]: 为源码的变量/对象.结构体/类.函数/接口.宏等产 ...

  5. 常用vim插件的安装、使用和管理

      1.Ctags Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或者其他工具用来快速查找定位源代码中的符号,入变量名,函数名等.比如,tags文件就是Taglist和 ...

  6. VIM插件攻略

    工欲善其事,必先利其器.一个强大的开发环境可以大大提高工作效率.好吧,我知道这是废话...不过,我想一定有很多跟我一样打算进入Linux平台开发的新手,一开始都为找不到一个像Windows下的VS那样 ...

  7. 将Vim改造为强大的IDE—Vim集成Ctags/Taglist/Cscope/Winmanager/NERDTree/OmniCppComplete(有图有真相)(转)

    1.安装Vim和Vim基本插件首先安装好Vim和Vim的基本插件.这些使用apt-get安装即可:lingd@ubuntu:~/arm$sudo apt-get install vim vim-scr ...

  8. vim 插件管理

    1 进入自己的vim mkdir ./bundle/vundle 2 在vimrc同级中执行 git clone https://github.com/gmarik/vundle.git ./bund ...

  9. 「个人vim插件+配置」

    2016.10.4 filetype indent on syntax on set nu ai ci si set sw= ts= set autochdir set backspace= colo ...

随机推荐

  1. Python 总结

    python3.7下载地址 Python安装pip 1.首先检查linux有没有安装python-pip包,直接执行 yum install python-pip 2.没有python-pip包就执行 ...

  2. 2018-2019-1 20189203《Linux内核原理与分析》第四周作业

    第一部分 课本学习 内核版本号:Linux内核自2013年12月起,就以A.B.C.D的方式命名.A和B变得无关紧要,C是内核的真实版本.每一个版本的变化都会带来新的特性,如内部API的变化等,改动的 ...

  3. 关于 ionic3 tabs 导航ico 点击 页面返回顶部

    类似微信 双击 页面返回顶部功能,ionic3 中有一个 Content. 将 import { Content } from 'ionic-angular'; 放入想要实现此功能的 ts中. 实例化 ...

  4. 微信小程序获取用户手机号详解

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  5. ASP.NET MVC案例教程(三)

    ASP.NET MVC案例教程(二) 让第一个页面跑起来 现在,我们来实现公告系统中的第一个页面——首页.它非常简单,只包括所有公告分类的列表,并且每个列表项是一个超链接.其中分类数据是用我们的Moc ...

  6. zw·10倍速大数据与全内存计算

    zw·10倍速大数据与全内存计算 zw全内存10倍速计算blog,早就在博客园机器视觉栏目发过,大数据版的一直挂着,今天抽空补上. 在<零起点,python大数据与量化交易>目录中 htt ...

  7. AR(I)MA时间序列建模过程——步骤和python代码

    https://www.jianshu.com/p/cced6617b423 https://zhuanlan.zhihu.com/p/35282988 https://zhuanlan.zhihu. ...

  8. mybites

    [mybatis-spring] http://www.mybatis.org/spring/zh/index.html 使用spring mybatis 中间件 方便使用 mybatis [myba ...

  9. Solr全文检索框架

    概述: 什么是Solr? Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.tomcat.webLogic.webSh ...

  10. Link-Cut-Tree详解

    图片参考YangZhe的论文,FlashHu大佬的博客 Link-Cut-Tree实际靠的是实链剖分,重链剖分和长链剖分珂以参考树链剖分详解 Link-Cut-Tree将某一个儿子的连边划分为实边,而 ...