vim的功能其實是由配置文件和插件共同決定的,這裏我提供一份配置文件源碼。你們複製到本身的.vimrc文件中便可。方法是先複製到剪貼板而後打開 cd ~/.vimrc,拷貝進去就行了。保存按:linux
sheft+: wc++
退出輸入:qexpress
若是沒有.vimrc文件,輸入 vim ~/.vimrc 會自動建立一個名爲~/.vimrc的文件,而後在將我提供的配置文件源碼複製進去便可。複製完以後保存,vim
保存按:windows
sheft+: wsession
退出輸入:qide
set helplang=cn set encoding=utf-8 set cscopequickfix=s-,c-,d-,i-,t-,e- nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR> nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR> nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR> nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR> nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR> nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR> nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR> nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR> let g:miniBufExplMapCTabSwitchBufs = 1 let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplMapWindowNavArrows = 1 nnoremap <silent> <F12> :A<CR> nnoremap <silent> <F3> :Grep<CR> let g:SuperTabRetainCompletionType=2 let g:SuperTabDefaultCompletionType="<C-X><C-O>" " 自動語法高亮 syntax on " 檢測文件類型 filetype on " 檢測文件類型插件 filetype plugin on " 不設定在插入狀態沒法用退格鍵和 Delete 鍵刪除回車符 set backspace=indent,eol,start set whichwrap+=<,>,h,l " 顯示行號 set number " 上下可視行數 set scrolloff=6 " replace tab with space set expandtab " 設定 tab 長度爲 4 set tabstop=4 " 設置按BackSpace的時候能夠一次刪除掉4個空格 set softtabstop=4 " 設定 << 和 >> 命令移動時的寬度爲 4 set shiftwidth=4 set smarttab set history=1024 " 不突出顯示當前行 set nocursorline " 覆蓋文件時不備份 set nobackup " 自動切換當前目錄爲當前文件所在的目錄 set autochdir " 搜索時忽略大小寫,但在有一個或以上大寫字母時仍大小寫敏感 set ignorecase set smartcase " 搜索到文件兩端時不從新搜索 set nowrapscan " 實時搜索 set incsearch " 搜索時高亮顯示被找到的文本 set hlsearch " 關閉錯誤聲音 set noerrorbells set novisualbell "set t_vb= " 不自動換行 "set nowrap "How many tenths of a second to blink set mat=2 " 容許在有未保存的修改時切換緩衝區,此時的修改由 vim 負責保存 set hidden " 智能自動縮進 set smartindent " 設定命令行的行數爲 1 set cmdheight=1 " 顯示狀態欄 (默認值爲 1, 沒法顯示狀態欄) set laststatus=2 "顯示括號配對狀況 set showmatch " 解決自動換行格式下, 如高度在折行以後超過窗口高度結果這一行看不到的問題 set display=lastline " 設定配色方案 colorscheme evening " 設置在狀態行顯示的信息 set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ [%{(&fenc==\"\"?&enc:&fenc).(&bomb?\",BOM\":\"\")}]\ %c:%l/%L%) " 顯示Tab符 set list set listchars=tab:\|\ ,trail:.,extends:>,precedes:< "啓動時不顯示 捐贈提示 set shortmess=atl "blank 空白 "buffers 緩衝區 "curdir 當前目錄 "folds 摺疊 "help 幫助 "options 選項 "tabpages 選項卡 "winsize 窗口大小 "slash 轉換文件路徑中的\爲/以使session文件兼容unix "unix 設置session文件中的換行模式爲unix set sessionoptions=blank,buffers,curdir,folds,help,options,tabpages,winsize,slash,unix,resize " 容許backspace和光標鍵跨越行邊界 set whichwrap+=<,>,h,l " backspace set backspace=eol,start,indent " 能夠在buffer的任何地方使用鼠標(相似office中在工做區雙擊鼠標定位) set mouse=a set selection=exclusive set selectmode=mouse,key " 在被分割的窗口間顯示空白,便於閱讀 set fillchars=vert:\ ,stl:\ ,stlnc:\ " 高亮顯示匹配的括號 set showmatch " 匹配括號高亮的時間(單位是十分之一秒) set matchtime=5 "編碼設置 set enc=utf-8 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 " set mapleader let mapleader="," nmap J 5j nmap K 5k " Ctrl+a nmap <silent> <C-a> ggvG$ " 選中狀態下 Ctrl+c 複製 vnoremap <c-c> "+y " Ctrl+v nmap <silent> <C-v> "+p " 窗口切換 nnoremap <c-h> <c-w>h nnoremap <c-l> <c-w>l nnoremap <c-j> <c-w>j nnoremap <c-k> <c-w>k " 插入模式下上下左右移動光標 inoremap <c-h> <left> inoremap <c-l> <right> inoremap <c-j> <c-o>gj inoremap <c-k> <c-o>gk " Ctrl+s " If the current buffer has never been saved, it will have no name, " call the file browser to save it, otherwise just save it. "nnoremap <silent> <C-S> :if expand("%") == ""<CR>browse confirm w<CR>else<CR>confirm w<CR>endif<CR> "imap <c-s> <c-o><c-s><CR> " Use CTRL-S for saving, also in Insert mode nmap <C-S> :update<CR> vmap <C-S> <C-C>:update<CR> imap <C-S> <C-O>:update<CR> " C++的編譯和運行 "map <F6> :call CompileRunGpp()<CR> "func! CompileRunGpp() "exec "w" "exec "!g++ % -o %<" "exec "! ./%<" "endfunc map <F10> :call RunGpp()<cr> func! RunGpp() exec "w" exec "! ./%<" endfunc "vim plugin setting "======================" set tags=tags set tags+=~/.vim/my-tags/tags set tags+=~/.vim/my-tags/stl-tags set tags+=~/.vim/my-tags/sys-tags set autochdir "Update ctags map <silent> <F8> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q<cr> """""""""""""""""""""""""""""" " Tag list (ctags) """""""""""""""""""""""""""""" "if MySys() == "windows" "設定windows系統中ctags程序的位置 " let Tlist_Ctags_Cmd = 'ctags' "elseif MySys() == "linux" "設定Linux系統中ctags程序的位置 let Tlist_Ctags_Cmd = '/home/sphinx/.vim/ctags-5.8/ctags' "endif let Tlist_Show_One_File = 1 "不一樣時顯示多個文件的tag,只顯示當前文件的 let Tlist_Exit_OnlyWindow = 1 "若是taglist窗口是最後一個窗口,則退出vim let Tlist_Use_Right_Window = 0 "在右側窗口中顯示taglist窗口 let Tlist_OnlyWindow=1 "let Tlist_Use_Right_Window=0 "let Tlist_Sort_Type='name' "let Tlist_Show_Menu=1 "let Tlist_Max_Submenu_Items=10 "let Tlist_Max_Tag_length=16 "20 "let Tlist_Use_SingleClick=0 "let Tlist_Auto_Open=0 "let Tlist_Close_On_Select=0 "let Tlist_File_Fold_Auto_Close=1 "let Tlist_GainFocus_On_ToggleOpen=0 "let Tlist_Process_File_Always=1 "let Tlist_WinHeight=10 "let Tlist_WinWidth=18 "let Tlist_Use_Horiz_Window=0 let Tlist_Auto_Highlight_Tag = 1 "let Tlist_Auto_Open = 1 let Tlist_Auto_Update = 1 let Tlist_Close_On_Select = 0 let Tlist_Compact_Format = 0 let Tlist_Display_Prototype = 0 let Tlist_Display_Tag_Scope = 1 let Tlist_Enable_Fold_Column = 0 let Tlist_File_Fold_Auto_Close = 0 let Tlist_GainFocus_On_ToggleOpen = 1 let Tlist_Hightlight_Tag_On_BufEnter = 1 let Tlist_Inc_Winwidth = 0 let Tlist_Max_Submenu_Items = 1 let Tlist_Max_Tag_Length = 30 let Tlist_Process_File_Always = 0 let Tlist_Show_Menu = 0 let Tlist_Sort_Type = "order" let Tlist_Use_Horiz_Window = 0 let Tlist_WinWidth = 31 map <F12> :TlistOpen<CR> "OMNI "omnicppcoplete "-- omnicppcomplete setting -- set completeopt=menu,menuone let OmniCpp_MayCompleteDot = 1 " autocomplete with . let OmniCpp_MayCompleteArrow = 1 " autocomplete with -> let OmniCpp_MayCompleteScope = 1 " autocomplete with :: let OmniCpp_SelectFirstItem = 2 " select first item (but don't insert) let OmniCpp_NamespaceSearch = 2 " search namespaces in this and included files let OmniCpp_ShowPrototypeInAbbr = 1 " show function prototype in popup window let OmniCpp_GlobalScopeSearch=1 let OmniCpp_DisplayMode=1 let OmniCpp_DefaultNamespaces=["std"] set nocp filetype plugin on "WinManager let g:winManagerWindowLayout='FileExplorer|TagList' "let g:winManagerWindowLayout='FileExplorer|BufExplorer|TagList' let g:persistentBehaviour=0 let g:winManagerWidth=20 let g:defaultExplorer=1 nmap wm :WMToggle<cr> "QuickFix nmap <F6> :cn<cr> nmap <F7> :cp<cr> "MiniBufExplorer "let g:miniBufExplMapWindowNavVim = 1 "let g:miniBufExplMapWindowNavArrows = 1 let g:miniBufExplModSelTarget = 1 let g:miniBufExplorerMoreThanOne = 2 let g:miniBufExplModSelTarget = 0 let g:miniBufExplUseSingleClick = 1 let g:miniBufExplMapWindowNavVim = 1 let g:miniBufExplVSplit = 15 "25 let g:miniBufExplSplitBelow=1 let g:bufExplorerSortBy = "name" autocmd BufRead,BufNew :call UMiniBufExplorer map <leader>u :TMiniBufExplorer<cr> "AutoClose "let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"} let g:AutoClosePairs = {'(': ')', '{': '}', '[': ']', '"': '"', "'": "'"} """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Maintainer: " " Geek SphinX " " topcodersphinx@gmail.com " " " " Version: " " 1.0 - Thu Nov 1 17:21:44 CST 2012 " " " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Sets how many lines of history VIM has to remember " set history=1024 " " " Auto syntax highlight " set syntax=on " " " Check file format " filetype on " " " Enable filetype plugins " filetype plugin on " filetype indent on " " " Sets non VI compatible mode " set nocompatible " " " Set to auto read when a file is changed from the outside " set autoread " " " With a map leader it's possible to do extra key combinations " " like <leader>w saves the current file " let mapleader = "," " let g:mapleader = "," " " " Fast saving " nmap <leader>w :w<cr> " nmap <leader>q :q<cr> " " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " => VIM user interface " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Replace J, K " nmap J 5j " nmap K 5k " " " Ctrl+A to select all content in visual mode " nmap <silent> <C-a> ggvG$ " " " Ctrl+C to copy " vnoremap <C-c> "+y " " " Ctrl+V to paste " nmap <silent> <C-v> "+p " " " Set 7 lines to the cursor - when moving vertically using j/k " set so=7 " " " Turn on the Wild menu " set wildmenu " " " Ignore compiled files " set wildignore=*.o,*~,*.pyc " " "Always show current position " set ruler " " " Height of the command bar " set cmdheight=2 " " " A buffer becomes hidden when it is abandoned " set hid " " " Configure backspace so it acts as it should act " set whichwrap+=<,> " set backspace=indent,eol,start " " " Ignore case when searching " set ignorecase " " " When searching try to be smart about cases " set smartcase " " " Highlight search results " set hlsearch " " " Makes search act like search in modern browsers " set incsearch " " " Don't redraw while executing macros (good performance config) " set lazyredraw " " " For regular expressions turn magic on " set magic " " " Show matching brackets when text indicator is over them " set showmatch " " " How many tenths of a second to blink when matching brackets " set mat=2 " " " No annoying sound on errors set noerrorbells " set novisualbell " set t_vb= " set tm=500 " " " Show line number " set number " " " Highlight over 80 columns " highlight OverLength ctermbg=red ctermfg=white guibg=#592929 " match OverLength /\%81v.\+/ " " " Show Tab symbol " set list " set listchars=tab:\|\ ,trail:.,extends:>,precedes:< " " " Switch windows " nnoremap <C-h> <C-w>h " nnoremap <C-l> <C-w>l " nnoremap <C-j> <C-w>j " nnoremap <C-k> <C-w>k " " " Move cursor in insert mode " inoremap <C-h> <C-o>h " inoremap <C-l> <C-o>l " inoremap <C-j> <C-o>j " inoremap <C-k> <C-o>k " " " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " => Colors and Fonts " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Enable syntax highlighting " syntax enable " " "colorscheme desert " colorscheme molokai " set background=dark " " " Set extra options when running in GUI mode " if has("gui_running") " set guioptions-=T " set guioptions+=e " set t_Co=256 " set guitablabel=%M\ %t " endif " " " Set utf8 as standard encoding and en_US as the standard " language " set encoding=utf8 " " " Use Unix as the standard file type " set ffs=unix,dos,mac " " " Use Inconsolata as the gui font " set guifont=Inconsolata\ 15 " " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " => Text, tab and indent related " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " Use spaces instead of tabs " set expandtab " " " Be smart when using tabs ;) " set smarttab " " " 1 tab == 4 spaces " set shiftwidth=4 " set tabstop=4 " " " Linebreak on 500 characters " set lbr " set tw=500 " " set ai "Auto indent " set si "Smart indent " set wrap "Wrap lines " " " """""""""""""""""""""""""""""" " " => Status line " """""""""""""""""""""""""""""" " " Always show the status line " set laststatus=2 " " " Format the status line " "set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ " Line:\ %l " " " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " => Mouse " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " set mouse=a " set selection=exclusive " set selectmode=mouse,key " " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " " => Plugins " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""