網路冷眼@BlogJava

          熙熙攘攘一閑人 以冷靜的眼光觀察技術
          posts - 88, comments - 193, trackbacks - 0, articles - 28
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          史上最強的 Vim 配置文件?-純文本版

          Posted on 2007-07-20 00:01 網路冷眼@BlogJava 閱讀(2798) 評論(0)  編輯  收藏 所屬分類: Linux
          """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
          "          _
          "      __ | \
          "     /   | /
          "     \__ | \
          " 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 :w!<cr>
          nmap <leader>f :find<cr>
          "Fast reloading of the .vimrc
          map <leader>s :source ~/vim_local/vimrc<cr>
          "Fast editing of .vimrc
          map <leader>e :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, "\n$", "", "")
          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 "e " . 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>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 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 $i \indent
          autocmd FileType tex inoremap $* \cdot
          autocmd FileType tex inoremap $i \item
          autocmd FileType tex inoremap $m \[<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> $r return
          au FileType python inoremap <buffer> $s self
          au FileType python inoremap <buffer> $c ##<cr>#<space><cr>#<esc>kla
          au FileType python inoremap <buffer> $i import
          au FileType python inoremap <buffer> $p print
          au FileType python inoremap <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 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> $r return
          au FileType javascript inoremap <buffer> $d //<cr>//<cr>//<esc>ka<space>
          au FileType javascript inoremap <buffer> $c /**<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 <++>(<++>):\n<++>\nreturn <++>")<cr>
          autocmd FileType python inorea <buffer> cclass <c-r>=IMAP_PutTextWithMovement("class <++>:\n<++>")<cr>
          autocmd FileType python inorea <buffer> cfor <c-r>=IMAP_PutTextWithMovement("for <++> in <++>:\n<++>")<cr>
          autocmd FileType python inorea <buffer> cif <c-r>=IMAP_PutTextWithMovement("if <++>:\n<++>")<cr>
          autocmd FileType python inorea <buffer> cifelse <c-r>=IMAP_PutTextWithMovement("if <++>:\n<++>\nelse:\n<++>")<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="#\1" style="color: cyan">\1<\/a></g
          %s/&quot;\(-\|\s\)\+\*&gt; \(.\+\)</" \&nbsp;\&nbsp; <a href="#\2" style="color: cyan;">\2<\/a></g
          %s/&quot;\s\+=&gt; \(.\+\)</" <a name="\1" style="color: #fff">\1<\/a></g
          catch
          endtry
          exe ":write!"
          exe ":bd"
          endfunction
          
          主站蜘蛛池模板: 阿荣旗| 祥云县| 巍山| 德清县| 永嘉县| 西乡县| 德惠市| 建瓯市| 陇西县| 林口县| 永安市| 雷州市| 冷水江市| 葵青区| 疏附县| 沐川县| 当阳市| 张家界市| 南溪县| 兴和县| 旬阳县| 通山县| 三原县| 福建省| 黄陵县| 明光市| 孟村| 灵石县| 龙里县| 铜山县| 巴中市| 玉龙| 海安县| 洞头县| 扶沟县| 衡南县| 涡阳县| 宜宾县| 驻马店市| 盱眙县| 海林市|