vim 的配置与前期准备
1.安装 vim gcc make clang
2.将以下代码复制进自己的 .vimrc中
"---------------------------------------- " vim 配置 " 2014 11 23 "---------------------------------------- " set nocompatible " be iMproved, required filetype off " required " set the runtime path to include Vundle and initialize set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin ‘gmarik/Vundle.vim‘ Plugin ‘taglist.vim‘ Plugin ‘minibufexpl.vim‘ Plugin ‘winmanager‘ Plugin ‘clang-complete‘ Plugin ‘supertab‘ Plugin ‘scrooloose/syntastic‘ Plugin ‘Lokaltog/vim-powerline‘ Plugin ‘WolfgangMehner/vim-plugins‘ Bundle ‘altercation/vim-colors-solarized‘ call vundle#end() " required "----------基本设置---------------------- filetype plugin indent on syntax on " 使用语法高亮 set autoread " 使用不兼容 vi 的模式 set autoindent " 设置自动对齐(缩进) set smartindent " 智能对齐方式 set wrap " 自动换行 set linebreak " 整词换行 set cindent " 使用 C/C++ 语言的自动缩进方式 set backspace=2 " 设置退格键可用 set mouse=a " 使用鼠标 set number " 显示行号 set cul " 显示当前行下划线 set tabstop=8 " 设置制表符(tab键)的宽度 set softtabstop=8 " 设置软制表符的宽度 set expandtab " Tab替换空格 scriptencoding utf-8 " 设置编码 set cursorline " 高亮当前行 set nobackup set noswapfile "禁止生成临时文件 set wildmenu "补全命令 set scrolloff=4 " 光标移动到buffer的顶部和底部时保持3行距离,再往下移动页面时,光标与最后一行始终保持4格的距 "----------------tags------------------ "--------------------------------------- " "-------------------- 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=0 let Tlist_Exit_OnlyWindow=1 let g:winManagerWindowLayout=‘FileExplorer|TagList‘ nmap wm :WMToggle<CR> "------------clang-complete----------------- "---------------------------------------------- set completeopt=longest,menu let g:clang_auto_select=1 let g:clang_complete_select=1 let g:clang_complete_copen=1 let g:clant_periodic_quickfix=1 let g:clang_snippets=0 let g:clang_close_preview=1 let g:clang_use_library=1 "-------------设置超级TAB的补全-------------- let g:SuperTabRetainCompletionType=0 let g:SuperTabDefaultCompletionType="<C-X><C-U>" "------------------------------------------------ " "------------------- powerline 配置------------------- set nocompatible set laststatus=2 set encoding=utf-8 set t_Co=256 set guifont=PowerlineSymbols\ for\ let g:Powerline_symbols=‘unicode‘ let g:Powerline_stl_path_style=‘full‘ "------------------------------------------------ syntax enable set background=dark colorscheme solarized set foldenable " 允许折叠 set fdm=marker set foldcolumn=0 set foldlevel=3 "关于折叠的一些设置,但看不懂 " 按下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/local/src/linux-3.12.6/tags set tags+=/usr/include/Linux/tags set tags+=/usr/include/tags set tags+=/usr/include/sys/tags set tags+=./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<CR><CR><CR> :copen<CR><CR> imap <F7> <ESC>:cp<CR> imap <F8> <ESC>:cn<CR> imap <F9> <ESC>:make clean<CR><CR><CR> "C,C++ 按F2编译运行 map <F2> :call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" if &filetype == ‘c‘ exec "!gcc -g % -o %<" exec ":copen" elseif &filetype == ‘cpp‘ exec "!g++ % -o %<" exec "! ./%<" elseif &filetype == ‘java‘ exec "!javac %" exec "!java %<" elseif &filetype == ‘sh‘ :!./% elseif &filetype == ‘py‘ exec "!python %" exec "!python %<" endif endfunc "插入模式下的非递归映射,自动补全的映射 inoremap <C-F> <C-X><C-D> " 预防手误 cnoremap Q! q! cnoremap Q1 q! command Q q command Wq wq command WQ wq command W w
3.退出。重新进入,并且在命令行中输入 PluginInstall 可以按前几个字母,然后按table 自动补全查找
4. 等待下载完成
5. 结束
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。