vim+cscope+ctags一些使用笔记

一.概述

        首先, vim+cscope+ctags真的很强大,对于一个在Linux下玩了近2年的我来说,我在此感到十分惭愧。我之前极少使用vim,没接触过cscope和ctags,看程序也就用gedit和find。如今学习Linux内核时发现这3个工具非常有用,有了它们,我不用再在find之后的文件列表里苦苦找寻某个函数或者某个变量的定义,而是很轻松地找到想要的东西,最重要的是,对学习Linux内核的信心大增。在此仅以简单的形式记录(不完全,以后用到时再记录)这三个东东是怎么使用的,方便以后查询。

二.笔记

        在Linux内核源码根目录下执行两条命令:make cscope和make tags,此时会在源码根目录下生成cscope.out和tags等几个文件。

1. #vim /path/filename

    如果filename文件存在则打开它,如果不存在则新建之。

2. 在命令模式下:

    :q 退出,:q!强制退出(不报存),:w 保存,:wq 保存并退出

    /string + Enter

    向前查找字符串string

    ?string + Enter

    向后查找字符串string

     n

     查找同一个字符串的下一个

     N

     反方向查找同一个字符串的前一个

     i

     进入编辑模式

     Esc按键

     退出编辑模式

     v

     进入可视模式

     在可视模式下,通过上,下,左,右键选中文本后:

     y表示复制

     p表示粘贴

     x表示剪切

     d表示删除

3. cscope使用

    :cs add cscope.out

    加载库文件,为后面利用cscope来查找做准备

    :cs help

   查看cscope命令的用法,输入后,显示如下

   add  :添加一个新的数据库             (用法: add file|dir [pre-path] [flags])
   find :查询一个模式                        (用法: find c|d|e|f|g|i|s|t name)
       c:找到调用这个函数的函数
       d:找到被这个函数调用的函数
       e:找到这个 egrep 模式
       f:找到此文件夹
       g:找到这个定义
       i:找文件 #包括这个文件
       s:找到这个 C 符号
       t:找到对其的赋值
    help :显示此信息                       (用法: help)
    kill :结束一个连接                      (用法: kill #)
    reset:重置所有连接                   (用法: reset)
    show :显示连接                         (用法: show)

  

     比如说要找调用test函数的函数,则输入:

    :cs find c test

4. catgs使用

     在命令模式下:

     ctrl + ] :找到光标所在位置的标签的定义

     ctrl + t :回到跳转之前的标签处

     “找到tag:1/3或更多”其他定义的查看方法:

     :tselect 显示列表

      然后输入相应的数字后回车再查找

     : tag definition

      跳转到definition定义处(可以是函数名,变量),即使它在另一个文件中

 

 

posted @ 2012-05-06 15:44  lknlfy  阅读(3628)  评论(0编辑  收藏  举报