• 我的Gvim配置文件


    set nocompatible
    source $VIMRUNTIME/vimrc_example.vim
    source $VIMRUNTIME/mswin.vim
    behave mswin
    
    set diffexpr=MyDiff()
    function MyDiff()
      let opt = '-a --binary '
      if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
      if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
      let arg1 = v:fname_in
      if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
      let arg2 = v:fname_new
      if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
      let arg3 = v:fname_out
      if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
      let eq = ''
      if $VIMRUNTIME =~ ' '
        if &sh =~ '\<cmd'
          let cmd = '""' . $VIMRUNTIME . '\diff"'
          let eq = '"'
        else
          let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
        endif
      else
        let cmd = $VIMRUNTIME . '\diff'
      endif
      silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
    endfunction
    
    
    
    "=========================================================================
    " DesCRiption: 我的的vimrc文件,for Linux/Windows, GUI/Console
    "
    " Last Change: 2012年04月14日 15时13分 
    "
    " Name:        ZhaoHuanLei
    "
    "=========================================================================
    set nocompatible            " 关闭 vi 兼容模式
    syntax on                   " 自动语法高亮
    colorscheme molokai         " 设定配色方案
    set number                  " 显示行号
    set cursorline              " 突出显示当前行
    filetype plugin indent on   " 开启插件 
    set ruler                   " 打开状态栏标尺
    set tabstop=4               " 设定 tab 长度为 4
    set softtabstop=4           " 使得按退格键时可以一次删掉 4 个空格
    set shiftwidth=4            " 设定 << 和 >> 命令移动时的宽度为 4
    set autochdir               " 自动切换当前目录为当前文件所在的目录
    set ignorecase smartcase    " 搜索时忽略大小写,但在有一个或以上大写字母时仍保持对大小写敏感
    set nowrapscan              " 禁止在搜索到文件两端时重新搜索
    set incsearch               " 输入搜索内容时就显示搜索结果
    set hlsearch                " 搜索时高亮显示被找到的文本
    set noerrorbells            " 关闭错误信息响铃
    set novisualbell            " 关闭使用可视响铃代替呼叫
    set t_vb=                   " 置空错误铃声的终端代码
    filetype plugin indent on   " 开启插件
    set guioptions-=T           " 隐藏工具栏
    " set guioptions-=m         " 隐藏菜单栏
    set history=400             " vim记住的历史操作的数量,默认的是20
    set autoread                " 当文件在外部被修改时,自动重新读取
    vmap <C-c> "+y              " 选中状态下 Ctrl+c 复制
    
    
    
    
    
    " ---------- 判断系统: windows,or linux, mac -------------
    function! MySys()
        if has("win16") || has("win32") || has("win64") || has("win95")
            return "windows"
        elseif has("unix")
            return "linux"
        endif
    endfunction
    
    
    " -------------------- 设定doc文档目录 --------------------
    let helptags=$VIMFILES.'/doc'
    
    
    " ------------------ 设置字体 以及中文支持 ----------------
    if has("win32")
        set guifont=DeJaVu_Sans_Mono:h10:cANSI
        set gfw=YouYuan:h10:cGB2312
    endif
    
    
    " -------------------- 配置多语言环境 ---------------------
    if has("multi_byte")
        " UTF-8 编码
        set encoding=utf-8
        set termencoding=utf-8
        set formatoptions+=mM
        set fencs=utf-8,gbk
    
        if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
            set ambiwidth=double
        endif
    
        if has("win32")
            source $VIMRUNTIME/delmenu.vim
            source $VIMRUNTIME/menu.vim
            language messages zh_CN.utf-8
        endif
    else
        echoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"
    endif
    
    
    
    
    
    " ---------------------- jQuery 语法高亮 ----------------------
    au BufRead,BufNewFile jquery.*.js set ft=javascript syntax=jquery
    
    
    " Tab操作快捷方式!
    " nnoremap <C-TAB> :tabnext<CR>
    " nnoremap <C-S-TAB> :tabprev<CR>
    
    
    " --------------------- 自动完成括号和引号 --------------------
    inoremap ( ()<Esc>i
    inoremap [ []<Esc>ii
    autocmd Syntax css inoremap { {}<Esc>i
    "javascript中自动匹配 {} 并自动换行
    autocmd Syntax javascript inoremap { {<CR>}<Esc>O 
    "html中自动匹配 <>
    "autocmd Syntax html,vim inoremap < <lt>><Esc>i| inoremap > <c-r>=ClosePair('>')<CR> 
    inoremap ) <c-r>=ClosePair(')')<CR>
    inoremap ] <c-r>=ClosePair(']')<CR>
    inoremap } <c-r>=CloseBracket()<CR>
    inoremap " <c-r>=QuoteDelim('"')<CR>
    inoremap ' <c-r>=QuoteDelim("'")<CR>
    
    function ClosePair(char)
     if getline('.')[col('.') - 1] == a:char
     return "\<Right>"
     else
     return a:char
     endif
    endf
    
    function CloseBracket()
     if match(getline(line('.') + 1), '\s*}') < 0
     return "\<CR>}"
     else
     return "\<Esc>j0f}a"
     endif
    endf
    
    function QuoteDelim(char)
     let line = getline('.')
     let col = col('.')
     if line[col - 2] == "\\"
     "Inserting a quoted quotation mark into the string
     return a:char
     elseif line[col - 1] == a:char
     "Escaping out of the string
     return "\<Right>"
     else
     "Starting a string
     return a:char.a:char."\<Esc>i"
     endif
    endf
    
    
    
    
    " ------------------ syntax javascript.vim JS折叠  -----------------
    " 打开javascript折叠
    " 打开javascript对dom、html和css的支持
    " 用空格键来开关折叠
    let b:javascript_fold=1
    let javascript_enable_domhtmlcss=1               
    nnoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR>
    
    
    
    
    " ----------------- MiniBufExplorer.vim 多标签切换 ---------------
    " <C-Tab>    向前循环切换到每个buffer上,并在但前窗口打开
    " <C-S-Tab>    向后循环切换到每个buffer上,并在但前窗口打开
    let g:miniBufExplMapWindowNavVim = 1 
    let g:miniBufExplMapWindowNavArrows = 1 
    let g:miniBufExplMapCTabSwitchBufs = 1 
    let g:miniBufExplModSelTarget = 1 
    
    
    " ------------ NERD_tree.vim 浏览系统中的文件和目录 --------------
    " :ERDtree 打开NERD_tree         :NERDtreeClose    关闭NERD_tree
    " o 打开关闭文件或者目录         t 在标签页中打开
    " T 在后台标签页中打开           ! 执行此文件
    " p 到上层目录                   P 到根目录
    " K 到第一个节点                 J 到最后一个节点
    " u 打开上层目录                 m 显示文件系统菜单(添加、删除、移动操作)
    " r 递归刷新当前目录             R 递归刷新当前根目录
    " F3 NERDTree 切换
    map <F3> :NERDTreeToggle<CR>
    imap <F3> <ESC>:NERDTreeToggle<CR>
    
    
    " ------------- ZenCoding.vim 快速输入 Html及CSS 代码 ------------
    " Ctrl + y + , 默认快捷键启动
    " 设置为ctlr+j扩展 
    let g:user_zen_expandabbr_key = '<c-j>' 
    
    
    " ------------------ authorinfo.vim 添加作者信息 ------------------ 
    " 设置快捷键为<F4>
    nmap <F4> :AuthorInfoDetect<cr>
    let g:vimrc_author='ZhaoHuanLei' 
    let g:vimrc_email='huanleiwork@gmail.com' 
    let g:vimrc_homepage='http://www.cnblogs.com/huanlei/'
    
    " -------------- NERD_commenter.vim   注释代码用的 ----------------
    " [count],cc 光标以下count行逐行添加注释(7,cc)
    " [count],cu 光标以下count行逐行取消注释(7,cu)
    " [count],cm 光标以下count行尝试添加块注释(7,cm)
    " cA 在行尾插入 /* */,并且进入插入模式。 这个命令方便写注释。
    " 注:count参数可选,无则默认为选中行或当前行
    " 可视(V)模式中选择一段代码,按下\cc加逐行注释,\cu取消注释,\cm添加块注释
    let NERDSpaceDelims=1       " 让注释符与语句之间留一个空格
    let NERDCompactSexyComs=1   " 多行注释时样子更好看
    
    
    " ---------– checksyntax.vim  JavaScript常见语法错误检查 -----------
    " 默认快捷方式为 F5
    " let g:checksyntax_auto = 0 " 不自动检查
    
    
    " ---------– autocomplpop.vim  实现自动补全功能 -----------
    
    
    
    
    
    "=========================================================================
    " plugin – vim
    "=========================================================================
  • 相关阅读:
    【关键字】
    【选择结构语句:switch】
    【数据类型】
    【接口】
    【抽象类和接口的区别】
    【访问权限】
    【内部类】
    【方法】
    【this 关键字】
    【Static】
  • 原文地址:https://www.cnblogs.com/huanlei/p/2447179.html
Copyright © 2020-2023  润新知