"------------------------------------------------------------------ " -- VIM 配置文件 .vimrc " " " 作者: silianbo (其实就是这里抄一点,那里抄一点,文档里学一点) " " 博客:http://www.xupt2013.blog.51cto.com(司联波的新博客) " " 最后修改时间:2013-4-12 " "------------------------------------------------------------------- set ruler "右下角说明 2013 07 16 syntax on " 使用语法高亮 filetype plugin indent on " 打开文件类型检测 set nocp " 使用不兼容 vi 的模式(vi模式一些操作很不方便) set autoindent "设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置 set smartindent " 智能对齐方式 " 标准的4个空格的缩进 set tabstop=4 " 设置制表符(tab键)的宽度 set softtabstop=4 " 设置软制表符的宽度 set shiftwidth=4 " (自动) 缩进使用的4个空格 set cindent " 使用 C/C++ 语言的自动缩进方式 set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s "设置C/C++语言的具体缩进方式 set backspace=2 " 设置退格键可用 set mouse=a " 使用鼠标 set number " 显示行号 set cul " 显示当前行下划线 colorscheme ron " 设置配色方案 " MiniBufferExplorer 的设置 let g:miniBufExplMapWindowNavVim=1 "按下Ctrl+h/j/k/l,可以切换到当前窗口的上下左右窗口 let g:miniBufExplMapWindowNavArrows=1 "按下Ctrl+箭头,可以切换到当前窗口的上下左右窗口 let g:miniBufExplMapCTabSwitchBufs=1 "Ctrl+tab移到下一个窗口;Ctrl+Shift+tab移到上一个窗口 let g:miniBufExplModSelTarget=1 "不要在不可编辑内容的窗口(如TagList窗口)中打开选中的buffer " 设置分屏浏览 let Tlist_Show_One_File=1 let Tlist_Exit_OnlyWindow=1 let g:winManagerWindowLayout='FileExplorer|TagList' nmap wm :WMToggle<CR> " 修改Zen Coding 默认的快捷键映射 imap <C-e> <C-y>, " ClosePair 函数的实现 function ClosePair(char) if getline('.')[col('.') - 1] == a:char return "\<Right>" else return a:char endif endf " 设置键映射 " 很无奈下面的小括号匹配和 echofunc 插件不兼容.... " 虽然这里注释掉了,但是通过修改 echofunc插件代码在插件内成功实现...^ ^ 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 " 设置超级TAB的补全 let g:SuperTabRetainCompletionType=0 let g:SuperTabDefaultCompletionType="<C-X><C-U>" " 自动补全列表的颜色设置 highlight Pmenu ctermfg=black highlight PmenuSel ctermfg=white ctermbg=black " clang_complete 自动补全插件设置 set completeopt=longest,menu let g:clang_complete_copen=0 let g:clang_auto_select=1 let g:clang_complete_auto=1 let g:clang_complete_macros=1 let g:clang_use_library=1 let g:clang_user_options="-I/usr/include -I/usr/include/c++/4.6.3 || exit 0" " Java 自动补全设置 autocmd Filetype java set omnifunc=javacomplete#Complete autocmd Filetype java set completefunc=javacomplete#CompleteParamsInfo inoremap <buffer> <C-X><C-U> <C-X><C-U><C-P> inoremap <buffer> <C-S-Space> <C-X><C-U><C-P> autocmd Filetype java,javascript,jsp inoremap <buffer> . .<C-X><C-O><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> A A<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> B B<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> C C<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> D D<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> E E<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> F F<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> G G<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> H H<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> I I<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> J J<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> K K<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> L L<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> M M<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> N N<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> O O<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> P P<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> Q Q<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> R R<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> S S<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> T T<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> U U<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> V V<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> W W<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> X X<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> Y Y<C-N><C-P> autocmd Filetype java,javascript,css,html,xml inoremap <buffer> Z Z<C-N><C-P> " ctags 相关设置 " 按下F5,在当前目录递归生成tag文件 map <F5> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> imap <F5> <ESC>:!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR><CR> " vim 启动时自动载入以下tags文件 set tags=tags set tags+=./tags set tags+=/usr/include/tags set tags+=/usr/include/c++/tags set tags+=/usr/include/Qt/tags set tags+=/usr/include/QtGui/tags set tags+=/usr/include/QtCore/tags set tags+=/usr/include/QtNetwork/tags set tags+=/usr/include/QtSql/tags set tags+=/usr/include/gtk-3.0/tags " QuickFix 插件的设置 " 按下F6,执行make编译程序,并打开quickfix窗口,显示编译信息 map <F6> :make<CR><CR><CR> :copen<CR><CR> " 按下F7,光标移到上一个错误所在的行 map <F7> :cp<CR> " 按下F8,光标移到下一个错误所在的行 map <F8> :cn<CR> " 按下F9,执行make clean map <F9> :make clean<CR><CR><CR> " 以下的映射是使上面的快捷键在插入模式下也能用 imap <F6> <ESC>:make clean<CR><CR><CR> imap <F7> <ESC>:make<CR><CR><CR> :copen<CR><CR> imap <F8> <ESC>:cp<CR> imap <F9> <ESC>:cn<CR> " 按下F12,在当前代码的 .c / .h 之间切换 nnoremap <silent> <F10> :A<CR>