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-j
, C-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:
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