zoukankan      html  css  js  c++  java
  • 使用VIM插件ctags来阅读C代码

    1、说明

    Ctags 是 vim 下方便代码阅读的工具。尽管 ctags 也可以支持其它编辑器,但是它正式支持的只有 vim。并且 vim 中已经默认安装 ctags,它可以帮助程序员很容易地浏览源代码;ctags 最先是用来生成 C 代码的 tags 文件,后来扩展成可以生成各类语言的 tags,但是我主要还是用来阅读 C 源代码。

    ctags更新地址:http://ctags.sourceforge.net/ 这个网站是 ctags 的官方网站,可以下载到关于 ctags 的最新内容。

    2、ctags能定位什么内容

    1) 用#define定义的宏
    2) 枚举类型变量的值
    3) 函数的定义、原型和声明
    4) 名字空间(namespace)
    5) 类型定义(typedef)
    6) 变量(包括定义和声明)
    7) 类、结构体、枚举类型、联合
    8) 类、结构体和联合中成员变量或函数

    3、安装ctags

    如果是redhat或centos系统可以直接使用yum在线安装

    [root@localhost ~]# yum install ctags

    源码位置生成tags文件

    [root@localhost ~]# ctags -R *

    4、查找操作(3种使用方式)

    1)直接在命令行上操作

    [root@localhost ~]# vim -t main
    [root@localhost ~]# vim -t pos_create_task

    结果:直接打开对应符号对应文件,并定位到该符号的定义位置。常用在知道符号,但不知道在哪个文件模块中的位置。

    2)在vim的模式下使用": ta"命令

    :ta main
    :ta pos_create_task

    3)在光标指定位置下直接使用"ctrl + ]"
    在光标指定的位置下直接使用 "crtl + ]" 就可以定位到函数的定义位置;使用 "ctrl + t" 快捷键返回到上次跳转之前的位置。

    关于ctags的用法很多,以下是我们列举的部分:
    -->"ctrl + t"退回到原来的地方
    -->"[{"转到上一个位于第一列的"{"
    -->"}]"转到下一个位于第一列的"{" /* 似乎不管用 */
    -->"{"转到上一个空行
    -->"}"转到下一个空行
    -->"gd"转到当前光标所指的局部变量的定义
    -->"*"转到当前光标所指的单词一次出现的地方
    -->"#"转到当前光标所指的单词上一次出现的地方

    5、注意事项

    使用 vim 打开相关使用 tags 标记的源文件时,当前目录要在 tags 所在目录下执行 vim 命令。如果在其子目录下边执行 vim 打开相应文件,默认是使用不了 ctags 的跳转功能的。解决的方式是,在 vim 的配置文件中 /etc/vimrc 或者 ~/.vimrc 中设置:set tags=/var/dz_resource/ineedle/soft/tags,这样就可以了。

     

  • 相关阅读:
    Scala编程基础
    大数据学习环境搭建(CentOS6.9+Hadoop2.7.3+Hive1.2.1+Hbase1.3.1+Spark2.1.1)
    hadoop2.7.3编译,支持snappy、bzip2本地压缩
    ABAP非Unicode系统中字符串拼接(CONCATENATE)时吃字符问题
    Hadoop学习笔记
    HIVE开发总结
    中文字符截取乱码问题
    替换空字符NULL(字符编码为0的字符)
    Generate Time Data(普通日期主数据)
    Generate Time Data(财务日期主数据)
  • 原文地址:https://www.cnblogs.com/liwei0526vip/p/4983783.html