搭建vimIDE(ctags+cscope+vundle)

1、安装vim

apt-get install vim   # ubuntu
pacman -S vim         # archlinux
yum install vim       # centos

2、sudo yum install ctags

     使用命令 ctags -R * 递归生成标签文件。(必须在你的项目目录中生成)

3、sudo yum install cscope;

     cscope -Rbkq  (根目录生成)然后vim里面加入:cs add cscope.out

     -R: 在生成索引文件时,搜索子目录树中的代码
     -b: 只生成索引文件,不进入 cscope 的界面
     -k: 在生成索引文件时,不搜索 /usr/include 目录
     -q: 生成 cscope.in.out 和 cscope.po.out 文件,加快 cscope 的索引速度

进行以上步骤之外你的vim就可以实现基本的函数跳转查询了关于具体的命令请自行百度,一下将安装Vundle用于插件管理。

Vundle是基于Git的vim插件管理工具,是目前最推荐的工具。

1、安装git

     sudo yum install git

2、安装vundle(这样你的Vundle就安装成功了)

  git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

3、然后在你的.vimrc里面配置一下信息(关于.vimrc一般在你的根目录或者自己在根目录创建一个)

 set nocompatible              " required
 filetype off                  " required

 set rtp+=~/.vim/bundle/Vundle.vim
 call vundle#begin()
 Plugin 'gmarik/Vundle.vim'
 call vundle#end()            " required
 filetype plugin indent on    " required

4、接下来我们以安装项目树来看看怎么使用Vundle

    首先在.vimrc里面加入

  Plugin 'scrooloose/nerdtree'
  " 这个插件可以显示文件的Git增删状态
  Plugin 'Xuyuanp/nerdtree-git-plugin'

然后在vim中运行:PluginInstall即可(或者在Bash中运行vim +PluginInstall)。以后只需要在添加一行Plugin 'xxx'并运行:PluginInstall即可自动安装插件。

最后在你的.vimrc里面可以加入下的配置就很完美了
 " Ctrl+N 打开/关闭
 map <C-n> :NERDTreeToggle<CR>
 " 当不带参数打开Vim时自动加载项目树
 autocmd StdinReadPre * let s:std_in=1
 autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
 " 当所有文件关闭时关闭项目树窗格
 autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
 " 不显示这些文件
 let NERDTreeIgnore=['.pyc$', '~$', 'node_modules'] "ignore files in NERDTree
 " 不显示项目树上额外的信息,例如帮助、提示什么的
 let NERDTreeMinimalUI=1

在你的项目里面打开vim吧将会呈现以下的场景



5、其他插件利用Vunle也可以这样哦以后只要你换电脑copy你的.vimrc过去执行
:PluginInstall即可

是不是很nice

愉快的使用吧,关于高级的可以看这个哥们的链接有很多的干活:http://easwy.com/blog/archives/advanced-vim-skills-cscope/

彩蛋几款好用的插件

折叠

有些人特喜欢代码折叠,我就在这里列一下如何优雅地折叠代码。首先在.vimrc中添加配置:

set foldmethod=indent
au BufWinLeave * silent mkview  " 保存文件的折叠状态
au BufRead * silent loadview    " 恢复文件的折叠状态
nnoremap <space> za             " 用空格来切换折叠状态

开启以indent来折叠代码后,打开一个文件会发现有缩进的内容全被折叠起来了。所以我们引入一个SimpleFold来更智能地折叠:

Plugin 'tmhedberg/SimpylFold'

不要忘了运行:PluginInstall

自动补全

自动补全当然是用YCM

Plugin 'Valloric/YouCompleteMe'

然后进行配置就好了,YCM是通过Vim的omnifunc机制来自动补全的,所以你需要为你想要支持的语言安装一个提供omnifunc接口的Vim插件。

全局搜索

安装ctrlp

Plugin 'kien/ctrlp.vim'

然后按下C-P,便可以全局搜索啦。使用C-jC-k上下翻页,<Enter>打开选中文件。同样,给出一些有用的配置:

let g:ctrlp_working_path_mode = 'ra'
set wildignore+=*/tmp/*,*/node_modules/*,*.so,*.swp,*.zip     
let g:ctrlp_custom_ignore = {'dir':  'v[/].(git|hg|svn)$', 'file': 'v.(exe|so|dll)$'}

剪切板

剪切板想必是所有Vim用户的痛。但是!在Mac下只需要设置:

set clipboard=unnamed

你在Vim中copy的所有内容都会上系统剪切板。在Vim中拷贝内容时,可以切换到拷贝模式防止自动缩进和补全。 我的快捷键是<F9>

set pastetoggle=<F9>

状态栏

有没有想要炫酷的状态栏安装一个powerline

status-bar

Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}

此外,为了正确显示Powerline的图标,还需要一些设置:

set guifont=Inconsolata for Powerline:h15
let g:Powerline_symbols = 'fancy'
set encoding=utf-8
set t_Co=256
set fillchars+=stl: ,stlnc:
set term=xterm-256color
set termencoding=utf-8

此教程完结END
原文地址:https://www.cnblogs.com/sahara/p/6179628.html