• 史上最强vim配置文件 不需要下载插件(转)


    配置文件和所有插件下载:
    http://www.mediafire.com/?kgjy0dbdsxn

    目地:
    当初之所以发布此史上最强vim配置文件的更新版,是因为我要在好多台电脑上,不同的开发环境(不同版本的vi,不同的操作系统)下工作,我希望这个vimrc文件能够在任何情况下都可以使vim正常启动,开始工作,哪怕所有的插件和软件都没装。

    说明:
    在vim7.1, vim 5.8中测试ok

     更新:
    1. 去掉了一些影响效率的设置。比如nice statusbar,nice title。
    如果你要恢复这些效果也很容易。把第一行代码let performance_mode=1改成let performance_mode=0即可。
    2.修正了一些语法错误。
    3.删掉了左右键切换buffer的功能,我很少用到该功能。因为我在公用机器上拷贝了我的.vimrc,我的同事对vi的快捷键不熟,还要使用左右方向键,于是....
    3.增加了快捷键<leader>x,保存当前内容,关闭所有窗口,强制退出。
    在我的电脑上<leader>对应英文逗号键。有时候我要只用一根手指操作vi,所以<leader>键还是很有用的。
    4.更新了语言编码的设置。
    5.在linux下支持对terminal中的vi输出到文本到X剪贴板(然后在粘贴到firefox什么的软件),需要xclip。慎用。

    技巧:
    1.  <leader>w,保存文件我经常用
    2.  ctrl+h,j,k,l跳转窗口很好用,前提是你有开多个窗口编辑多个文件的习惯。
    3. <leader>m,把dos下的文本文件转为unix的文本文件。
    4: %s/[^ ]/& /g ,非空格文字之间加一空格,做什么用心照不宣

    推荐的软件和插件(当然你可以完全不用,不影响vim正常启动):
    ctags & taglist.vim - 对我来说是必备
    matchit.vim - 经常改不同语言的代码时很有用(比如我要在html里匹配tag)
    NERD_commenter.vim -精于注释功能,支持几乎所有的语言。我最近要改sql语句,体会到它的妙处了。
    LargeFile.vim - 不怎么用。但是留在那以防万一
    cscope & cscope_maps.vim - 改c/c++,java代码。不要设置$CSCOPE_DB,:cs add ./cscope.out最好了

    vim当然有很多插件和软件,但是对我来说我只在万般无奈的情况的下才去安装新的插件,因为我的精力有限,我使用vi的目地是完成工作,而不是满足自己的好奇心。以上我推荐的插件对我来说,都是因为一个具体的场景,使得我工作几乎无法进行下去了,逼得我使用。

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " by Amix - http://amix.dk/
    "
    " Maintainer: redguardtoo <chb_sh@hotmail.com>, Amir Salihefendic <amix3k at gmail.com>
    " Version: 2.1
    " Last Change: 21/03/08 23:00:01
    " fix some performance issue and syntax bugs
    " Last Change: 12/08/06 13:39:28
    " Fixed (win32 compatible) by: redguardtoo <chb_sh at gmail.com>
    " This vimrc file is tested on platforms like win32,linux, cygwin,mingw
    " and vim7.0, vim6.4, vim6.1, vim5.8.9 by redguardtoo
    "
    "
    " Tip:
    " If you find anything that you can't understand than do this:
    " help keyword OR helpgrep keyword
    " Example:
    " Go into command-line mode and type helpgrep nocompatible, ie.
    " :helpgrep nocompatible
    " then press <leader>c to see the results, or :botright cw
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " User configuration
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " turn off nice effect on status bar title
    let performance_mode=1
    let use_plugins_i_donot_use=0

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => General
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Get out of VI's compatible mode..

    set nocompatible

    function! MySys()
        if has("win32")
            return "win32"
        elseif has("unix")
            return "unix"
        else
            return "mac"
        endif
    endfunction
    "Set shell to be bash
    if MySys() == "unix" || MySys() == "mac"
        set shell=bash
    else
        "I have to run win32 python without cygwin
        "set shell=E:cygwininsh
    endif

    "Sets how many lines of history VIM har to remember
    set history=400

    "Enable filetype plugin
    filetype on
    if has("eval") && v:version>=600
        filetype plugin on
        filetype indent on
    endif

    "Set to auto read when a file is changed from the outside
    if exists("&autoread")
        set autoread
    endif

    "Have the mouse enabled all the time:
    if exists("&mouse")
        set mouse=a
    endif

    "Set mapleader
    let mapleader = ","
    let g:mapleader = ","

    "Fast saving
    nmap <leader>x :xa!<cr>
    nmap <leader>w :w!<cr>


    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Colors and Font
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Enable syntax hl
    if MySys()=="unix"
        if v:version<600
            if filereadable(expand("$VIM/syntax/syntax.vim"))
                syntax on
            endif
        else
            syntax on
        endif
    else
        syntax on
    endif

    "internationalization
    "I only work in Win2k Chinese version
    if has("multi_byte")
        "set bomb
      set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-kr,latin1
      " CJK environment detection and corresponding setting
      if v:lang =~ "^zh_CN"
        " Use cp936 to support GBK, euc-cn == gb2312
        set encoding=cp936
        set termencoding=cp936
        set fileencoding=cp936
      elseif v:lang =~ "^zh_TW"
        " cp950, big5 or euc-tw
        " Are they equal to each other?
        set encoding=big5
        set termencoding=big5
        set fileencoding=big5
      elseif v:lang =~ "^ko"
        " Copied from someone's dotfile, untested
        set encoding=euc-kr
        set termencoding=euc-kr
        set fileencoding=euc-kr
      elseif v:lang =~ "^ja_JP"
        " Copied from someone's dotfile, untested
        set encoding=euc-jp
        set termencoding=euc-jp
        set fileencoding=euc-jp
      endif
      " Detect UTF-8 locale, and replace CJK setting if needed
      if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
        set encoding=utf-8
        set termencoding=utf-8
        set fileencoding=utf-8
      endif
    endif

    "if you use vim in tty,
    "'uxterm -cjk' or putty with option 'Treat CJK ambiguous characters as wide' on
    if exists("&ambiwidth")
        set ambiwidth=double
    endif

    if has("gui_running")
        set guioptions-=m
        set guioptions-=T
        set guioptions-=l
        set guioptions-=L
        set guioptions-=r
        set guioptions-=R

        if MySys()=="win32"
            "start gvim maximized
            if has("autocmd")
                au GUIEnter * simalt ~x
            endif
        endif
        "let psc_style='cool'
        if v:version > 601
            "colorscheme ps_color
            "colorscheme default
            colorscheme elflord
        endif
    else
        if v:version > 601
            "set background=dark
            "colorscheme default
            colorscheme elflord
        endif
    endif

    "Some nice mapping to switch syntax (useful if one mixes different languages in one file)
    map <leader>1 :set syntax=cheetah<cr>
    map <leader>2 :set syntax=xhtml<cr>
    map <leader>3 :set syntax=python<cr>
    map <leader>4 :set ft=javascript<cr>
    map <leader>$ :syntax sync fromstart<cr>

    "Highlight current
    if has("gui_running")
        if exists("&cursorline")
            set cursorline
        endif
    endif

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Fileformat
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Favorite filetype
    set ffs=unix,dos,mac

    nmap <leader>fd :se ff=dos<cr>
    nmap <leader>fu :se ff=unix<cr>

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => VIM userinterface
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Set 7 lines to the curors - when moving vertical..
    set so=7

    "Turn on WiLd menu
    set wildmenu

    "Always show current position
    set ruler

    "The commandbar is 2 high
    set cmdheight=2

    "Show line number
    set nu

    "Do not redraw, when running macros.. lazyredraw
    set lz

    "Change buffer - without saving
    set hid

    "Set backspace
    set backspace=eol,start,indent

    "Bbackspace and cursor keys wrap to
    set whichwrap+=<,>,h,l

    "Ignore case when searching
    "set ignorecase
    set incsearch

    "Set magic on
    set magic

    "No sound on errors.
    set noerrorbells
    set novisualbell
    set t_vb=

    "show matching bracet
    set showmatch

    "How many tenths of a second to blink
    set mat=8

    "Highlight search thing
    set hlsearch

    """"""""""""""""""""""""""""""
    " => Statusline
    """"""""""""""""""""""""""""""
    "Format the statusline
    " Nice statusbar
    if performance_mode
    else
        set laststatus=2
        set statusline=
        set statusline+=%2*%-3.3n%0*\ " buffer number
        set statusline+=%f\ " file name
        set statusline+=%h%1*%m%r%w%0* " flags
        set statusline+=[
        if v:version >= 600
            set statusline+=%{strlen(&ft)?&ft:'none'}, " filetype
            set statusline+=%{&encoding}, " encoding
        endif
        set statusline+=%{&fileformat}] " file format
        if filereadable(expand("$VIM/vimfiles/plugin/vimbuddy.vim"))
            set statusline+=\ %{VimBuddy()} " vim buddy
        endif
        set statusline+=%= " right align
        set statusline+=%2*0x%-8B\ " current char
        set statusline+=%-14.(%l,%c%V%)\ %<%P " offset

        " special statusbar for special windows
        if has("autocmd")
            au FileType qf
                        \ if &buftype == "quickfix" |
                        \ setlocal statusline=%2*%-3.3n%0* |
                        \ setlocal statusline+=\ \[Compiler\ Messages\] |
                        \ setlocal statusline+=%=%2*\ %<%P |
                        \ endif

            fun! FixMiniBufExplorerTitle()
                if "-MiniBufExplorer-" == bufname("%")
                    setlocal statusline=%2*%-3.3n%0*
                    setlocal statusline+=\[Buffers\]
                    setlocal statusline+=%=%2*\ %<%P
                endif
            endfun

            if v:version>=600
                au BufWinEnter *
                            \ let oldwinnr=winnr() |
                            \ windo call FixMiniBufExplorerTitle() |
                            \ exec oldwinnr . " wincmd w"
            endif
        endif

        " Nice window title
        if has('title') && (has('gui_running') || &title)
            set titlestring=
            set titlestring+=%f\ " file name
            set titlestring+=%h%m%r%w " flags
            set titlestring+=\ -\ %{v:progname} " program name
        endif
    endif

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Moving around and tab
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Map space to / and c-space to ?
    map <space> /

    "Smart way to move btw. window
    map <C-j> <C-W>j
    map <C-k> <C-W>k
    map <C-h> <C-W>h
    map <C-l> <C-W>l


    "Tab configuration
    map <leader>tn :tabnew %<cr>
    map <leader>tc :tabclose<cr>
    map <leader>tm :tabmove

    if v:version>=700
        set switchbuf=usetab
    endif

    if exists("&showtabline")
        set stal=2
    endif

    "Moving fast to front, back and 2 sides ;)
    imap <m-$> <esc>$a
    imap <m-0> <esc>0i
    imap <D-$> <esc>$a
    imap <D-0> <esc>0i


    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => General Autocommand
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Switch to current dir
    map <leader>cd :cd %:p:h<cr>


    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Parenthesis/bracket expanding
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    vnoremap $1 <esc>`>a)<esc>`<i(<esc>
    ")
    vnoremap $2 <esc>`>a]<esc>`<i[<esc>
    vnoremap $3 <esc>`>a}<esc>`<i{<esc>
    vnoremap $$ <esc>`>a"<esc>`<i"<esc>
    vnoremap $q <esc>`>a'<esc>`<i'<esc>
    vnoremap $w <esc>`>a"<esc>`<i"<esc>

    "Map auto complete of (, ", ', [
    "http://www.vim.org/tips/tip.php?tip_id=153
    "

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => General Abbrev
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Comment for C like language
    if has("autocmd")
        au BufNewFile,BufRead *.js,*.htc,*.c,*.tmpl,*.css ino $c /**<cr> **/<esc>O
    endif

    "My information
    ia xdate <c-r>=strftime("%d/%m/%y %H:%M:%S")<cr>
    "iab xname Amir Salihefendic

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Editing mappings etc.
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Remap VIM 0
    map 0 ^

    "Move a line of text using control
    nmap <M-j> mz:m+<cr>`z
    nmap <M-k> mz:m-2<cr>`z
    vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
    vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z

    if MySys() == "mac"
        nmap <D-j> <M-j>
        nmap <D-k> <M-k>
        vmap <D-j> <M-j>
        vmap <D-k> <M-k>
    endif


    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Command-line config
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    func! Cwd()
        let cwd = getcwd()
        return "e " . cwd
    endfunc

    func! DeleteTillSlash()
        let g:cmd = getcmdline()
        if MySys() == "unix" || MySys() == "mac"
            let g:cmd_edited = substitute(g:cmd, "(.*[/]).*", "SOH", "")
        else
            let g:cmd_edited = substitute(g:cmd, "(.*[\]).*", "SOH", "")
        endif
        if g:cmd == g:cmd_edited
            if MySys() == "unix" || MySys() == "mac"
                let g:cmd_edited = substitute(g:cmd, "(.*[/]).*/", "SOH", "")
            else
                let g:cmd_edited = substitute(g:cmd, "(.*[\]).*[\]", "SOH", "")
            endif
        endif
        return g:cmd_edited
    endfunc

    func! CurrentFileDir(cmd)
        return a:cmd . " " . expand("%:p:h") . "/"
    endfunc

    "cno $q <C->eDeleteTillSlash()<cr>
    "cno $c e <C->eCurrentFileDir("e")<cr>
    "cno $tc <C->eCurrentFileDir("tabnew")<cr>
    cno $th tabnew ~/
    cno $td tabnew ~/Desktop/

    "Bash like
    cno <C-A> <Home>
    cno <C-E> <End>
    cno <C-K> <C-U>


    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Buffer realted
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Fast open a buffer by search for a name
    "map <c-q> :sb

    "Open a dummy buffer for paste
    map <leader>q :e ~/buffer<cr>

    "Restore cursor to file position in previous editing session
    set viminfo='10,"100,:20,%,n~/.viminfo

    " Buffer - reverse everything ... :)
    map <F9> ggVGg?

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Files and backup
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Turn backup off
    set nobackup
    set nowb
    "set noswapfile

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Folding
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Enable folding, I find it very useful
    if exists("&foldenable")
        set fen
    endif

    if exists("&foldlevel")
        set fdl=0
    endif

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Text option
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " python script
    "set expandtab
    set shiftwidth=2
    set softtabstop=2
    set tabstop=2
    set backspace=2
    set smarttab
    set lbr
    "set tw=500

    """"""""""""""""""""""""""""""
    " => Indent
    """"""""""""""""""""""""""""""
    "Auto indent
    set ai

    "Smart indet
    set si

    "C-style indenting
    if has("cindent")
        set cindent
    endif

    "Wrap line
    set wrap


    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Spell checking
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    map <leader>sn ]
    map <leader>sp [
    map <leader>sa zg
    map <leader>s? z=

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Plugin configuration
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    """"""""""""""""""""""""""""""
    " => Yank Ring
    """"""""""""""""""""""""""""""
    if use_plugins_i_donot_use
        map <leader>y :YRShow<cr>

        """"""""""""""""""""""""""""""
        " => File explorer
        """"""""""""""""""""""""""""""
        "Split vertically
        let g:explVertical=1

        "Window size
        let g:explWinSize=35

        let g:explSplitLeft=1
        let g:explSplitBelow=1

        "Hide some file
        let g:explHideFiles='^.,.*.class$,.*.swp$,.*.pyc$,.*.swo$,.DS_Store$'

        "Hide the help thing..
        let g:explDetailedHelp=0


        """"""""""""""""""""""""""""""
        " => Minibuffer
        """"""""""""""""""""""""""""""
        let g:miniBufExplModSelTarget = 1
        let g:miniBufExplorerMoreThanOne = 0
        let g:miniBufExplModSelTarget = 0
        let g:miniBufExplUseSingleClick = 1
        let g:miniBufExplMapWindowNavVim = 1
        let g:miniBufExplVSplit = 25
        let g:miniBufExplSplitBelow=1

        "WindowZ
        map <c-w><c-t> :WMToggle<cr>
        let g:bufExplorerSortBy = "name"

        """"""""""""""""""""""""""""""
        " => LaTeX Suite thing
        """"""""""""""""""""""""""""""
        "set grepprg=grep -r -s -n
        let g:Tex_DefaultTargetFormat="pdf"
        let g:Tex_ViewRule_pdf='xpdf'

        if has("autocmd")
            "Binding
            au BufRead *.tex map <silent><leader><space> :w!<cr> :silent! call Tex_RunLaTeX()<cr>

            "Auto complete some things ;)
            au BufRead *.tex ino <buffer> $i indent
            au BufRead *.tex ino <buffer> $* cdot
            au BufRead *.tex ino <buffer> $i item
            au BufRead *.tex ino <buffer> $m [<cr>]<esc>O
        endif

    endif

    """"""""""""""""""""""""""""""
    " => Tag list (ctags) - not used
    """"""""""""""""""""""""""""""
    "let Tlist_Ctags_Cmd = "/sw/bin/ctags-exuberant"
    "let Tlist_Sort_Type = "name"
    "let Tlist_Show_Menu = 1
    "map <leader>t :Tlist<cr>
    map <F3> :Tlist<cr>

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Filetype generic
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => Todo
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "au BufNewFile,BufRead *.todo so ~/vim_local/syntax/amido.vim

    """"""""""""""""""""""""""""""
    " => VIM
    """"""""""""""""""""""""""""""
    if has("autocmd") && v:version>600
        au BufRead,BufNew *.vim map <buffer> <leader><space> :w!<cr>:source %<cr>
    endif

    """"""""""""""""""""""""""""""
    " => HTML related
    """"""""""""""""""""""""""""""
    " HTML entities - used by xml edit plugin
    let xml_use_xhtml = 1
    "let xml_no_auto_nesting = 1

    "To HTML
    let html_use_css = 0
    let html_number_lines = 0
    let use_xhtml = 1


    """"""""""""""""""""""""""""""
    " => Ruby & PHP section
    """"""""""""""""""""""""""""""
    """"""""""""""""""""""""""""""
    " => Python section
    """"""""""""""""""""""""""""""
    ""Run the current buffer in python - ie. on leader+space
    "au BufNewFile,BufRead *.py so ~/vim_local/syntax/python.vim
    "au BufNewFile,BufRead *.py map <buffer> <leader><space> :w!<cr>:!python %<cr>
    "au BufNewFile,BufRead *.py so ~/vim_local/plugin/python_fold.vim

    ""Set some bindings up for 'compile' of python
    "au BufNewFile,BufRead *.py set makeprg=python -c "import py_compile,sys; sys.stderr=sys.stdout; py_compile.compile(r'%')"
    "au BufNewFile,BufRead *.py set efm=%C %.%#,%A File "%f", line %l%.%#,%Z%[%^ ]%@=%m
    "au BufNewFile,BufRead *.py nmap <buffer> <F8> :w!<cr>:make<cr>

    ""Python iMap
    "au BufNewFile,BufRead *.py set cindent
    "au BufNewFile,BufRead *.py ino <buffer> $r return
    "au BufNewFile,BufRead *.py ino <buffer> $s self
    "au BufNewFile,BufRead *.py ino <buffer> $c ##<cr>#<space><cr>#<esc>kla
    "au BufNewFile,BufRead *.py ino <buffer> $i import
    "au BufNewFile,BufRead *.py ino <buffer> $p print
    "au BufNewFile,BufRead *.py ino <buffer> $d """<cr>"""<esc>O

    ""Run in the Python interpreter
    "function! Python_Eval_VSplit() range
    " let src = tempname()
    " let dst = tempname()
    " execute ": " . a:firstline . "," . a:lastline . "w " . src
    " execute ":!python " . src . " > " . dst
    " execute ":pedit! " . dst
    "endfunction
    "au BufNewFile,BufRead *.py vmap <F7> :call Python_Eval_VSplit()<cr>


    """"""""""""""""""""""""""""""
    " => Cheetah section
    """""""""""""""""""""""""""""""

    """""""""""""""""""""""""""""""
    " => Java section
    """""""""""""""""""""""""""""""

    """"""""""""""""""""""""""""""
    " => JavaScript section
    """""""""""""""""""""""""""""""
    "au BufNewFile,BufRead *.js so ~/vim_local/syntax/javascript.vim
    "function! JavaScriptFold()
    " set foldmethod=marker
    " set foldmarker={,}
    " set foldtext=getline(v:foldstart)
    "endfunction
    "au BufNewFile,BufRead *.js call JavaScriptFold()
    "au BufNewFile,BufRead *.js imap <c-t> console.log();<esc>hi
    "au BufNewFile,BufRead *.js imap <c-a> alert();<esc>hi
    "au BufNewFile,BufRead *.js set nocindent
    "au BufNewFile,BufRead *.js ino <buffer> $r return

    "au BufNewFile,BufRead *.js ino <buffer> $d //<cr>//<cr>//<esc>ka<space>
    "au BufNewFile,BufRead *.js ino <buffer> $c /**<cr><space><cr>**/<esc>ka


    if has("eval") && has("autocmd")
        "vim 5.8.9 on mingw donot know what is <SID>, so I avoid to use function
        "c/cpp
        fun! Abbrev_cpp()
            ia <buffer> cci const_iterator
            ia <buffer> ccl cla
            ia <buffer> cco const
            ia <buffer> cdb bug
            ia <buffer> cde throw
            ia <buffer> cdf /** file<CR><CR>/<Up>
            ia <buffer> cdg ingroup
            ia <buffer> cdn /** Namespace <namespace<CR><CR>/<Up>
            ia <buffer> cdp param
            ia <buffer> cdt test
            ia <buffer> cdx /**<CR><CR>/<Up>
            ia <buffer> cit iterator
            ia <buffer> cns Namespace ianamespace
            ia <buffer> cpr protected
            ia <buffer> cpu public
            ia <buffer> cpv private
            ia <buffer> csl std::list
            ia <buffer> csm std::map
            ia <buffer> css std::string
            ia <buffer> csv std::vector
            ia <buffer> cty typedef
            ia <buffer> cun using Namespace ianamespace
            ia <buffer> cvi virtual
            ia <buffer> #i #include
            ia <buffer> #d #define
        endfunction

        fun! Abbrev_java()
            ia <buffer> #i import
            ia <buffer> #p System.out.println
            ia <buffer> #m public static void main(String[] args)
        endfunction

        fun! Abbrev_python()
            ia <buffer> #i import
            ia <buffer> #p print
            ia <buffer> #m if __name__=="__main__":
        endfunction

        fun! Abbrev_aspvbs()
            ia <buffer> #r Response.Write
            ia <buffer> #q Request.QueryString
            ia <buffer> #f Request.Form
        endfunction

        fun! Abbrev_js()
            ia <buffer> #a if(!0){throw Error(callStackInfo());}
        endfunction

        augroup abbreviation
            au!
            au FileType javascript :call Abbrev_js()
            au FileType cpp,c :call Abbrev_cpp()
            au FileType java :call Abbrev_java()
            au FileType python :call Abbrev_python()
            au FileType aspvbs :call Abbrev_aspvbs()
        augroup END
    endif

    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    " => MISC
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    "Remove the Windows ^M
    noremap <leader>m :%s/\r//g<CR>

    "Paste toggle - when pasting something in, don't indent.
    "set pastetoggle=<F3>

    "Remove indenting on empty line
    map <F2> :%s/s*$//g<cr>:noh<cr>''

    "Super paste
    ino <C-v> <esc>:set paste<cr>mui<C-R>+<esc>mv'uV'v=:set nopaste<cr>

    "clipboard with xclip
    if MySys() == "unix"
        vmap <F6> :!xclip -sel c<CR>
        map <F7> :-1r!xclip -o -seln c<CR>'z
    endif

  • 相关阅读:
    使用netcraft在线查看网站使用的操作系统和服务器
    Terracotta Web Sessions Tutorial
    JPA2.0和Spring的集成配置方式
    Maven笔记(5) Eclipse和Maven集成
    Maven笔记(2) 常用命令和标准的Maven项目结构
    Maven笔记(4) 构建一个Web Project
    Linux 技巧:让进程在后台可靠运行的几种方法
    You are currently running the HMaster without HDFS append support enabled. This may result in data loss. Please see the
    xtrabackup 安装及应用
    CentOS 6.2 X64上64位Oracle11gR2 静默安装,静默设置监听,静默建库亲自实践记录
  • 原文地址:https://www.cnblogs.com/zhihaowang/p/10128653.html
Copyright © 2020-2023  润新知