zoukankan      html  css  js  c++  java
  • vim配置文件~/.vimrc

    在启动vim时,当前用户根目录下的.vimrc文件会被自动读取,该文件可以包含一些设置甚至脚本。

    "设置编码
    set encoding=utf-8
    set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
    set fileencodings=utf-8,ucs-bom,chinese
     
    "语言设置
    set langmenu=zh_CN.UTF-8
     
    "设置语法高亮
    syntax enable
    syntax on
     
    "设置配色方案
    colorscheme torte
     
    "可以在buffer的任何地方使用鼠标
    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
     
    "高亮显示匹配的括号
    set showmatch
     
    "去掉vi一致性
    set nocompatible
     
    "设置缩进
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    set autoindent
    set cindent
    if &term=="xterm"
        set t_Co=8
        set t_Sb=^[[4%dm
        set t_Sf=^[[3%dm
    endif
     
    "打开文件类型自动检测功能
    filetype on
     
    "设置taglist
    let Tlist_Show_One_File=0   "显示多个文件的tags
    let Tlist_File_Fold_Auto_Close=1 "非当前文件,函数列表折叠隐藏
    let Tlist_Exit_OnlyWindow=1 "在taglist是最后一个窗口时退出vim
    let Tlist_Use_SingleClick=1 "单击时跳转
    let Tlist_GainFocus_On_ToggleOpen=1 "打开taglist时获得输入焦点
    let Tlist_Process_File_Always=1 "不管taglist窗口是否打开,始终解析文件中的tag
     
    "设置WinManager插件
    let g:winManagerWindowLayout='FileExplorer|TagList'
    nmap wm :WMToggle<cr>
    map <silent> <F9> :WMToggle<cr> "将F9绑定至WinManager,即打开WimManager
     
    "设置CSCOPE
    set cscopequickfix=s-,c-,d-,i-,t-,e- "设定是否使用quickfix窗口显示cscope结果
     
    "设置Grep插件
    nnoremap <silent> <F3> :Grep<CR>
     
    "设置一键编译
    map <F6> :make<CR>
     
    "设置自动补全
    filetype plugin indent on   "打开文件类型检测
    set completeopt=longest,menu "关掉智能补全时的预览窗口
     
    "启动vim时如果存在tags则自动加载
    if exists("tags")
        set tags=./tags
    endif
     
    "设置按F12就更新tags的方法
    map <F12> :call Do_CsTag()<CR>
    nmap <C-@>s :cs find s <C-R>=expand("<cword>")<CR><CR>:copen<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>:copen<CR>
    nmap <C-@>t :cs find t <C-R>=expand("<cword>")<CR><CR>:copen<CR>
    nmap <C-@>e :cs find e <C-R>=expand("<cword>")<CR><CR>:copen<CR>
    nmap <C-@>f :cs find f <C-R>=expand("<cfile>")<CR><CR>:copen<CR>
    nmap <C-@>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>:copen<CR>
    nmap <C-@>d :cs find d <C-R>=expand("<cword>")<CR><CR>:copen<CR>
    function Do_CsTag()
            let dir = getcwd()
            if filereadable("tags")
                if(g:iswindows==1)
                    let tagsdeleted=delete(dir."\"."tags")
                else
                    let tagsdeleted=delete("./"."tags")
                endif
                if(tagsdeleted!=0)
                    echohl WarningMsg | echo "Fail to do tags! I cannot delete the tags" | echohl None
                    return
                endif
            endif
             
            if has("cscope")
                silent! execute "cs kill -1"
            endif
             
            if filereadable("cscope.files")
                if(g:iswindows==1)
                    let csfilesdeleted=delete(dir."\"."cscope.files")
                else
                    let csfilesdeleted=delete("./"."cscope.files")
                endif
                if(csfilesdeleted!=0)
                    echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.files" | echohl None
                    return
                endif
            endif
                                                 
            if filereadable("cscope.out")
                if(g:iswindows==1)
                    let csoutdeleted=delete(dir."\"."cscope.out")
                else
                    let csoutdeleted=delete("./"."cscope.out")
                endif
                if(csoutdeleted!=0)
                    echohl WarningMsg | echo "Fail to do cscope! I cannot delete the cscope.out" | echohl None
                    return
                endif
            endif
                                                 
            if(executable('ctags'))
                "silent! execute "!ctags -R --c-types=+p --fields=+S *"
                silent! execute "!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ."
            endif
                 
            if(executable('cscope') && has("cscope") )
                if(g:iswindows!=1)
                    silent! execute "!find . -name '*.h' -o -name '*.c' -o -name '*.cpp' -o -name '*.java' -o -name '*.cs' > cscope.files"
                else
                    silent! execute "!dir /s/b *.c,*.cpp,*.h,*.java,*.cs >> cscope.files"
                endif
                silent! execute "!cscope -b"
                execute "normal :"
                                                                         
                if filereadable("cscope.out")
                    execute "cs add cscope.out"
                endif
            endif
    endfunction
     
    "设置默认shell
    set shell=bash
     
    "设置VIM记录的历史数
    set history=400
     
    "设置当文件被外部改变的时侯自动读入文件
    if exists("&autoread")
        set autoread
    endif
     
    "设置ambiwidth
    set ambiwidth=double
     
    "设置文件类型
    set ffs=unix,dos,mac
     
    "设置增量搜索模式
    set incsearch
     
    "设置静音模式
    set noerrorbells
    set novisualbell
    set t_vb=
     
    "不要备份文件
    set nobackup
    set nowb

    根据自己需要进行设置,一般我比较偏爱的设置为:

    set encoding=utf-8
    set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
    set fileencodings=utf-8,ucs-bom,chinese
     
    set langmenu=zh_CN.UTF-8
     
    syntax enable
    syntax on
     
    set mouse=a
    set selection=exclusive
    set selectmode=mouse,key
     
    set showmatch
     
    set nocompatible
     
    set tabstop=4
    set softtabstop=4
    set shiftwidth=4
    set autoindent
    set cindent
     
    filetype on
    set shell=bash
     
    set history=400
     
    filetype plugin indent on 
    set completeopt=longest,menu
  • 相关阅读:
    js 简单getByClass得封装
    微信红包的随机算法
    js 淘宝评分
    HDU 1023 Train Problem II( 大数卡特兰 )
    HDU 1576 A/B( 逆元水 )
    HDU 5533 Dancing Stars on Me( 有趣的计算几何 )
    POJ 1664 放苹果( 递推关系 )
    HDU 2095 find your present (2)( 位运算 )
    POJ 3517 And Then There Was One( 约瑟夫环模板 )
    POJ 1988 Cube Stacking( 带权并查集 )*
  • 原文地址:https://www.cnblogs.com/CherishFX/p/4603780.html
Copyright © 2011-2022 走看看