#VIM
最开始入门编程的时候用过一阵子VIM,那时候插件还没有这么多,插件管理也是个问题,感觉对于一般程序员确实不怎么友好。后来换用了几个IDE,包括主流的VS、Eclipse、IDEA等,他们确实做的很强大,你能想到的功能基本上都能提供,界面也可以整的很花哨,但是感觉有些功能基本上不会用到,而且这些IDE用久了感觉操作不是那么流畅,特别是Eclipse类的IDE,经常出现卡住不动的情况。后来又开始整VIM,发现现在VIM上也什么都有了,像插件管理、基于语义的实时补全等。感觉VIM对于程序员来说已经足够了,而且绝对不会出现卡顿的情况,纯键盘快速操作,效率上绝对有保证。下面整理下个人用的VIM相关的一些东西。
##源码编译、安装
-
安装
cscope, ctags, lua-devel
-
git clone https://github.com/vim/vim.git
-
如果原来进行过configure,相关的cache会保留下来,所以若修改过选项,需要先
make distclean
(make clean 不能清除configure的cache),清除相关的cache,不然会出现选项配置不生效的情况。如python的路径、lua的路径等。另外unix版的VIM源码git到mac系统上编译的时候也会出现这种问题,可能是unix系统上编译时生成configure的cache文件也上传上去了,导致mac没有根据自身系统配置去configure,而是直接去读cache生成Makefile了。 -
./configure --with-features=huge --enable-pythoninterp --enable-python3interp --enable-luainterp --enable-multibyte --enable-sniff --enable-fontset --enable-cscope
-
make && sudo make install
##插件使用
-
插件管理:Vundle
-
git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/Vundle.vim
-
修改~/.vimrc
set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Bundle 'gmarik/Vundle.vim' call vundle#end()
-
-
实时自动补全:YCM
-
修改~/.vimrc,添加
Bundle 'Valloric/YouCompleteMe'
-
vi命令模式输入
:BundleInstall
-
安装 cmake
-
安装YCM依赖库
/home/ec2-user/.vim/bundle/YouCompleteMe/install.py
-
-
代码片段:UltiSnips
Bundle 'SirVer/ultisnips'
(片段补全引擎)
Bundle 'honza/vim-snippets'
(代码片段) -
文件状态行:Airline
Bundle 'bling/vim-airline'
-
Golang: fiath/go.vim
Bundle 'fatih/vim-go'
-
括号补全:DelimitMate
Bundle 'Raimondi/delimitMate'
-
Cscope 操作:Cscope
Bundle 'brookhong/cscope.vim'
-
代码语法检查:Syntastic
Bundle 'scrooloose/syntastic'
-
目录树:The-NERD-Tree
Bundle 'The-NERD-tree'
-
代码注释:The-NERD-Commenter
Bundle 'The-NERD-Commenter'
-
代码元素标记:Tagbar
Bundle 'majutsushi/tagbar'
-
文件缓存管理:MiniBufExpl
Bundle 'fholgado/minibufexpl.vim'
##常用
- Ctrl + o: go back
- Ctrl + i: go forward
- :nohl, 删除当前高亮