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. Ethzasl MSF源码阅读(2):百川汇海

    这里有个感觉,就是百川汇海.即IMU数据和相机的消息数据都汇集到msf_core进行处理.接上一篇, 1. 查看IMUHandler_ROS::IMUCallback和IMUHandler_ROS:: ...

  2. sap 软件架构

    1:

  3. Keras序列模型学习

    转自:https://keras.io/zh/getting-started/sequential-model-guide/ 1.顺序模型是多个网络层的线性堆叠. 你可以通过将网络层实例的列表传递给  ...

  4. Cocos Creator cc.Node.点击事件

    触摸事件 1.触摸事件的类型:START触摸启动,MOVED移动,ENDED弹起来,CANCEL取消; ENDED和CANCEL区别是ENDED物体内弹起来,CANCEL是在物体外范围弹起. 2.监听 ...

  5. 组件式开发(Vue)

    什么是组件式开发: 组件式开发就是将单个组件组合起来,形成一个大的组件进行页面的开发完成 什么是复合型组件: 复合型组件就是将相同的功能写成一个公用的组件(单元组件),供其他组件使用,就类似于后台开发 ...

  6. Oracle 26表空间的管理

    一.查看用户表空间 熟悉与表空间相关的数据字典 查看用户的表空间 相关的数据字典:(用于查询数据库信息的数据库表)dba_tablespaces (管理员级别的表空间的描述信息) User_table ...

  7. [openjudge-动态规划]滑雪

    题目描述 描述 Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区 ...

  8. 基于Groovy+HttpRestful的超轻量级的接口测试用例配置的设计方案及DEMO实现

    目标 设计一个轻量级测试用例框架,接口测试编写者只需要编写测试用例相关的内容(入参及结果校验),不需要理会系统的实现,不需要写跟测试校验无关的内容. 思路 测试用例分析 一个用例由以下部分组成: (1 ...

  9. 常用模块 time sys os json pickle

    # import time # print(time.time()) #秒数 # print('开始下载') # time.sleep(2) # print('下载完成') # print(time. ...

  10. Uncaught SyntaxError: Unexpected token <解决方法

    最近剥离基础框架的公共部分,早上有个页面部分流程未加载出来,报了Uncaught SyntaxError: Unexpected token <,网上搜了下 错误原因:js脚本中非正常引用外部的 ...