IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Vim学习笔记

    一根稻草发表于 2014-12-28 00:00:00
    love 0

    在Linux下用Vim搭建一个功能强大的源码阅读环境,用了三个插件Ctags, Taglist, Cscope,下面简单总结了一下用法。

    Vim

    1. Vim(Vi IMproved)不仅仅是一个编辑器,代码补完、编译及错误跳转等方便编程的功能特别丰富。

    2. Vim学习手册

      • $vimtutor
      • :help user-manual
    3. Vim脚本语言

    4. Vim单词缩写功能

      • :iabbrev #b /****************************************
      • :iabbrev #e ****************************************/
      • :abbreviate teh the
      • :abbreviate
    5. Vim单词补全功能 Ctrl-P,多次Ctrl-P是切换

    6. Vim插件目录,执行命令:set rtp显示runtimepath

    7. 参考

      • 在Vim脚本中调用Python
      • Vim脚本语言
      • Vim快速插入

    Taglist

    taglist是一个Vim环境中的源码阅读插件,提供一个源码结构全局概况,支持C/C++, Python等多种语言。 ——Taglist

    在taglist窗口(导航窗口,默认在左侧)中,可以使用下面的快捷键(不用加:):

     跳到光标下tag所定义的位置,用鼠标双击此tag功能也一样
     显示光标下tag的原型定义
    o 在一个新打开的窗口中显示光标下tag
    u 更新taglist窗口中的tag
    s 更改排序方式,在按名字排序和按出现顺序排序间切换
    x taglist窗口放大和缩小,方便查看较长的tag
    + 打开一个折叠,同zo
    - 将tag折叠起来,同zc
    * 打开所有的折叠,同zR
    = 将所有tag折叠起来,同zM
    [[ 跳到前一个文件
    ]] 跳到后一个文件
    q 关闭taglist窗口
    

    Ctags

    Ctags是一个用于从程序源代码树产生索引文件(或tag文件),从而便于文本编辑器来实现快速定位的实用工具。在产生的tag文件中,每一个tag的入口指向了一个编程语言的对象。这个对象可以是变量定义、函数、类或其他的物件。 ——Ctags

    首先在源码目录下执行ctags -R生成tags文件

    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       返回上一个查找的地方
       8.  Ctrl+WW        在左右窗口切换
    

    将光标定位到想察看的函数上,然后按ctr+]键就可以进行察看了,按ctr+O可以跳回到源文件中。

    ctags详细用法

    Cscope

    Cscope 是一个 源代码阅读工具,通过这个工具可以很方便地找到某个函数或变量的定义位置、被调用的位置等信息。Cscope对 C /C++支持较好,也可以自己定制来支持Java和Perl、Python等脚本语言。 ——Cscope

    在源码目录下执行cscope -Rbq生成cscope.out文件

    -R 递归扫描目录
    -b 建立交叉引用
    -q 建立倒排索引,以便进行快速的符号搜索
    

    vim下执行:cs add cscope.out 然后就可以在vim中执行cs命令了

    cscope详细用法

    在使用过程遇到的两个小问题:

    1. 在linux-2.6.26目录下vim -t main进入vim,执行cs f g do_pipe,提示cscope no connections.
      解决方法是安装cscope_maps.vim或者手动配置cscope

    2. 在vim执行cs f g do_pipe时, 提示File fs/pipe.c does not exist.
      解决方法是在~/.vimrc中取消set autochdir.

    配置步骤

    $apt-get install vim
    $apt-get install ctags
    $apt-get install cscope
    $
    $mkdir ~/.vim/plugin
    $unzip taglist_46.zip
    $mv plugin/taglist.vim ~/.vim/plugin/
    $
    $vim ~/.vimrc
    let Tlist_Ctags_Cmd='/usr/bin/ctags'
    $
    $wget http://cscope.sourceforge.net/cscope_maps.vim
    $mv cscope_maps.vim ~/.vim/plugin/
    

    上面是在普通用户工作目录下建立的配置文件及插件,当切换到root模式时,并不能使用taglist等。



沪ICP备19023445号-2号
友情链接