zoukankan      html  css  js  c++  java
  • vim+ctags的使用

    问题提出:
    在windows下有sourceinsight可以很方便地定位函数、变量、宏定义等,便于开发人员管理项目代码,提高开发效率,那么在Linux下如何进行类似的操作呢。
    vim可以使用ctags制作的tags文件来浏览程序源文件,达到sourceinsight类似的功能。

    使用方法:
    1、生成tags文件
    在目录树的根目录里,使用命令:ctags -R 或 ctags --recurse
    如:ctags -R src/*,则会在当前目录下生成tags文件
    2、编辑vim配置文件.vimrc
    添加两行: 
    set tags=tags;
    set autochdir
    注 意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录 中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。

    当然你如果想直接使用绝对路径,这样也是可以的:
    set tags=/home/xxx/myproject/tags

    3、vim文件时,用用ctrl-]来执行跳转,通过ctrl+t来跳转回来就可以了,很方便的。

    其它工具:
    这些没再测试。
    Link:    Linux下编程辅助工具vim+ctags+taglist+cppcomplete+cscope+global 

    vim+ctags+taglist使用
    1.fedora 7已经装了ctags,可用命令ctags -v查看;进入一个原文件,vi test.c,进入命令模式,输入命令":Tlist",如果出现左右两栏分栏显示,则说明taglist也装上
    2.对于taglist的安装,它是vim的一个插件,可在sourceforge上下载,是个zip文件,用unzip命令解开,出现doc 和plugin两个文件夹,把其中的两个文件分别拷到/usr/share/vim/vim70下面doc和plugin里,接下来的工作就是把 ctags和taglist关联起来,修改plugin里面的taglist.vim,在命令行模式下输入命令查找 ":/loaded_taglist" 找到后,在该行前面加上如下行: let Tlist_Ctags_Cmd="/usr/bin/ctags"
    3.如何使用:
    在/usr/include(经常查看里面的函数定义)下命令:ctags -R,发现在里面有个tags文件。现在只能在/usr/include下使用tags,如果要在其他路径下使用,需要修改vim的配置文件/etc/vimrc,在里面添加:
    set tags=/usr/include/tags,ok
    4.ctrl+]查看定义;ctrl+o退回
    5.vim 的设置
    编辑/etc/vimrc,添加:
                  1设置(软)制表符宽度为4
                               set tabstop=4
                                set softtabstop=4
                  2设置缩进的空格数为4
                             set shiftwidth=4
                  3设置自动缩进即每行的缩进值与上一行相等;使用noautoindent取消设置:
              set autoindent
                  4设置使用C/C++语言的自动缩进方式:
                             set cindent
                  5)如果想在左侧显示文本的行号,可以用以下语句:
                             set number
                  6)括号匹配
                             set showmatch

  • 相关阅读:
    [Linked List]Convert Sorted List to Binary Search Tree
    [Linked List]Reorder List
    [Linked List]Insertion Sort List
    解剖Nginx·模块开发篇(4)模块开发中的命名规则和模块加载与运行流程
    解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现
    解剖Nginx·模块开发篇(2)ngx_http_hello_world_module 模块基本结构定义
    解剖Nginx·模块开发篇(1)跑起你的 Hello World 模块!
    Nginx 源码完全注释(11)ngx_spinlock
    Nginx 源码完全注释(10)ngx_radix_tree
    Nginx源码完全注释(9)nginx.c: ngx_get_options
  • 原文地址:https://www.cnblogs.com/zhanglanyun/p/2208706.html
Copyright © 2011-2022 走看看