史上最强的Vim配置脚本

http://www.amix.dk/vim/vimrc.html#Fileformats
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"          _
"      __ | 
"     /   | /
"     __ | 
" by Amix - http://amix.dk/
"
" Maintainer: Amir Salihefendic <amix3k at gmail.com>
" Version: 2.7
" Last Change: 12/10/06 00:09:21
"
" Sections:
" ----------------------
" General
" Colors and Fonts
" Fileformats
" VIM userinterface
"    Statusline
" Visual
" Moving around and tabs
" General Autocommands
" Parenthesis/bracket expanding
" General Abbrevs
" Editing mappings etc.
" Command-line config
" Buffer realted
" Files and backups
" Folding
" Text options
"    Indent
" Spell checking
" Plugin configuration
"    Yank ring
"    File explorer
"    Minibuffer
"    Tag list (ctags) - not used
"    LaTeX Suite things
" Filetype generic
"    Todo
"    VIM
"    HTML related
"    Ruby & PHP section
"    Python section
"    Cheetah section
"    Vim section
"    Java section
"    JavaScript section
"    C mappings
"    SML
"    Scheme bindings
" Snippets
"    Python
"    javaScript
" Cope
" MISC
"
"  Tip:
"   If you find anything that you can't understand than do this:
"   help keyword OR helpgrep keywords
"  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

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

"Enable filetype plugin
filetype plugin 
on
filetype indent 
on

"Set to auto read when a file is changed from the outside
set autoread

"Have the mouse enabled all the time:
set mouse=a

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

"Fast saving
nmap 
<leader>:w!<cr>
nmap 
<leader>:find<cr>

"Fast reloading of the .vimrc
map <leader>s :source ~/vim_local/vimrc<cr>
"Fast editing of .vimrc
map 
<leader>:e! ~/vim_local/vimrc<cr>
"When .vimrc is edited, reload it
autocmd! bufwritepost vimrc source ~/vim_local/vimrc


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Colors and Fonts
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Enable syntax hl
syntax enable

"Set font to Monaco 10pt
if MySys() == "mac"
  
set gfn=Bitstream Vera Sans Mono:h14
  
set nomacatsui
  
set termencoding=macroman
elseif MySys
() == "linux"
  
set gfn=Monospace 11
endif

if has("gui_running")
  
set guioptions-=T
  let psc_style
='cool'
  colorscheme ps_color
else
  
set background=dark
  colorscheme zellner
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>

autocmd BufEnter * :syntax sync fromstart

"Highlight current
if has("gui_running")
  
set cursorline
  hi cursorline guibg
=#333333
  hi CursorColumn guibg
=#333333
endif

"Omni menu colors
hi Pmenu guibg=#333333
hi PmenuSel guibg=#555555 guifg=#ffffff


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Fileformats
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Favorite filetypes
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 bracets
set showmatch

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

"Highlight search things
set hlsearch

  
""""""""""""""""""""""""""""""
  
" Statusline
  
""""""""""""""""""""""""""""""
  
"Always hide the statusline
  set laststatus=2

  function! CurDir()
     let curdir = substitute(getcwd(), '/Users/amir/', 
"~/""g")
     return curdir
  endfunction

  
"Format the statusline
  
set statusline= %F%m%r%h %w  CWD: %r%{CurDir()}%h   Line: %l/%L:%c



""""""""""""""""""""""""""""""
" Visual
""""""""""""""""""""""""""""""
" From an idea by Michael Naumann
function! VisualSearch
(direction) range
  let l
:saved_reg = @"
  execute 
