zoukankan      html  css  js  c++  java
  • vim + ctags + taglist配置和使用

     

    vim +ctags + taglist ctags+cscope 安装配置和使用

     

     内容:VIM下ctags和taglist的安装配置方法;一键安装 ctags和cscope的方法 ;vim语法高亮,自动缩进,python 自动缩进设置,下面将逐个介绍安装和配置使用方法,仅供参考:



    1, vim + ctags + taglist配置和使用

    taglist依赖于ctags,所以要先装ctags,否则taglist装了也没法用!

    1、首先安装ctags

    首先是ctags的安装,推荐使用exuberant ctags,我们可以从其官方网站上下载它的源码包,进行解压缩,编译,安装即可。
    1)ubuntu安装
    sudo apt-get install exuberant-ctags

    ( 或者下载 手动安装 download ctags-5.8.tag.gz (地址

        tar xzvf ctags-5.8.tag.gz

        cd ctags-5.8

        ./configure

        sudo make

        sudo make install

    )

    至此,ctags的安装已经完成,可以使用ctags命令来检测时候完成安装。

    检测:

    在自己的项目文件夹下执行 $ctags -R *  (不执行就起不到效果)   
    注:“-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这条命令会在当前目录下产生一个“tags”文件, 当用户在当前目录中运行vi时,会自动载入此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

     -------------------------------------------------------------------------------------------------

    2、安装taglist 

    下面我们来进行taglist的安装,同ctags的安装一样这里我们也是去其官方网站下载解压其源码包。

    具体步骤如下:

    下载地址 

    解压文件
    # unzip -d    taglist taglist_45.zip // 解压到 taglist

       我们首先在家目录下创建.vim文件(mkdir .vim)   以便于存放vim的插件。
    然后把我们下载到的taglist源码包进行解压,把其中的doc和plugins目录拷贝到.vim文件夹下。
    进入到vim在命令模式下输入helptaglist~/.vim/doc即完成了taglist的安装。在vim中输入Tlist,如果出现如下画面则证明安装成功。


    也可以这样 配置
    $cd taglist/
    $cp doc/taglist.txt /usr/share/vim/vim72/doc/
    $cp plugin/taglist.vim /usr/share/vim/vim72/plugin/ 
    基本上配置完成
    启动vim,用 “:helptags .”来配置好帮助文件
    重启vim,用“:TlistToggle”来打开和关闭taglist窗口。
    可以用“:help taglist”来获得更多帮助信 
    若要默认打开taglist,_vimrc中加入

    let Tlist_Auto_Open=1

    set tags=tags;

    set autochdir;

      注意第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目 录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。

     
    完成了taglist和ctags的安装,但是这时ctags和taglist还没有联系起来。为此,我们需要修改~/.vim/plugin/taglist.vim文件,找到if !exitsts(loaded_taglist)这一行,并在其前面添加let Tlist_Ctags_Cmd="/usr/local/bin/ctags"
    ps:在这里需要注意的是我们在设置直线需要察看我们ctags可执行可执行路径到底是在哪里,我们可以进入到上述目录,一直找到具体的可执行的文件ctags,并将其路径赋给Tlist_Ctags_Cmd(例如我的路径是/usr/local/bin/ctags/ctags)
    vim+taglist+ctags阅读代码
    为了使用vim+taglist+ctags来阅读代码,我们首先必须生成函数和变量的符号信息。这一步我们使用ctags完成。
    例如我们使用我们刚才下载的ctags的源码包为例。
    //生成tag
    执行 ctags -R *(-R递归作用)
    //检查是否生成了tags
    ls -l tags
    生成tag以后我么就可以进行察看了,具体步骤见如下截图
     
     
    vim输入:TlistToggle来打开侧面窗口 (或者直接:Tlist、TlistOpen也可以)
     
     
    使用ctr 和两次w在侧窗口和主窗口之间进行切换
     
    移动到土体的函数后,按enter键察看具体函数。(可以利用ctags的特性在鼠标指定处比如"apue.h",Nomal 输入 gf,转到头文件"apue.h")
     
     有时我们想察看的函数在其他代码文件中定义,这是我们只要将光标定位到想察看的函数上,然后按ctr+]键就可以进行察看了,按ctr+O可以跳回到源文件中。

    具体 vim 高阶应用见 http://easwy.com/blog/archives/advanced-vim-skills-catalog/


    第一步要达到效果是不是很麻烦,下面介绍一种简单的方法

    2, 一键安装 ctags和cscope的方法

    用vim的插件搭建一个类似sourceinsight的vi,同时加了一些vim及脚本,最近看到很多人想要有sourceinsight功能的vim,由于整个配置还是有点麻烦,于是将配置的vim发上来,只需一条命令,就可安装完ctagslist,cscope,fielexporeer等插件,达到sourceinsight的效果。

    安装过程:

    大家下载附件,然后解压
    然后切到解压后的文件夹,
    执行sudo ./install即可
    然后执行sudo apt-get  install vim

    或者这样安装:
    #Clone repository:
    git clone https://github.com/ustcdane/vim_install.git
    #install
    cd vim_install
    sudo ./install

    可能会出现错误:
    "Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. 
    Plugin is not loaded."

    没有关联Ctags和Taglist

    在~/.vimrc中加入 : let Tlist_Ctags_Cmd='/usr/bin/ctags'

    其实我已经在 install 中加入了,如果还是出现错误,则找到你的可执行程序ctags 所在处手动的在~/.vimrc中加入let Tlist_Ctags_Cmd='你的ctags路径'

    使用指南:

    当我们需要阅读代码时,必须先生成tags文件和cscope.out文件,这个可以通过已安装程序中的脚本自动生成
    比如你要阅读source文件夹下的代码就使用cs source
    当source下有文件更新了,你可以使用 cs source -u来更新

    常用命令:
    进入vim后
    wm打开ide界面,再次wm就关闭了
    ctrl+w在各个窗口切换
    ctrl+h切换到左边的窗口
    ctrl+j切换到下面的窗口
    ctrl+l切换到右边的窗口
    ctrl+k切换到上面的窗口
    ctrl+]函数跟踪


    快捷键 cs f s/g/....

    s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
    g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
    d: 查找本函数调用的函数
    c: 查找调用本函数的函数
    t: 查找指定的字符串
    e: 查找egrep模式,相当于egrep功能,但查找速度快多了
    f: 查找并打开文件,类似vim的find功能
    i: 查找包含本文件的文
    当然在底行模式下介键入 help 会弹出 vim的帮助。

    使用cscope查找do_fork函数的定义:
    在vim命令行下执行:

    :cs f g do_fork

    就可以查看do_fork的全局定义了。

    cscope常用快捷键:

    先按 ctrl+ 然后 再按以下键:  

    ctrl+]:在函数调用的地方跳转到函数定义的地方
    ctrl+t:返回上一个查找的地方


    这个方法是从网上学到的,并作了部分修改



    3, 设置vim语法高亮显示和自动缩进

    1、配置文件的位置在目录 /etc/vim 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc” , (如果你使用第二步中的一键安装 ctags和cscope的方法 建议 在自己的家目录下的.vimrc 作相应修改) 。例如,/root目录下,通常已经存在一个.vimrc文件。
     

     2、设置语法高亮显示
    1) 打开vimrc,添加以下语句来使得语法高亮显示:
          syntax on

    2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:
         export TERM=xterm-color

          
     3、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)
                  1)设置(软)制表符宽度为4:
                                set tabstop=4
                                set softtabstop=4
                  2)设置缩进的空格数为4
                              set shiftwidth=4
                  3)设置自动缩进:即每行的缩进值与上一行相等;使用 noautoindent 取消设置:
                        set autoindent
                  4)设置使用 C/C++ 语言的自动缩进方式:
                              set cindent
                  5)设置C/C++语言的具体缩进方式(以我的windows风格为例):
                                set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
                  6)如果想在左侧显示文本的行号,可以用以下语句:
                              set nu
                7)最后,如果没有下列语句,就加上吧:
                        if &term=="xterm"
                             set t_Co=8
                             set t_Sb=^[[4%dm
                             set t_Sf=^[[3%dm
                        endif



    总结, 需要添加的内容:
    A,语法高亮在/etc目录下的profile文件中添加以下语句:
    export TERM=xterm-color

    B,其它 在 /etc/vim/vimrc的 添加:

    [plain] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. syntax on  
    2. set nu  
    3. set tabstop=4  
    4. set softtabstop=4  
    5. set shiftwidth=4  
    6. set cindent  
    7. set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s  
    8.   
    9. if &term=="xterm"  
    10.      set t_Co=8  
    11.      set t_Sb=^[[4%dm  
    12.      set t_Sf=^[[3%dm  
    13. endif  
    14.   
    15. hi Comment ctermfg=6  



    Other: vim python 的自动缩进设置方法。
    缩进设置最常用的是:
    :filetype indent on
    它将开启针对文件具体类型的缩进
  • 相关阅读:
    单例模式
    HashSet、LinkedHashSet、SortedSet、TreeSet
    ArrayList、LinkedList、CopyOnWriteArrayList
    HashMap、Hashtable、LinkedHashMap
    andrew ng machine learning week8 非监督学习
    andrew ng machine learning week7 支持向量机
    andrew ng machine learning week6 机器学习算法理论
    andrew ng machine learning week5 神经网络
    andrew ng machine learning week4 神经网络
    vue组件监听属性变化watch方法报[Vue warn]: Method "watch" has type "object" in the component definition. Did you reference the function correctly?
  • 原文地址:https://www.cnblogs.com/tsingke/p/4214862.html
Copyright © 2011-2022 走看看