VIM插件安装

    赤裸裸的vim用起来还是很辛苦的,特别是对于习惯了VS下编程的coder。本文为安装插件过程中,记录下的点点滴滴。

1、ctags

2、TagList

3、omnicppcomplete

 

默认配置在~/.vimrc,如果这个系统只有你使用,也可以选择/etc/vimrc

1ctags

    这个太棒了,可以追踪函数,变量。

     安装:

   下载ctags,官网进不去,因此网上找了一个5.8版本的。

     $ tar -xzvf ctags-5.8.tar.gz

     $ cd ctags-5.8

     $ ./configure

     $ make

     $ make install

   (可以使用tab配合)

      

     配置:

    $vim~/.vimrc

    添加两行命令:

     set tags=tags;

     set autochdir

    命令让vim首先在当前目录下寻找一个名为tags的文件,如果没找到,就向上找,一直递归。


     使用:

     进入到代码根目录,即能看见各种.h,.cpp的目录

      $ ctags -R

     进入一个文件:在要寻找的函数/变量使用ctrl+ ],就能看见跳动,可以跨文件,按ctrl + o 返回。


2、TagList

   可以生成一个窗口,列出当前文件中所有的宏,函数,全局变量等。

   安装:

   下载TagList,复制到~/.vim目录下,执行unzip TagList.zip

    或者是unzip TagList.zip -d ~/.vim

    配置:

    这个是依靠ctags,没有的请按照第一条。

   $vim~/.vimrc

    添加以下命令

    let Tlist_Show_One_File=1
    let Tlist_Exit_OnlyWindow=1

    使用:

    进入vim后,输入命令:Tlist

    注意:

    如果有新命名的函数或者变量,需要重新生成tags才能显示。


3、omnicppcomplete

     代码补齐功能,原来之前设置,但总显示“找不到模式”,ctrl+x ctrl+o无效,只有ctrl+x ctrl+i才能打开一些东西。

    安装:

    下载,本文使用omnicppcomplete-0.41.zip,将其复制到~/.vim下使用unzip解压,或者直接输入:

      unzip omnicppcomplete-0.41.zip -d ~/.vim

      注意,安装到/usr/share/vim/vim72(你的也可能是70什么的)是无效的,我前边就是安这里了。

      配置:

      这个也是依靠ctags,如果没有的,按照第一条安装。

      在~/.vimrc加入以下几句:

     set nocp
      filetype plugin on
      map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
     set completeopt=menu
     set cindent

     :inoremap ( ()<ESC>i
     :inoremap ) <c-r>=ClosePair(')')<CR>
     :inoremap { {}<ESC>i
     :inoremap } <c-r>=ClosePair('}')<CR>
     :inoremap [ []<ESC>i
     :inoremap ] <c-r>=ClosePair(']')<CR>
     :inoremap < <><ESC>i
     :inoremap > <c-r>=ClosePair('>')<CR>
     :inoremap " ""<ESC>i
     :inoremap ' ''<ESC>i

     function ClosePair(char)
     if getline('.')[col('.') - 1] == a:char
        return "\<Right>"
     else
        return a:char
     endif
     endf

     这样,当我们输入“.”或者 “->”时,就会自动出现了。

      当写了一个新类的时候,记得使用ctrl+F12更新下tags


上一篇:软件的各版本分类介绍


下一篇:大数据、人工智能、机器学习与深度学习都是什么?有什么关系?