ctags-vim代码间快速跳转

1、说明

在Linux环境下使用vim进行驱动程序编写和维护的时候,会经常需要调用Linux内核的函数或宏定义,在驱动程序和kernel代码之间频繁跳转是件很繁琐的事,使用ctags包可以轻松实现函数或宏定义的跳转。

2、配置方法

假设:系统中已经安装ctags。

举例:

以在Linux内核代码linux-3.5创建tags为例,建议先将linux-3.5内核代码编译通过,因为打上ctags包之后,再进行编译或者修改会破坏ctags环境,需要重新打ctags;内核代码不进行编译也可以正常实现代码间的跳转使用。

在程序项目主目录(想实现代码间跳转的目录),例如/home/kernel/linux-3.5/:

# cd /home/kernel/linux-3.5
# ctags -R

运行后,在/home/kernel/linux-3.5/目录下会生成一个tags文件。

将tags包设置为全局:

在Redhat系统下:

# vim /etc/vimrc

在Ubuntu系统下:

# vim /etc/vim/vimrc

在vimrc文件末行添加:

set tags+=/home/kernel/linux-3.5/tags

注意

必须使用“+=”,并且两边不能有空格。

不需要重新启动电脑,只需要将vim已经打开的文件关掉并重新打开,就可以实现程序代码带内核代码之间的跳转。

要想实现自己编写的多个程序文件之间,或者单个文件内不同地方的函数之间的跳转,也可以用ctags实现,方法同上,举例如下:

假如:正在编写的驱动程序代码为/home/helloworld/。

# cd /home/helloworld
# ctags -R

在/home/helloworld/目录下会生成一个tags文件。

将tags包设置为全局:

在Redhat系统下:

# vim /etc/vimrc

在Ubuntu系统下:

# vim /etc/vim/vimrc

在vimrc文件末行添加:

set tags+=/home/helloworld/tags

同样不需要重新启动电脑,只需要将vim已经打开的文件关掉并重新打开,就可以实现程序代码带内核代码之间的跳转。

3、使用方法

Ctrl + ]

Ctrl + o

在Linux环境下任意目录下的程序文件里的函数,要实现跳转到kernel代码进行查看,只需要将vim光标移动到函数名或宏定义名称上,使用快捷键“Ctrl+]”,即可跳转到kernel中的函数或宏定义的地方进行查看,有多个要跳转的路径时会在vim下边出现几行选项,直接输入数字加回车可以进行对应的函数或宏定义选择;要想返回上一级函数或宏定义,只需要使用快捷键“Ctrl+o”,即可跳会上次的查看的函数。

ctags-vim代码间快速跳转的更多相关文章

  1. linux 多主机间快速跳转脚本

    #!/usr/bin/env python #coding=utf8 ''' 用于多机器间相互跳转,如有新机器加入,需要更新ip_list文件 ''' from prettytable import ...

  2. vim之快速跳转

    光棍节啦, 淘东西的闲暇上来发vim旅途第一篇日志. 为什么呢? 因为今天是我媳妇的生日, 我用这种只有我知道的方式来纪念一下. ^_^, 宝宝生日快乐! 开篇先说明日志布局, vim学习记录连载中所 ...

  3. [No000018E]Vim快速跳转任意行、任意列以及高亮显示当前行、当前列方法-Vim使用技巧(3)

    vim提供了丰富的快速跳转任意行.任意列的方法,方便高效地移动光标,定位文件位置. 一.Vim行跳转 使用vim查看文件时,使用以下命令可以快速跳转文件首.尾行,方便对整个文件有个全局把握. 1.1 ...

  4. vim代码补全-spf13,YouCompleteMe

    vim代码补全 现在的图形界面的IDE(Integrated Development Environment)一般具有语法高亮,语法检查,自动补全功能,大大提高了编程的效率. vim作为文本编辑器其强 ...

  5. iOS应用程序开发之应用间的跳转(用着微信等第三方分享登陆)

    简介 配置和实现 判断应用启动方式 一.简介 最实际项目开发中,我们难免会遇到需要从一个应用跳转到另一个应用的情况.比如微信分享,实际就是一种应用间的跳转.但是有时候我们需要实现自己的两个应用间的跳转 ...

  6. 【转】iOS开发--一步步教你彻底学会『iOS应用间相互跳转』

    1. 应用间相互跳转简介 在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景.这就需要我们掌握iOS应用程序之间的相互跳转知识. 下面来看看我们在开发过程中遇到的应用 ...

  7. android学习日记05--Activity间的跳转Intent实现

    Activity间的跳转 Android中的Activity就是Android应用与用户的接口,所以了解Activity间的跳转还是必要的.在 Android 中,不同的 Activity 实例可能运 ...

  8. iOS - 白名单应用间相互跳转

    1. 应用间相互跳转简介 在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景.这就需要我们掌握iOS应用程序之间的相互跳转知识. 下面来看看我们在开发过程中遇到的应用 ...

  9. iOS应用程序开发之应用间的跳转

    简介 配置和实现 判断应用启动方式 一.简介 最实际项目开发中,我们难免会遇到需要从一个应用跳转到另一个应用的情况.比如微信分享,实际就是一种应用间的跳转.但是有时候我们需要实现自己的两个应用间的跳转 ...

随机推荐

  1. 3des用法示例,已测试

    using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security ...

  2. setjmp和longjmp用法

    本文转自:http://blog.csdn.net/wuhong40/article/details/6155838,感谢原文作者. 前不久在阅读Quake3源代码的时候,看到一个陌生的函数:setj ...

  3. C 实现可变参数

    C中可以借助va_list实现可变参数: va_start:使用传入的可变参数的第一个变量初始化va_list va_arg:获取当前可变参数,每次调用时会将指针向后移 va_end:结束 利用这个机 ...

  4. Vue2.0 v-for 中 :key 到底有什么用?

    其实不只是vue,react中在执行列表渲染时也会要求给每个组件添加上key这个属性. 要解释key的作用,不得不先介绍一下虚拟DOM的Diff算法了. 我们知道,vue和react都实现了一套虚拟D ...

  5. IT连创业系列:说说苹果商店AppStore上架App应用前后遇到的那些神坑

    前言: IT连创业的这个系列,又隔空了一个多月了. 不知道为什么,最近写文的冲动感下降了很多,如果不是因为特别忙,大概就因为上了年纪的原因了. 群里关注我创业的朋友,一直都在问,啥时候有新的文章讲述创 ...

  6. shell 组合新的变量名

    shell 组合新的变量名 普通变量 name=yushuang var=name # 要获取到yushuang res=`eval echo '$'"$var"` echo $r ...

  7. PHP内写css样式

    <1>php的两种输出方式 1,echo: 2,print; 栗子: <?php echo:"你好,我的名字是LHH"; print:"你好,我的名字是 ...

  8. Best Coder #86 1001 Price List(大水题)

    Price List Accepts: 880 Submissions: 2184 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 26214 ...

  9. jsoup从表单中取数据

    表单的格式如下 <td>user</td> <td>cc</td> </tr> <tr> <td>pass</ ...

  10. Android 开发笔记___Intent的使用

    public class ActRequestActivity extends AppCompatActivity implements OnClickListener { private EditT ...