zoukankan      html  css  js  c++  java
  • 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定义处(可以是函数名,变量),即使它在另一个文件中

     

  • 相关阅读:
    Xposed模块开发基本方法记录
    Win8.1下运行环境/配置问题解决方案总结
    wordpress安装记录
    编译时:virtual memory exhausted: Cannot allocate memory
    Support for AMD usage of jwplayer (require js)
    UC 浏览器远程调试手机web网页记录
    手机浏览器页面点击不跳转(Android手机部分浏览器) 浏览器双击放大网页 解决
    aes 加密,解密(2)
    aes 加密,解密
    ionic 安装步骤
  • 原文地址:https://www.cnblogs.com/lknlfy/p/2485998.html
Copyright © 2011-2022 走看看