vim学习及插件
参见:http://www.cnblogs.com/caixu/p/6337926.html
.vimrc配置
"**********************************************
"*****************Part1 Base *****************
"**********************************************
"关闭兼容模式, 即不要使用vi的键盘模式
set nocompatible
"设置行号显示与否
set nu
"设置自动缩进
set autoindent
"设置缩进宽度
set shiftwidth=4
"为C程序提供自动缩进
set smartindent
"设置所有的Tab和缩进为4和空格
set tabstop=4
"使得按退格键一次可以删除4个空格
set softtabstop=4
"设置 C/C++ 语言的具体缩进方式
"set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
"设置退格
"set backspace=indent,eol,start
"激活鼠标的使用
set mouse=a
"molokai原始背景色
let g:molokai_original = 1
"设置molokai
let g:rehash256 = 1
"vim开启256色支持
set t_Co=256
"设置颜色
"colorscheme desert
colorscheme molokai
"设置背景色
set background=dark
"当文件在外部被更改时,自动更新该文件
"set autoread
"显示匹配的括号
"set showmatch
"解决复制粘帖格式错乱问题
set paste
"set pastetoggle=<F9>
"开启语法
set syntax=on
"侦测文件类型
filetype on
"载入文件类型插件
filetype plugin on
"为特定文件类型载入相关缩进文件
filetype indent on
"搜索时高亮显示搜索到的内容
set hlsearch
"在搜索时,输入的词句的逐字符高亮
set incsearch
"高亮显示当前行
set cursorline
"设置按照语法折叠 syntax:用语法高亮来定义折叠
set foldmethod=syntax
"设置折层数
set foldlevel=100
"设置折叠区域的宽度
set foldcolumn=2
"设置编码
set encoding=utf-8
"设置终端编码
set termencoding=utf-8
"设置文件编码
set fileencoding=gb2312
"按顺序使用fileencodings 中的编码进行尝试解码, 解决文件编码识别与乱码处理
set fileencodings=ucs-bom,utf-8,cp936,ansi,prc
"搜索时不区分大小写
"set ignorecase
"支持跨行移动或者删除
set whichwrap=b,s,<,>,[,]
"在命令模式下使用 Tab 自动补全的时候,将补全内容使用一个漂亮的单行菜单形式显示出来
set wildmenu
"设置状态行格式
set statusline=%<[%F]%y%r%m%*%=[%l,%c][%p%%]
"显示状态栏, 默认值为1:表示无法显示状态栏
"set laststatus=2
"设置在编辑过程中右下角显示光标的行列信息
set ruler
"在左下角的状态栏显示 --INSERT-- 之类的字眼
set showmode
"**********************************************
"*****************Part2 Plugin*****************
"**********************************************
"======ctags
map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
map <F2> :cw<CR>
map <F3> :ccl<CR>
set tags=tags;/
"ctrl-] jump to the function definition
"ctrl-t or ctrl-o jump to the laster pointer position
"======taglist
"不同时显示多个文件的tag,仅显示一个
let Tlist_Show_One_File=1
"taglist为最后一个窗口时,退出vim
let Tlist_Exit_OnlyWindow=1
"======cscope
"ctrl-s find string include declare
"ctrl-c find all call, not include declare
"把Cscope的查找结果输出到quickfix窗口
set cscopequickfix=s-,g-,c-,d-,i-,t-,e-
"======Winmanager, NERDTree, MiniBufExplorer
"可以用<C-h,j,k,l>切换到上下左右的窗口
let g:miniBufExplMapWindowNavVim = 1
"是用<C-箭头键>切换到上下左右窗口中去
let g:miniBufExplMapWindowNavArrows = 1
"<C-Tab>,<C-S-Tab>切换
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
let g:miniBufExplMoreThanOne=0
let g:NERDTree_title="[NERDTree]"
let g:winManagerWindowLayout="NERDTree|TagList"
function! NERDTree_Start()
exec 'NERDTree'
endfunction
function! NERDTree_IsValid()
return 1
endfunction
nmap wm :WMToggle<CR>
"function! Zoom ()
" " check if is the zoomed state (tabnumber > 1 && window == 1)
" if tabpagenr('$') > 1 && tabpagewinnr(tabpagenr(), '$') == 1
" let l:cur_winview = winsaveview()
" let l:cur_bufname = bufname('')
" tabclose
"
" " restore the view
" if l:cur_bufname == bufname('')
" call winrestview(cur_winview)
" endif
" else
" tab split
" endif
"endfunction