" Source a global configuration file if available
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
endif
set nocompatible "去掉vi一緻性模式
set autoread "檔案被改動時自動載入
syntax enable "設定文法高亮
syntax on
set hlsearch "高亮顯示結果
set incsearch "在輸入要搜尋的文字時,vim會實時比對
set backspace=indent,eol,start whichwrap+=<,>,[,] "允許倒退鍵的使用colorscheme elflord
colorscheme peachpuff "tango"desert "設定配色方案
set wrap "設定允許自動換行
set whichwrap=b,s,<,>,[,]
"set slidescroll=10 "設定光标的自動滾動
set linebreak "設定整詞換行
set history=1000 "設定曆史
set help語言設定
set encoding=utf8
set langmenu=zh_CN.UTF-8
set imcmdline
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
set guifont=Liberation\Mono\ 12 " 設定字型
set showmatch "設定比對模式,輸入左括号會比對右括号
set mouse=a "設定滑鼠一直可用
set selection=exclusive
set selectmode=mouse,key
set nocursorline "不高亮目前行
highlight StatusLine guifg=SlateBlue guibg=yellow "設定狀态行顔色
highlight StatusLineNC guifg=Gray guibg=White
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 laststatus=2 " 總是顯示狀态行
set ruler " 在編輯過程中,在右下角顯示光标位置的狀态行
set cmdheight=2 " 指令行(在狀态行下)的高度,預設為1,這裡是2
set fillchars=vert:\ ,stl:\ ,stlnc:\ "在被分割的視窗顯示空白,便于閱讀
set report=0 "通過commands指令,告訴我們那一行被修改過
set incsearch "搜尋時逐字高亮
set ignorecase "搜尋時忽視大小寫
filetype on "打開檔案類型自動檢測功能
set clipboard+=unnamed "與windows共享剪貼闆
set wildmenu " 增強模式中的指令行自動完成操作
set tabstop=4 "制表符為
"behave mswin "使滑鼠的使用符合windows的習慣,右鍵出現菜單,此時未開啟
set softtabstop=4 "統一縮進為4
set shiftwidth=4
set formatoptions=tcrqn "自動格式化
set smartindent "為c語言提供自動縮進
set autoindent "繼承前一行的縮進模式
set viminfo+=! "儲存全局變量
set nu "顯示行數
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
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")
if filereadable("/etc/vim/gvimrc.local") "如果有global可以使用
source /etc/vim/gvimrc.local
endif
set tags=tags; "設定目前目錄
"set autochdir
"set tags=/home/acer/下載下傳/ctags-5.8/tags;
"set tags=/home/acer/tags
set tags+=../tags "為/usr/include目錄生成tags檔案
let Tlist_Sort_Type = "name" "按名稱排序
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
let Tlist_Show_One_File = 1 "不同時顯示多個檔案的tag,隻顯示目前檔案的
let Tlist_Exit_OnlyWindow = 1 "如果taglist視窗是最後一個視窗,則退出vim
let Tlist_Use_Right_Window = 1 "在左側視窗顯示taglist視窗
let Tlist_Enable_Fold_Column = 1 "不顯示折疊樹
let Tlist_Use_SingleClick=1 "單擊時跳轉
let Tlist_Process_File_Always=1 "不管taglist視窗是否打開,始終解析檔案中的tag
let Tlist_GainFocus_On_ToggleOpen=1 "打開taglist時獲得輸入焦點
nmap tl :TlistToggle<cr> "鍵盤映射
let g:winManagerWindowLayout='FileExplorer'
nmap wm :WMToggle<cr>
map <silent> <F8> :WMToggle<cr> "将F8綁定至WinManager,即打開WimManager
":cs find g vim_strsave
syn on "vim latex配置
filetype plugin on
filetype indent on
set shellslash
set grepprg=grep\ -nH\ $*
let g:tex_flavor = "latex"
" OmniCppComplete 配置
set nocp " non vi compatible mode
filetype plugin on " enable plugins
filetype plugin indent on
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complete
if has("autocmd") && exists("+omnifunc")
autocmd Filetype *
\ if &omnifunc == "" |
\ setlocal omnifunc=syntaxcomplete#Complete |
\ endif
endif
let g:rubycomplete_buffer_loading = 1
let g:rubycomplete_classes_in_global = 1
"let g:rubycomplete_rails = 1
set fenc=utf-8 " 設定預設解碼
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
let g:fencview_autodetect = 1 "打開檔案時自動識别編碼
let g:fencview_checklines = 100 "檢查前後100行來判斷編
set fileencodings=ucs-bom,utf8,GB18030,Big5,latin1
if has("cscope") "cscope配置
set csprg=/usr/bin/cscope
set csto=1
set cst
set nocsverb
" add any database in current directory
if filereadable("cscope.out")
cs add cscope.out
endif
set csverb
endif
nmap <[email protected]>s :cs find s <C-R>=expand("<cword>")<CR><CR>
nmap <[email protected]>g :cs find g <C-R>=expand("<cword>")<CR><CR>
nmap <[email protected]>c :cs find c <C-R>=expand("<cword>")<CR><CR>
nmap <[email protected]>t :cs find t <C-R>=expand("<cword>")<CR><CR>
nmap <[email protected]>e :cs find e <C-R>=expand("<cword>")<CR><CR>
nmap <[email protected]>f :cs find f <C-R>=expand("<cfile>")<CR><CR>
nmap <[email protected]>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>
nmap <[email protected]>d :cs find d <C-R>=expand("<cword>")<CR><CR>
let g:miniBufExplMapCTabSwitchBufs = 1 "設定minibufexpl插件
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplModSelTarget = 1
set encoding=utf-8 "能夠漂亮地顯示.NFO檔案
function! SetFileEncodings(encodings)
let b:myfileencodingsbak=&fileencodings
let &fileencodings=a:encodings
endfunction
function! RestoreFileEncodings()
let &fileencodings=b:myfileencodingsbak
unlet b:myfileencodingsbak
endfunction
nnoremap <silent> <F12> :A<CR>
nnoremap <silent> <F3> :Grep<CR>
map <F6> :make<CR> "設定一鍵編譯
"filetype plugin indent on "自動補全
"set completeopt=longest,menu "關掉加速補全時候的視窗
"let g:SuperTabRetainCompletionType=2 "加速補全
"let g:SuperTabDefaultCompletionType="<C-X><C-O>"
"{{{ plugin - mru.vim 記錄最近打開的檔案
let MRU_File = $VIMFILES.'/_vim_mru_files'
let MRU_Max_Entries = 1000
let MRU_Add_Menu = 0
nmap <leader>f :MRU<CR>
" }}}
map <F5> :call CompileRunGcc()<CR> " C的編譯和運作, F5編譯和運作C程式
func! CompileRunGcc()
exec "w"
exec "!gcc -Wall % -o %<"
exec "! ./%<"
endfunc
map <F6> :call CompileRunGpp()<CR> " C++的編譯和運作,F6編譯和運作C++程式
func! CompileRunGpp()
exec "w"
exec "!g++ -Wall % -o %<"
exec "! ./%<"
endfunc
vmap <C-c> "yy "模仿MS windows中的快捷鍵
vmap <C-x> "yd
nmap <C-v> "yp
vmap <C-v> "yp
nmap <C-a> ggvG$
let NERDshutUp=1
set shortmess=atI "不顯示援助索馬裡兒童資訊
let g:calendar_diary="/home/acer/文檔/dairy/" "月曆顯示配置路徑與快捷鍵
map ca :Calendar<cr>
if has("win32") "vimwiki的配置
let $VIMFILES = $VIM.'/vimfiles'
else
let $VIMFILES = $HOME.'/.vim' "對于vim配置檔案的識别
endif
let g:vimwiki_use_mouse = 1
" 多個維基項目的配置
let g:vimwiki_list = [{'path': 'E:/My Dropbox/vimwiki/',
\ 'html_header': 'E:/My Dropbox/Public/vimwiki_template/header.htm',
\ 'html_footer': 'E:/My Dropbox/Public/vimwiki_template/footer.htm',
\ 'diary_link_count': 5},
\{'path': 'Z:\demo\qiuchi\wiki'}]
" 對中文使用者來說,我們并不怎麼需要駝峰英文成為維基詞條
let g:vimwiki_camel_case = 0
" 标記為完成的 checklist 項目會有特别的顔色
let g:vimwiki_hl_cb_checked = 1
" 是否開啟按文法折疊 會讓檔案比較慢
"let g:vimwiki_folding = 1
" 是否在計算字串長度時用特别考慮中文字元
let g:vimwiki_CJK_length = 1
map <S-F4> :VimwikiAll2HTML<cr> "設定快捷鍵自動儲存為HTML檔案
map <F4> :Vimwiki2HTML<cr>
nmap <silent> ,hl <Plug>MarkSet "mark給不同的單詞高亮配置
vmap <silent> ,hl <Plug>MarkSet
nmap <silent> ,hh <Plug>MarkClear
vmap <silent> ,hh <Plug>MarkClear
nmap <silent> ,hr <Plug>MarkRegex
vmap <silent> ,hr <Plug>MarkRegex
" <leader>* 目前MarkWord的下一個 <leader># 目前MarkWord的上一個
" <leader>/ 所有MarkWords的下一個 <leader>? 所有MarkWords的上一個
let g:wm_move_left = "<A-h>" "winmove配置,主要是用于調整視窗大小
let g:wm_move_right = "<A-l>"
let g:wm_move_up = "<A-k>"
let g:wm_move_down = "<A-j>"