用户工具

站点工具


linux:vim:vimrc-example-cn

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

linux:vim:vimrc-example-cn [2011/01/23 08:07] (当前版本)
行 1: 行 1:
 +====== VIM配置文件vimrc中文改进版 ======
 +
 +史上最强的vimrc文件,​据说有800行,​还是作者精简后的结果.
 +
 +我在尽可能保留原作者的创意的前提下做了些小的修正,​主要的修改如下:​
 +
 +增加了对win32系统的兼容,​原来的vimrc文件只兼容linux和mac
 +
 +修正了一些快捷键,​例如ctr-q被原作者用来搜索buffer,​用过win32版本vim的都知道ctrl-q被用来作为块编辑的快捷键,​所以ctrl-q是万万不能被移做他用的.
 +
 +去掉了colorscheme,​原作者的colorscheme对我来说实在是太geeky,​我想软件默认的colorscheme就该是最适合大多数人的.
 +
 +启用了swap文件,​因为我的机器配置太低,​而且我经常要编辑大文件
 +
 +取消了所有和python有关的plugin,​因为一些路径问题,​也因为我觉得vim对python的支持够强大了(事实是,​我缺乏用python写大项目的经验).
 +
 +增加了对中文编码的支持,​参考了吴咏炜的一篇文章
 +
 +兼容低版本vi,目前我在vim5.8.9,​ vim6.1,​vim6.3,​ vim6.4,​vim7.0,​ 上测试过。
 +其他一些通用性,​兼容性的修正
 +
 +去掉了输入([{时的自动填入右括号的功能,​在我修改代码时增加很多麻烦.
 +
 +我强烈建议你通读这个vimrc文件,​一定会很有收获的,​至少我是如此.
 +
 +<code vim>
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +" _
 +" __ |
 +" / | /
 +" __ |
 +" by Amix - http://​amix.dk/​
 +"
 +" Maintainer: Amir Salihefendic <amix3k at gmail.com>​
 +" Version: 2.0
 +" 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
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +" => 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:
 +set mouse=a
 +
 +"Set mapleader
 +let mapleader = ","​
 +let g:mapleader = ","​
 +
 +"Fast saving
 +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 termencoding=chinese
 +set encoding=utf-8
 +set fileencodings=ucs-bom,​utf-8,​chinese
 +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'​
 +"​colorscheme ps_color
 +"​colorscheme default
 +else
 +"set background=dark
 +"​colorscheme default
 +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=4
 +
 +"​Highlight search thing
 +set hlsearch
 +
 +""""""""""""""""""""""""""""""​
 +" => Statusline
 +""""""""""""""""""""""""""""""​
 +"​Format the statusline
 +" Nice statusbar
 +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* " flag
 +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 window
 +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 " flag
 +set titlestring+=\ -\ %{v:​progname} " program name
 +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
 +
 +"​Actually,​ the tab does not switch buffers, but my arrow
 +"​Bclose function ca be found in "​Buffer related"​ section
 +map <​leader>​bd :​Bclose<​cr>​
 +map <​down>​ <​leader>​bd
 +"Use the arrows to something usefull
 +map <​right>​ :​bn<​cr>​
 +map <​left>​ :​bp<​cr>​
 +
 +"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>​
 +imap <c-l> <​esc>​la
 +imap <c-h> <​esc>​ha
 +
 +"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
 +set cindent
 +
 +"Wrap line
 +set wrap
 +
 +
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +" => Spell checking
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +map <​leader>​sn ]
 +map <​leader>​sp [
 +map <​leader>​sa zg
 +map <​leader>​s?​ z=
 +
 +
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +" => Plugin configuration
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +""""""""""""""""""""""""""""""​
 +" => Yank Ring
 +""""""""""""""""""""""""""""""​
 +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"​
 +
 +
 +""""""""""""""""""""""""""""""​
 +" => 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>​
 +
 +
 +""""""""""""""""""""""""""""""​
 +" => 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
 +
 +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""​
 +" => 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
 +augroup abbreviation
 +au!
 +au FileType cpp,c :call Abbrev_cpp()
 +au FileType java :call Abbrev_java()
 +au FileType python :call Abbrev_python()
 +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>​
 +</​code>​
 +
 +===== 参考 =====
 +  * http://​blog.csdn.net/​redguardtoo/​archive/​2006/​09/​03/​1172136.aspx
 +
  
linux/vim/vimrc-example-cn.txt · 最后更改: 2011/01/23 08:07 (外部编辑)