zoukankan      html  css  js  c++  java
  • vimrc 配置 史上最牛

    http://amix.dk/vim/vimrc.html  我了个去 真强大


    另附一个vimrc
    " vim:shiftwidth=2:tabstop=8:expandtab
    
    if has('autocmd')
      " Remove ALL autocommands for the current group
      au!
    
      " Mark .asm files MASM-type assembly
      au BufNewFile,BufReadPre *.asm let b:asmsyntax='masm'
    endif
    
    if has('gui_running')
      let do_syntax_sel_menu=1
    endif
    
    if has('gui_running') && $LANG !~ '\.'
      set encoding=utf-8
    endif
    
    set nocompatible
    source $VIMRUNTIME/vimrc_example.vim
    
    set autoindent
    set nobackup
    set showmatch
    set formatoptions+=mM
    set fileencodings=ucs-bom,utf-8,gbk
    set statusline=%<%f\ %h%m%r%=%k[%{(&fenc==\"\")?&enc:&fenc}%{(&bomb?\",BOM\":\"\")}]\ %-14.(%l,%c%V%)\ %P
    if has('mouse')
      set mouse=a
    endif
    if has('multi_byte') && v:version > 601
      if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'
        set ambiwidth=double
      endif
    endif
    
    " Key mappings to ease browsing long lines
    noremap  <C-J>       gj
    noremap  <C-K>       gk
    noremap  <Down>      gj
    noremap  <Up>        gk
    inoremap <Down> <C-O>gj
    inoremap <Up>   <C-O>gk
    
    " Key mappings for quick arithmetic inside Vim
    nnoremap <silent> <Leader>ma yypV:!calcu '<C-R>"'<CR>k$
    vnoremap <silent> <Leader>ma yo<ESC>pV:!calcu '<C-R>"'<CR>k$
    nnoremap <silent> <Leader>mr yyV:!calcu '<C-R>"'<CR>$
    vnoremap <silent> <Leader>mr ygvmaomb:r !calcu '<C-R>"'<CR>"ay$dd`bv`a"ap
    
    " Key mapping to stop the search highlight
    nmap <silent> <F2>      :nohlsearch<CR>
    imap <silent> <F2> <C-O>:nohlsearch<CR>
    
    " Key mapping for the taglist.vim plugin
    nmap <F9>      :Tlist<CR>
    imap <F9> <C-O>:Tlist<CR>
    
    " Key mappings for the quickfix commands
    nmap <F11> :cn<CR>
    nmap <F12> :cp<CR>
    
    " Non-GUI setting
    if !has('gui_running')
      " Do not increase the windows width in the taglist.vim plugin
      if has('eval')
        let Tlist_Inc_Winwidth=0
      endif
    
      " Set text-mode menu
      if has('wildmenu')
        set wildmenu
        set cpoptions-=<
        set wildcharm=<C-Z>
        nmap <F10>      :emenu <C-Z>
        imap <F10> <C-O>:emenu <C-Z>
      endif
    endif
    
    if has('autocmd')
      function! SetFileEncodings(encodings)
        let b:my_fileencodings_bak=&fileencodings
        let &fileencodings=a:encodings
      endfunction
    
      function! RestoreFileEncodings()
        let &fileencodings=b:my_fileencodings_bak
        unlet b:my_fileencodings_bak
      endfunction
    
      function! CheckFileEncoding()
        if &modified && &fileencoding != ''
          exec 'e! ++enc=' . &fileencoding
        endif
      endfunction
    
      function! ConvertHtmlEncoding(encoding)
        if a:encoding ==? 'gb2312'
          return 'gbk'              " GB2312 imprecisely means GBK in HTML
        elseif a:encoding ==? 'iso-8859-1'
          return 'latin1'           " The canonical encoding name in Vim
        elseif a:encoding ==? 'utf8'
          return 'utf-8'            " Other encoding aliases should follow here
        else
          return a:encoding
        endif
      endfunction
    
      function! DetectHtmlEncoding()
        if &filetype != 'html'
          return
        endif
        normal m`
        normal gg
        if search('\c<meta http-equiv=\("\?\)Content-Type\1 content="text/html; charset=[-A-Za-z0-9_]\+">') != 0
          let reg_bak=@"
          normal y$
          let charset=matchstr(@", 'text/html; charset=\zs[-A-Za-z0-9_]\+')
          let charset=ConvertHtmlEncoding(charset)
          normal ``
          let @"=reg_bak
          if &fileencodings == ''
            let auto_encodings=',' . &encoding . ','
          else
            let auto_encodings=',' . &fileencodings . ','
          endif
          if charset !=? &fileencoding &&
             \(auto_encodings =~ ',' . &fileencoding . ',' || &fileencoding == '')
            silent! exec 'e ++enc=' . charset
          endif
        else
          normal ``
        endif
      endfunction
    
      function! GnuIndent()
        setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1
        setlocal shiftwidth=2
        setlocal tabstop=8
      endfunction
    
      function! RemoveTrailingSpace()
        if $VIM_HATE_SPACE_ERRORS != '0' &&
              \(&filetype == 'c' || &filetype == 'cpp' || &filetype == 'vim')
          normal m`
          silent! :%s/\s\+$//e
          normal ``
        endif
      endfunction
    
      " Highlight space errors in C/C++ source files (Vim tip #935)
      if $VIM_HATE_SPACE_ERRORS != '0'
        let c_space_errors=1
      endif
    
      " Use Canadian spelling convention in engspchk (Vim script #195)
      let spchkdialect='can'
    
      " Show syntax highlighting attributes of character under cursor (Vim
      " script #383)
      map <Leader>a :call SyntaxAttr()<CR>
    
      " Automatically find scripts in the autoload directory
      au FuncUndefined * exec 'runtime autoload/' . expand('<afile>') . '.vim'
    
      " File type related autosetting
      au FileType c,cpp setlocal cinoptions=:0,g0,(0,w1 shiftwidth=4 tabstop=4
      au FileType diff  setlocal shiftwidth=4 tabstop=4
      au FileType html  setlocal autoindent indentexpr=
      au FileType changelog setlocal textwidth=76
    
      " Text file encoding autodetection
      au BufReadPre  *.gb               call SetFileEncodings('gbk')
      au BufReadPre  *.big5             call SetFileEncodings('big5')
      au BufReadPre  *.nfo              call SetFileEncodings('cp437')
      au BufReadPost *.gb,*.big5,*.nfo  call RestoreFileEncodings()
      au BufWinEnter *.txt              call CheckFileEncoding()
    
      " Detect charset encoding in an HTML file
      au BufReadPost *.htm* nested      call DetectHtmlEncoding()
    
      " Recognize standard C++ headers
      au BufEnter /usr/include/c++/*    setf cpp
      au BufEnter /usr/include/g++-3/*  setf cpp
    
      " Setting for files following the GNU coding standard
      au BufEnter /usr/*                call GnuIndent()
    
      " Remove trailing spaces for C/C++ and Vim files
      au BufWritePre *                  call RemoveTrailingSpace()
    endif
  • 相关阅读:
    触摸屏调试【转】
    Android电容屏(二):驱动调试分析【转】
    linux输入子系统简述【转】
    Linux与Android 多点触摸协议【转】
    中断下半部tasklet【转】
    【转】轻量级文本编辑器,Notepad最佳替代品:Notepad++--不错
    【转】Android开发中adb启动失败adb连接异常的解决办法 offline
    【转】Java删除文件夹和文件
    【转】图说Android的8年演变史
    【转】基于 Android NDK 的学习之旅-----数据传输(引用数据类型)
  • 原文地址:https://www.cnblogs.com/zhihaowang/p/10128591.html
Copyright © 2011-2022 走看看