vim的一直被稱為神器,確實有很多優點,但是vim到一鍵編譯實在是一個大問題,網絡上有很多配置文件,但是大多都是同一份文件到復制粘貼,不太好用。
經過這么長時間到摸索,我終於在自己到電腦上配置好了vim,下面粘貼一下我到vimrc文件。

" This line should not be removed as it ensures that various options are " properly set to work with the Vim-related packages available in Debian. " Uncomment the next line to make Vim more Vi-compatible " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous " options, so any other options should be set AFTER setting 'compatible'. set nocompatible " Vim5 and later versions support syntax highlighting. Uncommenting the " following enables syntax highlighting by default. "設置字符編碼 :set encoding=utf-8 :set fileencodings=ucs-bom,utf-8,cp936 :set fileencoding=utf-8 :set termencoding=utf-8 if has("syntax") syntax on " 語法高亮 endif colorscheme ron " elflord ron peachpuff default 設置配色方案,vim自帶的配色方案保存在/usr/share/vim/vim72/colors目錄下 " detect file type filetype on filetype plugin on " If using a dark background within the editing area and syntax highlighting " turn on this option as well set background=dark " Uncomment the following to have Vim jump to the last position when " reopening a file if has("autocmd") au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif "have Vim load indentation rules and plugins according to the detected filetype filetype plugin indent on endif " The following are commented out as they cause vim to behave a lot " differently from regular Vi. They are highly recommended though. "set ignorecase " 搜索模式里忽略大小寫 "set smartcase " 如果搜索模式包含大寫字符,不使用 'ignorecase' 選項。只有在輸入搜索模式並且打開 'ignorecase' 選項時才會使用。 set autowrite " 自動把內容寫回文件: 如果文件被修改過,在每個 :next、:rewind、:last、:first、:previous、:stop、:suspend、:tag、:!、:make、CTRL-] 和 CTRL-^命令時進行;用 :buffer、CTRL-O、CTRL-I、'{A-Z0-9} 或 `{A-Z0-9} 命令轉到別的文件時亦然。 set autoindent " 設置自動對齊(縮進):即每行的縮進值與上一行相等;使用 noautoindent 取消設置 set smartindent " 智能對齊方式 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 showmatch " 設置匹配模式,顯示匹配的括號 set linebreak " 整詞換行 set whichwrap=b,s,<,>,[,] " 光標從行首和行末時可以跳到另一行去 "set hidden " Hide buffers when they are abandoned set mouse=a " Enable mouse usage (all modes) "使用鼠標 set number " Enable line number "顯示行號 "set previewwindow " 標識預覽窗口 set history=50 " set command history to 50 "歷史記錄50條 "--狀態行設置-- set laststatus=2 " 總顯示最后一個窗口的狀態行;設為1則窗口數多於一個的時候顯示最后一個窗口的狀態行;0不顯示最后一個窗口的狀態行 set ruler " 標尺,用於顯示光標位置的行號和列號,逗號分隔。每個窗口都有自己的標尺。如果窗口有狀態行,標尺在那里顯示。否則,它顯示在屏幕的最后一行上。 "--命令行設置-- set showcmd " 命令行顯示輸入的命令 set showmode " 命令行顯示vim當前模式 "--find setting-- set incsearch " 輸入字符串就顯示匹配點 set hlsearch "設置一鍵編譯 map <F5> :call CompileRunGcc()<CR> imap <F5> <ESC>:call CompileRunGcc()<CR> func! CompileRunGcc() exec "w" exec "cd %:p:h" if &filetype == 'c' exec "!g++ % -o %<" exec "! ./%<" elseif &filetype == 'cpp' exec "!g++ % -o %<" exec "! ./%<" elseif &filetype == 'java' exec "!javac %" exec "!java %<" elseif &filetype == 'sh' :!./% endif endfunc "設置pathonen插件可用 execute pathogen#infect() " About NERDTree noremap :<F2> NERDTreeToggle autocmd vimenter * if !argc() | NERDTree | endif "open a NERDTree automatically when vim starts up if no files were specified autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif " TagBar 自動生成參數和方法 " Then the F8 key will toggle the Tagbar window. nmap :<F8> TagbarToggle "syntastic 保存檢查代碼時候傳入參數 let g:syntastic_java_javac_args="-cp ../../lib:../../bin -sourcepath ../../bin -Djava.ext.dirs=../../lib -d ../../bin" " 關於Java自動文件補全插件 autocmd Filetype java set omnifunc=javacomplete#Complete autocmd Filetype java set completefunc=javacomplete#CompleteParamsInf
這里只是我的電腦里面到配置,個人不保證在其他人到電腦里也好用。
引用成神到一句話:工具都是用出來到,不是學出來的。
所以如果想用好vim,還是要在平時多多到使用,然后遇到不方便到東西就google,慢慢到就會越用越好用了。
加油。
引用了大神關於一鍵編譯到配置:http://www.voidcn.com/blog/u010734277/article/p-6021225.html。