天天看點

vimr配置

" 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>"