1. 程式人生 > >Vim配置檔案,帶詳細註釋

Vim配置檔案,帶詳細註釋

"設定vim的顏色方案

colorscheme default

" 不要使用vi的鍵盤模式,而是vim自己的 

set nocompatible 

" 儲存檔案格式

set sessionoptions+=resize

" 共享外部剪貼簿

set showcmd

" 隱藏掉選單和工具條。

set guioptions-=T

"全屏vim視窗 

set helplang=cn

" 語法高亮 

syntax on 

" 去掉輸入錯誤的提示聲音 

"set noeb 

" 在處理未儲存或只讀檔案的時候,彈出確認 

set confirm 

" 自動縮排 

set autoindent 

set cindent 

" Tab鍵的寬度 

set tabstop=4 

" 統一縮排為4 

set softtabstop=4 

set shiftwidth=4 

" 不要用空格代替製表符 

set noexpandtab 

" 在行和段開始處使用製表符 

set smarttab 

" 顯示行號 

set number 

" 歷史記錄數 

set history=10000

"禁止生成臨時檔案 

"set nobackup 

"set noswapfile 

"搜尋忽略大小寫 

set ignorecase 

"搜尋逐字元高亮 

set hlsearch 

set incsearch 

"行內替換 

set gdefault 

" 總是顯示狀態行

"set laststatus=2

" 在編輯過程中,在右下角顯示游標位置的狀態行

set ruler

" 命令列(在狀態行下)的高度,預設為1,這裡是2

"set cmdheight=2

" 偵測檔案型別

filetype on

" 載入檔案型別外掛

"filetype plugin on

" 為特定檔案型別載入相關縮排檔案

filetype indent on

" 儲存全域性變數

set viminfo+=!

" 帶有如下符號的單詞不要被換行分割

"set iskeyword+=_,$,@,%,#,-

" 字元間插入的畫素行數目

"set linespace=0

" 增強模式中的命令列自動完成操作

set wildmenu

" 使回格鍵(backspace)正常處理indent, eol, start等

set backspace=2

" 允許backspace和游標鍵跨越行邊界

"set whichwrap+=<,>,h,l

" 可以在buffer的任何地方使用滑鼠(類似office中在工作區雙擊滑鼠定位)

set mouse=a

set selection=exclusive

set selectmode=mouse,key

" 通過使用: commands命令,告訴我們檔案的哪一行被改變過

set report=0

" 啟動的時候不顯示那個援助索馬利亞兒童的提示

set shortmess=atI

" 在被分割的視窗間顯示空白,便於閱讀

"set fillchars=vert:\ ,stl:\ ,stlnc:\

" 高亮顯示匹配的括號

set showmatch

" 匹配括號高亮的時間(單位是十分之一秒)

set matchtime=5

" 游標移動到buffer的頂部和底部時保持3行距離

"set scrolloff=3

" 為C程式提供自動縮排

set smartindent

"編碼設定 

"set enc=utf-8 

"set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936 

"語言設定 

"set langmenu=zh_CN.UTF-8 

"set helplang=cn 

" 我的狀態行顯示的內容(包括檔案型別和解碼) 

"set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} 

"set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] 

" 設定顯示字型 把任意一個去掉註釋就行了

"set guifont=Courier_New:h12:cANSI

"set guifontwide=Microsoft\ Yahei\ Monotype:h11

"endif 

" 只在下列檔案型別被偵測到的時候顯示行號,普通文字檔案不顯示 

"if has("autocmd") 

"   autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number 

"   autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o--> 

"   autocmd FileType java,c,cpp,cs vmap <C-o> <ESC>'<o/*<ESC>'>o*/ 

"   autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100 

"   autocmd Filetype html,xml,xsl source $VIMRUNTIME/plugin/closetag.vim 

"   autocmd BufReadPost * 

"      \ if line("'\"") > 0 && line("'\"") <= line("$") | 

