zoukankan      html  css  js  c++  java
  • vim 中Ctags的安装和使用

    『插件介绍』

    Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。

    『下载和安装』

    使用apt-get安装的:

    sudo apt-get install ctags

    『基本功能使用方法』

    常用命令列表:

            1.  $ ctags –R *      ($ 为Linux系统Shell提示符)

            2.  $ vi –t tag         (请把tag替换为您欲查找的变量或函数名)

            3. :ts                                (ts 助记字:tags list, “:”开头的命令为VI中命令行模式命令)
            4. :tp                                (tp 助记字:tags preview)
            5. :tn                                (tn 助记字:tags next) 
            6. Ctrl + ]
            7. Ctrl + T

    命令解释:

    “$ ctags –R *”:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。

    Tags文件中包括这些对象的列表:

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

    VIM用这个“tags”文件来定位上面这些做了标记的对象。


    剩下的命令就是定位这些对象的方法:

    “$ vi –t tag” :在运行vim的时候加上“-t”参数,例如:

    [/usr/src]$ vim -t main

    这个命令将打开定义“main”(变量或函数或其它)的文件,并把光标定位到这一行。

    如果这个变量或函数有多处定义,在VI命令行模式

    “:ts”命令就能列出一个列表供用户选择。    

    “:tp”为上一个tag标记文件,

    “:tn”为下一个tag标记文件。当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。

    最方便的方法是把光标移到变量名或函数名上,然后按下“Ctrl+]”,这样就能直接跳到这个变量或函数定义的源文件中,并把光标定位到这一行。用“Ctrl+t”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返回 。

    更多功能通过命令man ctags或在Vim命令行下运行help ctags查询。

    注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:settags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。

    在完成编码时,可以手工删掉tags文件(帚把不到,灰尘不会自己跑掉^_^)。

    『阅读说明』

    1)Vim存在多个配置文件vimrc,比如/etc/vimrc,此文件影响整个系统的Vim。还有~/.vimrc,此文件只影响本用户的Vim。而且~/.vimrc文件中的配置会覆盖/etc/vimrc中的配置。这里我们只修改~/.vimrc文件。

        2)Vim的插件(plugin)安装在Vim的runtimepath目录下,你可以在Vim命令行下运行"set rtp“命令查看。这里我们选择安装在~/.vim目录,没有就创建一个。

        3)当本文说”在Vim命令行下运行cmdxx命令“时,意思是指在Vim的命令行模式下运行cmdxx命令,即在Vim的正常模式下通过输入冒号":"进入命令行模式,然后紧接着输入命令cmdxx。在后文描述中都会省略冒号":"输入。

        4)如果没有说明“在Vim命令行下运行某命令”,则是在shell中执行该命令。

        5)如果命令中间被空白符间隔或有与正文容易混淆的字符,我会用双引号将命令与正文区分。所以读者在实际操作时,不要输入命令最前面和最后面引号。

        6)本文关于组合快捷键的描述,形如a-b形式的快捷键表示同时按下a键和b键,而形如"a-b c"形式的快捷键,则表示先同时按下a键和b键,然后放开ab键,再按下c键。

        7) 本人使用的系统是Ubunt 11.10 ,Vim版本是Vi IMproved 7.3

    转自:http://blog.csdn.net/duguteng/article/details/7412652

  • 相关阅读:
    软件加载前显示加载中画面
    datatable用法
    arcsde安装
    dev gridcontrol (一)绑定值
    dev常用
    lookupedit用法(combox功能)
    关于NetBox2.8端口问题
    asp.net中,登录互斥的相关代码(不包含中途退出的处理)
    我老婆其人其事(一)
    判断文件是否为UTF8编码(以前收集的)
  • 原文地址:https://www.cnblogs.com/alinh/p/6698546.html
Copyright © 2011-2022 走看看