`
猫太的鱼
  • 浏览: 233070 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

史上最强的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>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, "(.*[/]).*", "", "")
    else
        let g:cmd_edited = substitute(g:cmd, "(.*[\]).*", "", "")
    endif
    if g:cmd == g:cmd_edited
        if MySys() == "unix" || MySys() == "mac"
            let g:cmd_edited = substitute(g:cmd, "(.*[/]).*/", "", "")
        else
            let g:cmd_edited = substitute(g:cmd, "(.*[\]).*[\]", "", "")
        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
分享到:
评论

相关推荐

    强大的vim配置文件

    强大的vim配置文件,强大的vim配置文件强大的vim配置文件强大的vim配置文件强大的vim配置文件

    史上最强vim配置

    史上最强vim配置

    传说中那个最强最经典的Vim配置文件

    原网站好像上不了,我有幸下载到一份,珍藏吧。 使用文件夹内的shell脚本进行安装,非常简单的。 Maintainer: amix the lucky stiff http://amix.dk - amix@amix.dk

    史上最NB的VIM配置文件

    史上最NB的VIM配置文件,具体用法请看配文件

    vim的配置文件vimrc

    vimrc的模板,对vim进行了大量的配置,安装了十几个插件,把vim打造成了具有智能提示、智能补全功能的IDE;其中,ycm插件的安装可参见我的博客

    vim最强配置 amix网站没了 需要的可以下载

    这里有一个可能是史上最强大的 Vim 配置文件?因为这个配置文件的总行数达到了 800 多行。不仅如此,它还集成了一些非常好用的 Vim 脚本,使 Vim 的功能变得异常强大。作者还将这个配置文件写得不仅适用于 Linux,...

    史上最佳vim配置带插件包 自动补全智能提示飞一般的写代码

    支持python shell html css xml js c 等语言的自动补全(无需tab即可出现补全提示)及文件作者信息的生成,vimrc文件带有详细注释,带方法列表,wm可显示目录树

    最强vim插件 vim_jeffy

    vim史上最强编辑器,最强的理由是它有着丰富的插件,本工具解压到linux用户目录下即可使用,注意备份自己的配置文件。本文件含有的插件有:AutoComplPop,BufExplorer,EchoFunc,Genutils,LookupFile,MRU,NERD_...

    【vim】— vim环境配置(史上最强版)

    【vim】vim环境配置(史上最强版) 引言:在Linux平台下撸代码总感觉没有Windows下的编程软件用着舒服,比如说一些自动补全(语义级别补全+模糊补全)、头文件补全、自动诊断、函数查找、文件列表、文件查找等一系列功能...

    vim学习资料整理。。。。

    vim-manuscript.txt vim_advanced_usage.pdf vim_tips.txt ... 史上最强的Vim 配置文件(修正版) - redguardtoo的专栏 - CSDN博客.htm 普通人的编辑利器——Vim_善用佳软_新浪博客.htm 神奇的VIM.htm

    vim编辑器 gvim v8.2.2115正式版

    为您提供vim编辑器 gvim下载,Vim是一个超级超级强大的文本编辑器。它和Emacs是一个数量级;而我认为,比UltraEdit、Editpad、EmEditor要高一个...添加了史上最强的vim配置,帮助文件替换成了中文,配色方案我替换

    vim编辑器 gvim v8.2.2154正式版

    为您提供vim编辑器 gvim下载,Vim是一个超级超级强大的文本编辑器。它和Emacs是一个数量级;而我认为,比UltraEdit、Editpad、EmEditor要高一个...添加了史上最强的vim配置,帮助文件替换成了中文,配色方案我替换

    vim编辑器 gvim v8.2.2067正式版

    为您提供vim编辑器 gvim下载,Vim是一个超级超级强大的文本编辑器。它和Emacs是一个数量级;而我认为,比UltraEdit、Editpad、EmEditor要高一个...添加了史上最强的vim配置,帮助文件替换成了中文,配色方案我替换

    vim编辑器 gvim v8.2.2184正式版

    为您提供vim编辑器 gvim下载,Vim是一个超级超级强大的文本编辑器。它和Emacs是一个数量级;而我认为,比UltraEdit、Editpad、EmEditor要高一个...添加了史上最强的vim配置,帮助文件替换成了中文,配色方案我替换

    vimrc:MeteorWeb开发为中心的vim配置

    如果您足够勇敢在Vim上使用某人的配置(我不是),则可以将该配置用于日常开发。 但是,它可以作为某人的良好学习材料。特征突出显示Webdev中常见内容的语法模糊搜索功能的 打开当前目录中的文件&lt;leader&gt;&lt;CN&gt;使用...

    Centos8操作系统入门视频.zip

    网盘文件永久链接 第1章-Linux课程介绍-学习环境搭建 1-Linux发展史 2-VMware虚拟机安装 3-centos8操作系统安装-前期准备工作 4-配置centos8操作系统参数...4-实战-在Centos6上恢复ext4文件系统下误删除的文件 .......

    python入门到高级全栈工程师培训 第3期 附课件代码

    01 计算机发展史 02 计算机系统 03 小结 04 数据的概念 05 进制转换 06 原码补码反码 07 物理层和数据链路层 08 网络层和arp协议 09 传输层和应用层 第2章 01 上节课复习 02 arp协议复习 03 字符编码 第3章 01 ...

    dotfiles:〜的配置

    我的MacOS和Linux配置(在Ubuntu上测试)。 还包括有史以来最用户友好的MacOS。 屏幕截图 我尝试尽可能地遵守。 我的$HOME目录是免费的! XDG Linux和MacOS XDG_CONFIG_HOME ~/.config XDG_DATA_HOME ~/....

    多萝西(Dorothy):多萝西(Dorothy)是您有史以来最好的dotfile体验; 在Mac和Linux上开箱即用地支持fish,zsh和bash; 以及多用户配置; 和ssh,gpg和所有您喜欢的应用程序的即时配置

    多萝西Dorothy是一个点文件生态系统,具有: 对bash,fish和zsh的无缝支持(这简直令人赞叹) 无缝支持多种操作系统,例如MacOS和Ubuntu(再次令人惊叹) 无缝支持您最喜欢的终端和GUI编辑器(太棒了) 为您的系统上...

Global site tag (gtag.js) - Google Analytics