"      \   exe "normal g`\"" | 

"      \ endif 

"endif " has("autocmd") 

" F5編譯和執行C程式,F6編譯和執行C++程式 

" 請注意,下述程式碼在windows下使用會報錯 

" 需要去掉./這兩個字元 

" C的編譯和執行 

"map <F5> :call CompileRunGcc()<CR> 

"func! CompileRunGcc() 

"exec "w" 

"exec "!gcc % -o %<" 

"exec "! ./%<" 

"endfunc 

" C++的編譯和執行 

map <F6> :call CompileRunGpp()<CR> 

func! CompileRunGpp() 

exec "w" 

exec "!g++ % -o %<" 

exec "! ./%<" 

endfunc 

" 能夠漂亮地顯示.NFO檔案 

"set encoding=utf-8 

"function! SetFileEncodings(encodings) 

"    let b:myfileencodingsbak=&fileencodings 

"    let &fileencodings=a:encodings 

"endfunction 

"function! RestoreFileEncodings() 

"    let &fileencodings=b:myfileencodingsbak 

"    unlet b:myfileencodingsbak 

"endfunction 

"au BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single 

"au BufReadPost *.nfo call RestoreFileEncodings() 

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"""下面是外掛,沒有安裝外掛就不要copy了.

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 高亮顯示普通txt檔案(需要txt.vim指令碼) 

"au BufRead,BufNewFile *  setfiletype txt 

" 用空格鍵來開關摺疊 

"set foldenable 

"set foldmethod=manual 

"nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> 

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" minibufexpl外掛的一般設定 

""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"let g:miniBufExplMapWindowNavVim = 1 

"let g:miniBufExplMapWindowNavArrows = 1 

"let g:miniBufExplMapCTabSwitchBufs = 1 

"let g:miniBufExplModSelTarget = 1 

"

"

""""""""""""""""""""""""""""""

" Tag list (ctags)

""""""""""""""""""""""""""""""

"設定ctags程式的路徑

let Tlist_Ctags_Cmd = '/usr/local/bin/ctags'

"不同時顯示多個檔案的tag,只顯示當前檔案的

let Tlist_Show_One_File = 1

"如果taglist視窗是最後一個視窗,則退出vim

let Tlist_Exit_OnlyWindow = 1

"在右側視窗中顯示taglist視窗 

let Tlist_Use_Right_Window = 1

"自動開啟Tlist

let Tlist_Auto_Open = 1

"TList開關對映F8

map <silent> <F8> :TlistToggle<cr> 

""""""""""""""""""""""""""""""

" netrw setting

" """"""""""""""""""""""""""""""

" 設定視窗寬度為30

"let g:netrw_winsize = 30

"設定對映按鈕,這裡是dir

"map <silent> dir :Explore<cr>

""""""""""""""""""""""""""""""

" BufExplorer

" """"""""""""""""""""""""""""""

"let g:bufExplorerDefaultHelp=0       " Do not show default help.

"let g:bufExplorerShowRelativePath=1  " Show relative paths.

"let g:bufExplorerSortBy='mru'        " Sort by most recently used.

"let g:bufExplorerSplitRight=0        " Split left.

"let g:bufExplorerSplitVertical=1     " Split vertically.

"let g:bufExplorerSplitVertSize = 30  " Split width

"let g:bufExplorerUseCurrentWindow=1  " Open in new window.

"autocmd BufWinEnter \[Buf\ List\] setl nonumber 

""""""""""""""""""""""""""""""

" winManager setting

" """"""""""""""""""""""""""""""

"let g:winManagerWindowLayout = "BufExplorer,FileExplorer|TagList"

"let g:winManagerWidth = 30

"let g:defaultExplorer = 0

"let g:loaded_winmanager = 1

"map <C-W><C-F> :FirstExplorerWindow<cr>

"map <C-W><C-B> :BottomExplorerWindow<cr>

"map <C-W><C-T> :WMToggle<cr> 

"map <silent> wm :WMToggle<cr> 

""""""""""""""""""""""""""""""

" lookupfile setting

" """"""""""""""""""""""""""""""

let g:LookupFile_MinPatLength = 2               "最少輸入2個字元才開始查詢

let g:LookupFile_PreserveLastPattern = 0        "不儲存上次查詢的字串

let g:LookupFile_PreservePatternHistory = 1     "儲存查詢歷史

let g:LookupFile_AlwaysAcceptFirst = 1          "回車開啟第一個匹配專案

let g:LookupFile_AllowNewFiles = 0              "不允許建立不存在的檔案

"if filereadable("./filenametags")                "設定tag檔案的名字

"let g:LookupFile_TagExpr = '"./filenametags"'

"endif

"nmap <silent> <leader>lk <Plug>LookupFile<cr>   "對映LookupFile為,lk

"nmap <silent> <leader>ll :LUBufs<cr>            "對映LUBufs為,ll

"nmap <silent> <leader>lw :LUWalk<cr>            "對映LUWalk為,lw 

" lookup file with ignore case

" function! LookupFile_IgnoreCaseFunc(pattern)

"     let _tags = &tags

"     try

"         let &tags = eval(g:LookupFile_TagExpr)

"         let newpattern = '\c' . a:pattern

"         let tags = taglist(newpattern)

"     catch

"         echohl ErrorMsg | echo Exception: " . v:exception | echohl NONE

"         return ""

"    finally

"         let &tags = _tags

" endtry

" Show the matches for what is typed so far.

"     let files = map(tags, 'v:val["filename"]')

"         return files

"         endfunction

"let g:LookupFile_LookupFunc = 'LookupFile_IgnoreCaseFunc' 

"

"

"

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" vim normal模式下的命令,這些不是在vimrc下的配置,只作為提醒

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

"":cc                顯示詳細錯誤資訊 ( :help :cc )

"":cp                跳到上一個錯誤 ( :help :cp )

"":cn                跳到下一個錯誤 ( :help :cn )

"":cl                列出所有錯誤 ( :help :cl )

"":cw                如果有錯誤列表,則開啟quickfix視窗 ( :help :cw )

"":col               到前一箇舊的錯誤列表 ( :help :col )

"":cnew              到後一個較新的錯誤列表 ( :help :cnew ) 

""整行補全                        CTRL-X CTRL-L

""根據當前檔案裡關鍵字補全        CTRL-X CTRL-N

""根據字典補全                    CTRL-X CTRL-K

""根據同義詞字典補全              CTRL-X CTRL-T

""根據標頭檔案內關鍵字補全          CTRL-X CTRL-I

""根據標籤補全                    CTRL-X CTRL-]

""補全檔名                      CTRL-X CTRL-F

""補全巨集定義                      CTRL-X CTRL-D

""補全vim命令                     CTRL-X CTRL-V

""使用者自定義補全方式              CTRL-X CTRL-U

""拼寫建議                        CTRL-X CTRL-S 

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""