"normal! vgvy"
  let l:pattern = escape(@
", '//.*$^~[]')
  let l
:pattern = substitute(l:pattern, " $", "", "")
  
if a:direction == 'b'
    execute 
"normal ?" . l:pattern . "^M"
  
else
    execute 
"normal /" . l:pattern . "^M"
  endif
  let @
/ = l:pattern
  let @
" = l:saved_reg
endfunction

"Basically you press * or # to search for the current selection !! Really useful
vnoremap 
<silent> * :call VisualSearch('f')<CR>
vnoremap 
<silent> # :call VisualSearch('b')<CR>


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

"Smart way to move btw. windows
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 arrows
"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>te :tabedit
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
try
  set switchbuf=usetab
  set stal=2
catch
endtry

"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 Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"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 (, ", ', [
inoremap $1 ()<esc>:let leavechar=
")"<cr>i
inoremap $2 []<esc>:let leavechar=
"]"<cr>i
inoremap $4 {<esc>o}<esc>:let leavechar=
"}"<cr>O
inoremap $3 {}<esc>:let leavechar=
"}"<cr>i
inoremap $q ''<esc>:let leavechar=
"'"<cr>i
inoremap $w 
""<esc>:let leavechar='"'<cr>i
au BufNewFile
,BufRead *.(vim)@! inoremap " ""<esc>:let leavechar='"'<cr>i
au BufNewFile
,BufRead *.(txt)@! inoremap ' ''<esc>:let leavechar="'"<cr>i

imap 
<m-l> <esc>:exec "normal f" . leavechar<cr>a
imap 
<d-l> <esc>:exec "normal f" . leavechar<cr>a


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" General Abbrevs
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"My information
iab 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

func! DeleteTrailingWS()
  exe 
"normal mz"
  %s/s+$//ge
  exe 
"normal `z"
endfunc
autocmd BufWrite *.py :call DeleteTrailingWS()

set completeopt=menu

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

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

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

"Smart mappings on the command line
cno $h e ~/
cno $d e ~/Desktop/
cno $j e ./

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
cnoremap 
<C-A>    <Home>
cnoremap 
<C-E>    <End>
cnoremap 
<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
au BufReadPost * if line(
"'"") > 0|if line("'"") <= line("$")|exe("norm '"")|else|exe "norm $"|endif|endif

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

" Don't close window, when deleting a buffer
command! Bclose call <SID>BufcloseCloseIt()

function! 
<SID>BufcloseCloseIt()
   let l
:currentBufNum = bufnr("%")
   let l
:alternateBufNum = bufnr("#")

   
if buflisted(l:alternateBufNum)
     buffer 
#
   
else
     bnext
   endif

   
if bufnr("%") == l:currentBufNum
     new
   endif

   
if buflisted(l:currentBufNum)
     execute
("bdelete! ".l:currentBufNum)
   endif
endfunction


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Files and backups
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Turn backup off
set nobackup
set nowb
set noswapfile


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Folding
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Enable folding, I find it very useful
set nofen
set fdl=0


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Text options
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set expandtab
set shiftwidth=2

map <leader>t2 :set shiftwidth=2<cr>
map <leader>t4 :set shiftwidth=4<cr>
au FileType html,python,vim,javascript setl shiftwidth=2
au FileType html,python,vim,javascript setl tabstop=2
au FileType java setl shiftwidth=4
au FileType java setl tabstop=4

set smarttab
set lbr
set tw=500

   
""""""""""""""""""""""""""""""
   
" Indent
   
""""""""""""""""""""""""""""""
   
"Auto indent
   set ai

   
"Smart indet
   
set si

   
"C-style indeting
   set cindent

   
"Wrap lines
   
set wrap


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


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Plugin configuration
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
   
""""""""""""""""""""""""""""""
   
" Vim Grep
   
""""""""""""""""""""""""""""""
   let Grep_Skip_Dirs = 'RCS CVS SCCS .svn'
   let Grep_Cygwin_Find = 1

   
""""""""""""""""""""""""""""""
   
" Yank Ring
   
""""""""""""""""""""""""""""""
   map 
<leader>: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 files
   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 = 2
   let g
:miniBufExplModSelTarget = 0
   let g
:miniBufExplUseSingleClick = 1
   let g
:miniBufExplMapWindowNavVim = 1
   let g
:miniBufExplVSplit = 25
   let g
:miniBufExplSplitBelow=1

   let g
:bufExplorerSortBy = "name"

   autocmd BufRead
,BufNew :call UMiniBufExplorer


   
""""""""""""""""""""""""""""""
   
" 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>


   
""""""""""""""""""""""""""""""
   
" LaTeX Suite things
   
""""""""""""""""""""""""""""""
   
set grepprg=grep -nH $*
   let g
:Tex_DefaultTargetFormat="pdf"
   let g
:Tex_ViewRule_pdf='xpdf'

   
"Bindings
   autocmd FileType tex map <silent><leader><space> :w!<cr> :silent! call Tex_RunLaTeX()<cr>

   
"Auto complete some things ;)
   autocmd FileType tex inoremap 
$indent
   autocmd FileType tex inoremap 
$cdot
   autocmd FileType tex inoremap 
$item
   autocmd FileType tex inoremap 
$[<cr>]<esc>O


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

   
""""""""""""""""""""""""""""""
   
" VIM
   
""""""""""""""""""""""""""""""
   autocmd FileType vim map <buffer> <leader><space> :w!<cr>:source %<cr>


   
""""""""""""""""""""""""""""""
   
" 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 = 1
   let html_number_lines = 0
   let use_xhtml = 1


   
""""""""""""""""""""""""""""""
   
" Ruby & PHP section
   
""""""""""""""""""""""""""""""
   autocmd FileType ruby map 
<buffer> <leader><space> :w!<cr>:!ruby %<cr>
   autocmd FileType php compiler php
   autocmd FileType php map 
<buffer> <leader><space> <leader>cd:w<cr>:make %<cr>


   
""""""""""""""""""""""""""""""
   
" Python section
   
""""""""""""""""""""""""""""""
   
"Run the current buffer in python - ie. on leader+space
   au FileType python so ~
/vim_local/syntax/python.vim
   autocmd FileType python map 
<buffer> <leader><space> :w!<cr>:!python %<cr>
   autocmd FileType python so ~
/vim_local/plugin/python_fold.vim

   
"Set some bindings up for 'compile' of python
   autocmd FileType python set makeprg=python -c "import py_compile,sys; sys.stderr=sys.stdout; py_compile.compile(r'%')"
   autocmd FileType python set efm=%C %.%#,%A  File "%f"/, line %l%.%#,%Z%[%^ ]%/@=%m

   
"Python iMaps
   au FileType python 
set cindent
   au FileType python inoremap 
<buffer> $return
   au FileType python inoremap 
<buffer> $s self
   au FileType python inoremap 
<buffer> $##<cr>#<space><cr>#<esc>kla
   au FileType python inoremap 
<buffer> $i import
   au FileType python inoremap 
<buffer> $print
   au FileType python inoremap 
<buffer> $"""<cr>"""<esc>O

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

   
""""""""""""""""""""""""""""""
   
" Cheetah section
   
"""""""""""""""""""""""""""""""
   autocmd FileType cheetah set ft=xml
   autocmd FileType cheetah set syntax=cheetah

   
"""""""""""""""""""""""""""""""
   
" Vim section
   
"""""""""""""""""""""""""""""""
   autocmd FileType vim 
set nofen

   
"""""""""""""""""""""""""""""""
   
" Java section
   
"""""""""""""""""""""""""""""""
   au FileType java inoremap <buffer> <C-t> System.out.println();<esc>hi

   
"Java comments
   autocmd FileType java source ~
/vim_local/macros/jcommenter.vim
   autocmd FileType java let b
:jcommenter_class_author='Amir Salihefendic (amix@amix.dk)'
   autocmd FileType java let b
:jcommenter_file_author='Amir Salihefendic (amix@amix.dk)'
   autocmd FileType java map 
<buffer> <F2> :call JCommentWriter()<cr>

   
"Abbr'z
   autocmd FileType java inoremap <buffer> $pr private
   autocmd FileType java inoremap <buffer> $r return
   autocmd FileType java inoremap <buffer> $pu public
   autocmd FileType java inoremap <buffer> $i import
   autocmd FileType java inoremap <buffer> $b boolean
   autocmd FileType java inoremap <buffer> $v void
   autocmd FileType java inoremap <buffer> $s String

   
"Folding
   function! JavaFold
()
     setl foldmethod
=syntax
     setl foldlevelstart
=1
     syn region foldBraces 
start=/{/ end=/}/ transparent fold keepend extend
     syn match foldImports 
/(n?import.+;n)+/ transparent fold

     function! FoldText
()
       
return substitute(getline(v:foldstart), '{.*', '{...}', '')
     endfunction
     setl foldtext
=FoldText()
   endfunction
   au FileType java 
call JavaFold()
   au FileType java setl fen

   au BufEnter *
.sablecc,*.scc set ft=sablecc

   
""""""""""""""""""""""""""""""
   
" JavaScript section
   
"""""""""""""""""""""""""""""""
   au FileType javascript so ~
/vim_local/syntax/javascript.vim
   function! JavaScriptFold
()
     setl foldmethod
=syntax
     setl foldlevelstart
=1
     syn region foldBraces 
start=/{/ end=/}/ transparent fold keepend extend

     function! FoldText
()
       
return substitute(getline(v:foldstart), '{.*', '{...}', '')
     endfunction
     setl foldtext
=FoldText()
   endfunction
   au FileType javascript 
call JavaScriptFold()
   au FileType javascript setl fen

   au FileType javascript imap 
<c-t> console.log();<esc>hi
   au FileType javascript imap 
<c-a> alert();<esc>hi
   au FileType javascript setl nocindent
   au FileType javascript inoremap 
<buffer> $return

   au FileType javascript inoremap 
<buffer> $//<cr>//<cr>//<esc>ka<space>
   au FileType javascript inoremap 
<buffer> $/**<cr><space><cr>**/<esc>ka


   
""""""""""""""""""""""""""""""
   
" HTML
   
"""""""""""""""""""""""""""""""
   au FileType html
,cheetah set ft=xml
   au FileType html
,cheetah set syntax=html


   
""""""""""""""""""""""""""""""
   
" C mappings
   
"""""""""""""""""""""""""""""""
   autocmd FileType c map 
<buffer> <leader><space> :w<cr>:!gcc %<cr>


   
"""""""""""""""""""""""""""""""
   
" SML
   
"""""""""""""""""""""""""""""""
   autocmd FileType sml map <silent> <buffer> <leader><space> <leader>cd:w<cr>:!sml %<cr>


   
""""""""""""""""""""""""""""""
   
" Scheme bidings
   
""""""""""""""""""""""""""""""
   autocmd BufNewFile
,BufRead *.scm map <buffer> <leader><space> <leader>cd:w<cr>:!petite %<cr>
   autocmd BufNewFile
,BufRead *.scm inoremap <buffer> <C-t> (pretty-print )<esc>i
   autocmd BufNewFile
,BufRead *.scm vnoremap <C-t> <esc>`>a)<esc>`<i(pretty-print <esc>


   
""""""""""""""""""""""""""""""
   
" SVN section
   
"""""""""""""""""""""""""""""""
   map 
<F8> :new<CR>:read !svn diff<CR>:set syntax=diff buftype=nofile<CR>gg


""""""""""""""""""""""""""""""
" Snippets
"""""""""""""""""""""""""""""""
   
"You can use <c-j> to goto the next <++> - it is pretty smart ;)

   
"""""""""""""""""""""""""""""""
   
" Python
   
"""""""""""""""""""""""""""""""
   autocmd FileType python inorea 
<buffer> cfun <c-r>=IMAP_PutTextWithMovement("def <++>(<++>): <++> return <++>")<cr>
   autocmd FileType python inorea 
<buffer> cclass <c-r>=IMAP_PutTextWithMovement("class <++>: <++>")<cr>
   autocmd FileType python inorea 
<buffer> cfor <c-r>=IMAP_PutTextWithMovement("for <++> in <++>: <++>")<cr>
   autocmd FileType python inorea 
<buffer> cif <c-r>=IMAP_PutTextWithMovement("if <++>: <++>")<cr>
   autocmd FileType python inorea 
<buffer> cifelse <c-r>=IMAP_PutTextWithMovement("if <++>: <++> else: <++>")<cr>


   
"""""""""""""""""""""""""""""""
   
" JavaScript
   
"""""""""""""""""""""""""""""""
   autocmd FileType cheetah,html,javascript inorea <buffer> cfun <c-r>=IMAP_PutTextWithMovement(
"function <++>(<++>) {n<++>;nreturn <++>;n}")<cr>
   autocmd filetype cheetah,html,javascript inorea <buffer> cfor <c-r>=IMAP_PutTextWithMovement(
"for(<++>; <++>; <++>) {n<++>;n}")<cr>
   autocmd FileType cheetah,html,javascript inorea <buffer> cif <c-r>=IMAP_PutTextWithMovement(
"if(<++>) {n<++>;n}")<cr>
   autocmd FileType cheetah,html,javascript inorea <buffer> cifelse <c-r>=IMAP_PutTextWithMovement(
"if(<++>) {n<++>;n}nelse {n<++>;n}")<cr>


   
"""""""""""""""""""""""""""""""
   
" HTML
   
"""""""""""""""""""""""""""""""
   autocmd FileType cheetah
,html inorea <buffer> cahref <c-r>=IMAP_PutTextWithMovement('<a href="<++>"><++></a>')<cr>
   autocmd FileType cheetah
,html inorea <buffer> cbold <c-r>=IMAP_PutTextWithMovement('<b><++></b>')<cr>
   autocmd FileType cheetah
,html inorea <buffer> cimg <c-r>=IMAP_PutTextWithMovement('<img src="<++>" alt="<++>" />')<cr>
   autocmd FileType cheetah
,html inorea <buffer> cpara <c-r>=IMAP_PutTextWithMovement('<p><++></p>')<cr>
   autocmd FileType cheetah
,html inorea <buffer> ctag <c-r>=IMAP_PutTextWithMovement('<<++>><++></<++>>')<cr>
   autocmd FileType cheetah
,html inorea <buffer> ctag1 <c-r>=IMAP_PutTextWithMovement("<<++>><cr><++><cr></<++>>")<cr>


   
"""""""""""""""""""""""""""""""
   
" Java
   
"""""""""""""""""""""""""""""""
   autocmd FileType java inorea <buffer> cfun <c-r>=IMAP_PutTextWithMovement(
"public<++> <++>(<++>) {n<++>;nreturn <++>;n}")<cr>
   autocmd FileType java inorea <buffer> cfunpr <c-r>=IMAP_PutTextWithMovement(
"private<++> <++>(<++>) {n<++>;nreturn <++>;n}")<cr>
   autocmd FileType java inorea <buffer> cfor <c-r>=IMAP_PutTextWithMovement(
"for(<++>; <++>; <++>) {n<++>;n}")<cr>
   autocmd FileType java inorea <buffer> cif <c-r>=IMAP_PutTextWithMovement(
"if(<++>) {n<++>;n}")<cr>
   autocmd FileType java inorea <buffer> cifelse <c-r>=IMAP_PutTextWithMovement(
"if(<++>) {n<++>;n}nelse {n<++>;n}")<cr>
   autocmd FileType java inorea <buffer> cclass <c-r>=IMAP_PutTextWithMovement(
"class <++> <++> {n<++>n}")<cr>
   autocmd FileType java inorea <buffer> cmain <c-r>=IMAP_PutTextWithMovement(
"public static void main(String[] argv) {n<++>n}")<cr>


   
"Presse c-q insted of space (or other key) to complete the snippet
   imap 
<C-q> <C-]>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Cope
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"For Cope
map 
<silent> <leader><cr> :noh<cr>

"Orginal for all
map <leader>n :cn<cr>
map <leader>p :cp<cr>
map <leader>c :botright cw 10<cr>
map <c-u> <c-l><c-j>:q<cr>:botright cw 10<cr>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" MISC
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"Remove the Windows ^M
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm

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

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

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

"A function that inserts links & anchors on a TOhtml export.
" Notice:
" Syntax used is:
" Link
" Anchor
function! SmartTOHtml()
   TOhtml
   try
    %s/&quot;s+*&gt; (.+)</
" <a href="#" style="color: cyan">1</a></g
    %s
/&quot;(-|s)+*&gt; (.+)</" &nbsp;&nbsp; <a href="#2" style="color: cyan;"></a></g
    %s/&quot;s+=&gt; (.+)</
" <a name="" style="color: #fff">1</a></g
   catch
   endtry
   exe 
":write!"
   exe 
":bd"
endfunction

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值