天天看点

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