收藏下我的windows 下 vimrc 方案

感觉这个VIM配置方案比较符合我的口味! 先收藏到这里吧,以后说不定还要到处找,免得麻烦!

 

set nocompatible
set tags=./tags,tags
"set tags=./tags,tags,E:/Projects/php/tags

source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin

autocmd GUIEnter * simalt ~x

set guioptions=EgrLt
map <silent> <M-m> :if &guioptions =~# 'T' <Bar>
        \set guioptions-=T <Bar>
        \set guioptions-=m <bar>
    \else <Bar>
        \set guioptions+=T <Bar>
        \set guioptions+=m <Bar>
    \endif<CR>
"set bin noendofline
set nu ai nobackup guifont=consolas:h11
set autochdir
"lcd %:p:h
set autoindent smartindent
:hi normal guibg=black guifg=white

set fileencoding=utf-8
set fileencodings=GB232,utf-8,gbk,ucs-bom,GB8030,default,latin

if has("multi_byte")
    "set encoding=utf-8
endif

set expandtab
set tabstop=4 softtabstop=4 shiftwidth=4
set mouse=a selection=exclusive selectmode=mouse,key

if has('gui_running')
  let do_syntax_sel_menu=1
endif

if bufname('')==''
    cd $HOME
endif

autocmd FileType php                set dictionary+=D:\ShellAlias\backup\php.list
autocmd FileType javascript         set dictionary+=D:\ShellAlias\backup\js.list
autocmd FileType html               set dictionary+=D:\ShellAlias\backup\js.list
autocmd BufNewFile  *.html 0r       E:\Projects\others\vim\html\model.html
imap <C-u> <C-x><C-k>

map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
    exec "w"
    exec "!gcc %"
endfunc

map <F6> :call CompileRunGpp()<CR>
func CompileRunGpp()
    exec "w" 
    exec "!gpp %" 
endfunc

map <F7> :call CompileRunJava()<CR>
func CompileRunJava()
    exec "w" 
    exec "!javac %" 
    exec "!java %<"
endfunc

map <F8> :call RunPhp()<CR>
func RunPhp()
    exec "w" 
    exec "!php %" 
endfunc

map <F9> :RunHtml<CR>

map \at :call AppendTime()<CR>
func AppendTime(...)
    "let format = '%c'
    let format = '%Y-%m-%d %H:%M:%S'
    let editinfo = ['/*'' * Last modified time: '.strftime(format,getftime(expand("%:p"))), ' * Edit time: '.strftime(format,localtime()), ' * File name: '.expand('%'), ' */']
    call append(line('.'),editinfo)
endfunc

map \je :call JSEscape()<CR>
func JSEscape(...)
    let JSString = ['<script type="text/javascript">','//<![CDATA[','//]]>','</script>']
    call append(line('.'),JSString)
    call cursor(line(".")+2,11111111)
    return 1 
endfunc

map \fs :call FileSet()<CR>
func FileSet(...)
    let @z = '/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */'
    "exec "pu! z"
    exec ":call append(line('.'),@z)"
    return 1 
endfunc

map <C-n> :tabnew<CR>
map <S-Left> :tabp<CR>
map <S-Right> :tabn<CR>
for a in range(1,9)
    exe 'map <A-' . a . '' . a . 'gt'
endfor

map \tt :TlistToggle<CR>
map <S-Up> :TlistToggle<CR>
"let Tlist_Ctags_Cmd = 'D:\Projects\shell\ctags.exe'
let Tlist_Use_Right_Window = 1
let Tlist_GainFocus_On_ToggleOpen = 1

map \dsl :g/^[     ]*$/d<CR>
map \dse :%s/[     ]*$//g<CR>
map \t2s :%s/\t/    /g<CR>
map \s2t :%s/    /\t/g<CR>
map \lcd :lcd %:p:h<CR>
"map \cd :cd %:p:h<CR>
map \ed :Xpr<CR>
map \df :call Differ()<CR>
func Differ()
    exec ":set diff"
    exec ":set scrollbind"
    exec ":set guioptions+=b"
endfunc
map \ndf :call Notdiffer()<CR>
func Notdiffer()
    exec ":set nodiff"
    exec ":set noscrollbind"
    exec ":set guioptions-=b"
endfunc

map \cmd :Start<CR>
map <silent> <S-Down> :Start<CR>

map \nt :NERDTreeToggle<CR>
map <S-CR> :NERDTreeToggle<CR>
let NERDTreeIgnore=['\.exe$','\.gif$','\.png$','\.jpeg$','\.swf$','\.ttc$','^CVS$','^SVN$']

set diffexpr=MyDiff()
function MyDiff()
    let opt = '-a --binary '
    if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
    if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
    let arg1 = v:fname_in
    if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
    let arg2 = v:fname_new
    if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
    let arg3 = v:fname_out
    if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
    let eq = ''
    if $VIMRUNTIME =~ ' '
        if &sh =~ '\<cmd'
            let cmd = '""' . $VIMRUNTIME . '\diff"'
            let eq = '"'
        else
            let cmd = substitute($VIMRUNTIME, ' ''''') . '\diff"'
        endif
    else
        let cmd = $VIMRUNTIME . '\diff'
    endif
    silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction

"Following is html editing settings
if exists("b:did_ftplugin")
    finish
endif

let b:html_mode = 1
let xml_use_xhtml = 1

if !exists("*HtmlAttribCallback")
function HtmlAttribCallback( xml_tag )
  if a:xml_tag ==? "table"
      return "cellpadding=\"0\" cellspacing=\"0\" border=\"0\""
  elseif a:xml_tag ==? "link"
      return "href=\"/site.css\" rel=\"StyleSheet\" type=\"text/css\""
  elseif a:xml_tag ==? "body"
      return "bgcolor=\"white\""
  elseif a:xml_tag ==? "frame"
      return "name=\"NAME\" src=\"/\" scrolling=\"auto\" noresize"
  elseif a:xml_tag ==? "frameset"
      return "rows=\"0,*\" cols=\"*,0\" border=\"0\""
  elseif a:xml_tag ==? "img"
      return "src=\"\" width=\"0\" height=\"0\" border=\"0\" alt=\"\" /"
  elseif a:xml_tag ==? "input"
      return 'type="" value=""'
  elseif a:xml_tag ==? "a"
      if has("browse")
          " Look up a file to fill the href. Used in local relative file
          " links. typeing your own href before closing the tag with `>'
          " will override this.
          let cwd = getcwd()
          let cwd = substitute (cwd, "\\""/""g")
          let href = browse (0"Link to href...", getcwd(), "")
          let href = substitute (href, cwd . "/""""")
          let href = substitute (href, " ""%20""g")
      else
          let href = ""
      endif
      return "href=\"" . href . "\""
  else
      return 0
  endif
endfunction
endif

" On to loading xml.vim
runtime ftplugin/xml.vim

 

 

posted @ 2012-12-03 14:26  稳扎稳打  Views(179)  Comments(0Edit  收藏  举报