make backup path work on mac and win32unix(cygwin)
[hombase.git] / _vimrc
blob23d52695d58ee72ff50949ff1aaa5ffbe31f02cd
1 "@author:                   Lifan
2 "@Modified:             2012-Aug-31-13-20
5 "set nocompatible       "because this is defined in vimrc_example.vim
7 "source $VIMRUNTIME/vimrc_example.vim
8 set fileformats=unix,dos
9 "set encoding=utf-8
10 let $LANG = 'en'
11 "if !has("unix")
12     "language message en
13     ""language time English_United States.1252
14     ""set langmenu=en.UTF-8
15 "endif
16 set fencs=ucs-bom,utf-8,gb2312,gb18030,gbk,big5,l439atin1
17 "set fencs=ucs-bom,utf-8,cp936,gb18030,gbk,big5,euc-jp,euc-kr,latin1
18 "set fencs=ucs-bom,utf-8,gb2312,gbk,gb18030,latin1
19 "set fencs=ucs-bom,chinese,taiwan,japan,korea,utf-8,latin1
20 let mapleader = ","
22 if has("mac")
23         if has("gui_running")
24         else
25         endif
26         let $VIMFILY=expand("$HOME") . '/.vim'
27     "let mac option key work as meta key in vim
28     set macmeta
29 elseif has("unix")
30         if has("gui_running")  "for gdk+ vim seting
31                 "set langmenu=none
32                 "language en_US
33                 "set enc=gb2312
34                 "source $VIMRUNTIME/delmenu.vim
35                 "source $VIMRUNTIME/menu.vim
36                 "set imactivatekey=C-space
37                 "set iminsert=0
38                 "set ims=0
39                 "inoremap <esc> <esc>:set iminsert=2<cr>
40                 "noremap i      :set iminsert=2<cr>i
41                 "noremap a :set iminsert=2<cr>a
42                 "set ims=0
43                 "set imc!
44                 
45                 " CTRL-A is Select all
46                 noremap <C-A> gggH<C-O>G
47                 inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
48                 cnoremap <C-A> <C-C>gggH<C-O>G
49                 onoremap <C-A> <C-C>gggH<C-O>G
50                 snoremap <C-A> <C-C>gggH<C-O>G
51                 xnoremap <C-A> <C-C>ggVG
53                 " CTRL-V and SHIFT-Insert are Paste
54                 imap <C-V> <C-r>* 
55                 map <C-V>               "*gP
56                 map <S-Insert>          "*gP
57                 cmap <C-V>              <C-R>*
58                 cmap <S-Insert>         <C-R>*
59         else            "for bash vim setting
60                 set noshowcmd
61                 colorscheme desert
62                 "syntax off
63         endif
64         "let $VIMFILY='~/.vim'
65         let $VIMFILY=expand("$HOME") . '/.vim'
66         "set rtp^=~/vimfiles
67         "source ~/vimfiles/filetype.vim
68 else            "for win32 setting
69         if has("gui_running")
70                 "source $VIMRUNTIME/mswin.vim
71                 "set guioptions+=a      "auto copy to 
72                 "understand this
73                 set grepprg=grep\ -n\ $*\ /dev/null
74                 set grepformat=%f:%l:%m,%f:%l%m,%f\     %l%m
75                 cabbrev sort /bin/sort
76         else
77                 set noshowcmd
78         endif
79         let $VIMFILY=expand("$HOME") . '/vimfiles'
80 endif
82 let $ADDED=$VIMFILY . '/added_plugin'
84 source $ADDED/my_vimrc_example.vim
85 if has("win32") && has("gui_running")
86     source $ADDED/my_mswin.vim
87 endif
89 source $ADDED/publib.vim
91 "for latex suit now
92 let $ADDED2=$VIM . '/vimfiles/added_plugin2'
96 "add this by lifan
97 """"""""""""""""""""""""""""""""""""""""""""""""""""""
98 "General
99 """""""""""""""""""""""""""""""""""""""""""""""""""""
100 set helplang=cn
101 set hh=999      "set the help windows defaul height to max
102 set linebreak   "let english word break whole word
103 set showmatch
104 set mat=3
105 set history=500000
106 set viminfo='100,<1500,s500,:500,/300
107 set nohlsearch
108 set incsearch
109 set timeoutlen=1500
110 set hid         "let you can change buffer without save
111 set ignorecase
112 "turn off ignorecase in a typed search if an uppercase char exists.
113 set smartcase
114 call CodeMode()         "most time are coding:)
115 set noerrorbells
116 set visualbell t_vb=
117 set cmdheight=1
118 set guioptions-=T       "hide the toolbar
119 set guioptions-=m       "hide the menubar
120 "set guioptions+=c      "use text dialog
121 set laststatus=2
122 set noruler
123 set shortmess=at
124 "set rulerformat=%50(\ %n[%{&ff}]%r%m%y%=%-14.(%l,%c%V%)\ %p%%%)
125 "set statusline=%<%f %n[%{&ff}]%r%m%y%=%-14.(%l,%c%V%)\ %p%%
126 hi User1 term=standout,bold cterm=reverse ctermbg=red gui=bold guifg=red guibg=Grey
127 hi User2 term=standout,bold cterm=reverse gui=bold guibg=Grey
130 """""""""""""""""""""""""""""""""""""""""""""""""""""""
131 "function for return the file format and file encoding
132 "from http://msghost.iyublog.com/?cat=477
133 function! FunFileEncoding()
134 return &ff . ":" . &fenc
135 endfunction
136 """"""""""""""""""""""""""""""""""""""""""""""""""
138 set statusline=%2*%=\ \ \ %50(%f\ @%n[%{FunFileEncoding()}]%r%m%y#%{changenr()}%=\ \ \ %-14.(%l,%c\(%v\)%)\ %p%%%)%*
139 set report=0
140 set listchars=eol:<
141 set listchars+=tab:>-
142 set wildmenu                    "用tab在命令行提示
143 "set clipboard+=unnamed "是y 和 p 同系统剪切板相连
144 set clipboard+=autoselect
145 "set splitbelow                 "splitting a window below the current one
146 """""""""""""""""""""""""""""""""""""""""""""""""""""
147 "Files/Backups
148 """""""""""""""""""""""""""""""""""""""""""""""""""""
149 set autowrite
150 if has("mac") || has("macunix")
151     set backupdir=/Volumes/hard/backups/vi
152 elseif has("unix")
153     "|| has("win32unix")
154     set backupdir=/var/backups/vi
155 else
156     if($MYGENV == "true")
157         set backupdir=$E_DISK//var/backups/vi
158     else
159         set backupdir=e:/var/backups/vi
160     endif
162 endif
163 "set sessionoptions+=curdir
164 set browsedir=buffer
165 set backupskip+=*.clean,cvscommit.????,*.~
166 set wildignore=*.o,*.obj,*.exe,*.bak,*.clean
167 if has("gui_running")
168         let savevers_dirs = &backupdir
169         let savevers_max = 9
170         source $ADDED/savevers.vim
171         set backup
172         set patchmode=.clean
173         set backupcopy=yes
174 endif
175 "change the direct when chang the buffer
176 "au   BufEnter *   :lcd %:p:h
177 set autochdir
178 set makeef=error.err
179 set title
180 set titlelen=80
181 set titlestring=%<%F\ %M\ %R\ %{v:servername}\ %{mode()}
183 """""""""""""""""""""""""""""""""""""""""""""""""""""
185 "Vim GUI
186 """"""""""""""""""""""""""""""""""""""""""""""""""""""
187 """""""""""""""""""""""""""""""""""""""""""""""""""""
188 " Text Formatting/Layout
189 """""""""""""""""""""""""""""""""""""""""""""""""""""
190 "set fo=tcrqn
191 """""""""""""""""""""""""""""""""""""""""""""""""""""
192 "Folding
193 """""""""""""""""""""""""""""""""""""""""""""""""""""
194 set foldenable " Turn on folding
195 "set foldmethod=indent " Make folding indent sensitive
196 set foldlevel=100 " Don't autofold anything (but I can still fold manually)
197 "set foldopen-=search " don't open folds when you search into them
198 set foldopen-=undo 
199 "set foldcolumn=8
200 "set foldmethod=syntax
202 " setting for xml plugin
203 let g:xml_syntax_folding = 1
204 let xml_use_xhtml = 1
205 "let xml_jump_string = '<!-- mark -->'
210 """""""""""""""""""""""""""""""""""""""""""""""""""""
211 "Mappings
212 """""""""""""""""""""""""""""""""""""""""""""""""""""
213 "nomre mode maping
214 "nnoremap <C-i> i <esc>r
215 "nnoremap j gj
216 "nnoremap k gk
217 nnoremap ' `
219 "for caculator ++
220 nnoremap <C-c> <C-A>
222 "for del the auto comment
223 noremap <m-cr> o<esc>^"8d$a
225 "for eclipse compatible 
226 inoremap <m-/> <c-x><c-o>
228 "for good insert next line
229 "noremap <C-i> ddO
230 noremap <m-i> :let g:currentline=line('.')<cr>:.d<cr>:if g:currentline==line('.')<cr>:normal -<cr>:endif<cr>o
232 "use <c-v> to mapping the block visual mode do not using the win32 paste
233 nnoremap <c-v> <c-v>
235 "nnoremap <silent> <cr> i<cr><esc>
238 "insert mode maping
239 "notice, <c-e> using for end complete mode, <c-y> using for accept complete in
240 "vim original
242 " my undo setting
243 "inoremap <A-r> <C-R>
244 "inoremap <C-u> <esc>g-a
245 "inoremap <C-r> <esc>g+a
246 inoremap <C-u> <C-O>u
247 "inoremap <C-z> <C-O>u
248 inoremap <C-r> <C-O><C-R>
249 "noremap u g-
250 "noremap <C-r> g+
252 " Gundo setting
253 let g:gundo_width = 60
254 let g:gundo_preview_height = 12
255 let g:gundo_right = 1
256 "let g:gundo_close_on_revert = 1
257 let g:gundo_help = 0
258 noremap <silent> <m-;> :silent GundoToggle<cr>
259 inoremap <silent> <m-;> <esc>:silent GundoToggle<cr>
260 noremap <silent> <m-:> <esc>:silent GundoRenderGraph<cr>
261 inoremap <silent> <m-:> <esc>:silent GundoRenderGraph<cr>
262 """"""""""""""""""""""""""""""""
264 " my window key map setting
265 noremap <a-j> <c-w>w
266 inoremap <a-j> <c-w>w
267 "noremap <a-h> <c-w>h
268 "inoremap <a-h> <c-w>h
269 "noremap <a-l> <c-w>l
270 "inoremap <a-l> <c-w>l
271 "noremap <a-j> <c-w>j
272 "inoremap <a-j> <c-w>j
273 "noremap <a-k> <c-w>k
274 "inoremap <a-k> <c-w>k
275 """"""""""""""""""""""""""""""""
277 " my complete setting
278 " failure try, must find a way to map /
279 "inoremap / <kDivide>
280 "imap <expr> <F3> "\u611B"
281 "inoremap <Right> <C-R>=pumvisible() ? "\<lt>C-N>" : "\<lt>Down>"<CR>
283 "like in emacs to kill a line
284 inoremap <C-k> <space><esc>d$a
286 "for del the auto comment
287 inoremap <m-cr> <cr><esc>^d$a
289 " reproduce previous line word by word
290 "inoremap <C-j>  @@@<ESC>hhkyWjl?@@@<CR>P/@@@<CR>3s
292 "visual mode maping
293 "   Put string marked by visual mode as default for search commands / and ?
294 "   Warning: extending the marked text by searching doesn't work any more.
295 vnoremap / y/<C-R>=escape(substitute(@","\n.*",'',''),'/\?*.$^~][')<cr>
296 vnoremap ? y?<C-R>=escape(substitute(@","\n.*",'',''),'/\?*.$^~][')<cr>
297 "   Explanation:
298 " substitute(@",..) - remove lines after first, if >1 line highlighted
299 " escape(..)        - put '\' before all characters meaningful in regexp's
300 " y                 - yank current selection (in register ")
301 " ctrl-r = .. <cr>  - put expression after / as earch string
302 " credits go to Stefan Roemer and Peppe (Preben Guldberg).
304 "   Remove whitespace from lines containing nothing else (grr to all nedit users)
306 "for the mouse conflict key(c-insert) of HP notebook
307 "noremap <Insert> <Esc>
308 "noremap <C-Insert> <Esc>
309 "inoremap <Insert> <Down>
310 "inoremap <C-Insert> <Down>
312 "leader mode mapping
314 "for new tab page setting
315 map <leader>ta <esc>:tab sball<cr>
317 "buffer mapping
318 map <leader>bp <esc>:bp<return>
319 map <leader>bn <esc>:bn<return>
320 map <leader>bl <esc>:ls!<cr>
322 nnoremap <leader>dd <esc>:call MyTriggerMore()<cr>
323 map <leader>yy <esc>^"*y$
325 "editor setting mapping
326 map <leader>ec <esc>:call MyCoding()<cr>
327 map <leader>el <esc>:set list!<cr>
328 map <leader>em <esc>:call MyMenu()<cr>
329 map <leader>en <esc>:set nu!<cr>:set cursorline!<cr>
330 map <leader>ew <esc>:call MyWrap()<cr>
332 "file or browser mapping
333 "map <leader>fx <esc>:Ex<cr>
334 "nnoremap <leader>fd :set fileformat=dos<cr>
335 "nnoremap <leader>fu :set fileformat=unix<cr>
336 "map <leader>ww <esc>:call MyUrl(expand('<cWORD>'))<cr>
337 "map <leader>m <esc>:silent MarksBrowser<cr>
339 "search mapping
340 map <leader>sh <esc>:set hlsearch!<cr>
341 map <leader>sn <esc>:%s//&/gn<cr>
343 "spell mapping
344 map <leader>ss <esc>:setlocal spell!<cr>
345 "aspell setting
346 "ca  xsp write !aspell -a --lang="en_US"<cr>
347 "map <leader>s <Esc>:w<cr><Esc>:!aspell -c --dont-backup --lang=en_US "%:p"<cr>:e! "%"<cr><cr>
349 "map <leader>df <esc>:silent !start firefox "http://www.m-w.com/cgi-bin/Dictionary?book=Dictionary&va=<cword>"<cr><cr>
350 "map <leader>dF <esc>:silent !start firefox "http://www.m-w.com/cgi-bin/Thesaurus?book=Thesaurus&va=<cword>"<cr><cr>
351 "map <leader>dW <esc>:silent !wnb <cword> <cr><cr>
353 "for new tab setting and new align setting
354 " leader mode mapping
355 map <leader>la <esc>:call SecondLoadAlign()<cr>
356 map <leader>lt <esc>:call SecondTriggerChangeTab()<cr>
358 " remove space and enter charactor
359 map <leader>rs <esc>::%s= *$==<cr>
360 map <leader>rd <esc>:%s/\r//g<cr>
363 "MAKE IT EASY TO UPDATE/RELOAD_vimrc
364 nnoremap <leader>-s <esc>:source ~/_vimrc<cr>
365 nnoremap <leader>-v <esc>:e ~/_vimrc<cr> 
367 " trigger color style
369 "if has("gui_running")  "for gdk+ vim seting
370     map <leader>cd <esc>:call MyTriggerColor()<cr>
371 "endif
374 """""""""""""""""""""""""""""""""""""""""""""""""""""
375 " <F5>-<F8>maping for savers-pluging
376 " <F5> decrease version viewed in VersDiff window
377 " <F6> increase version viewed in VersDiff window
378 " <F7> do VersDiff with cvs version of current file
379 " <F8> cancel VersDiff window
380 nmap <silent> <F3> :VersDiff -<cr>
381 nmap <silent> <F4> :VersDiff +<cr>
382 """""""""""""""""""""""""""""""""""""""""""""""""""""
384 " for autohotkey to using:)
385 " 0=english input 1=chinese input
386 "let g:cinput = 0
387 "let g:down = 0
389 "user command maping
390 com! MM call MyMore()
391 com! MLOG call MyLog()
392 """""""""""""""""""""""""""""""""""""""""""""""""""""
394 """""""""""""""""""""""""""""""""""""""""""""""""""""
395 "Programmings abbrevs
396 """""""""""""""""""""""""""""""""""""""""""""""""""""
397 """""""""""""""""""""""""""""""""""""""""""""""""""""
398 "Informational abbrevs
399 """""""""""""""""""""""""""""""""""""""""""""""""""""
400 "iab xda <c-r>=strftime("%Y-%m-%d-%H:%M:%S")<cr>
401 iab xda <c-r>=substitute(system("date +%Y-%m-%d-%H:%M"),"\n","","")<cr>
402 iabbrev teh the
403 iabbrev otehr other
404 iabbrev wnat want
405 iabbrev synchronisation
406         \ synchronization
407 iab hte the
408 iab fro for
409 iab adn and
410 iab taht that
411 iab knwe knew
412 iab htat that
413 iab tyr try
414 iab ture true
415 """""""""""""""""""""""""""""""""""""""""""""""""""""
418 """""""""""""""""""""""""""""""""""""""""""""""""""""
419 "for no swap attation
420 "set dir=~/tmp
421 func! CheckSwap()
422         swapname
423         if v:statusmsg =~ '\.sw[^p]$'
424                 set statusline=%2*%=\ \ \ %50(%f\ @%n%*%1*[$]%*%2*[%{&ff}]%r%m%y%=\ \ \ %-14.(%l,%c\(%v\)%)\ %p%%%)%*
425                 silent call MyMore()
426         else
427         set statusline=%2*%=\ \ \ %50(%f\ @%n[%{FunFileEncoding()}]%r%m%y#%{changenr()}%=\ \ \ %-14.(%l,%c\(%v\)%)\ %p%%%)%*
428                 "set statusline=%2*%=\ \ \ %50(%f\ @%n[%{&ff}]%r%m%y%=\ \ \ %-14.(%l,%c%V%)\ %p%%%)%*
429         endif
430 endfunc
432 if &swf
433         set shm+=A
434         autocmd BufEnter * silent call CheckSwap()
435 endif 
436 """""""""""""""""""""""""""""""""""""""""""""""""""""
441 """""""""""""""""""""""""""""""""""""""""""""""""""""
442 "ViKi Mode
443 """""""""""""""""""""""""""""""""""""""""""""""""""""
444 "let g:vikiUseParentSuffix = 1
445 "let g:vikiSpecialFiles='jpg\|gif\|bmp\|pdf\|dvi\|ps\|eps\|png\|jpeg\|wmf\|otl'
446 "let g:vikiOpenFileWith_otl = 'silent !D:/prog/Natara/Bonsai/Bonsai.exe %{FILE}'
448 " we want to allow deplate to execute ruby code and external helper 
449 " application
450 "let g:deplatePrg = "deplate -x -X "
451 "au FileType viki compiler deplate
452 "let g:vikiInterOLM= $HOME ."/olm"
453 "let g:vikiInterOLM_suffix= ".olm"
454 "let g:vikiInterHW= $HOME ."/viki"
455 "let g:vikiInterHW_suffix= ".txt"
460 """""""""""""""""""""""""""""""""""""""""""""""""""""
461 " setting for mru
462 map <leader>rr :MRU<cr>gg
463 let MRU_Max_Entries = 500
464 let MRU_Exclude_Files = '^/tmp/.*\|^/var/tmp/.*|^c:\\temp\\.*'
465 let MRU_File = $VIMFILY . "/_vim_mru_files"
466 "let MRU_Auto_Close = 0  " to keep the mru window
467 """""""""""""""""""""""""""""""""""""""""""""""""""""
469 """""""""""""""""""""""""""""""""""""""""""""""""""""
470 " setting for subversion
471 nmap <leader>va <Plug>VCSAdd
472 nmap <leader>vn <Plug>VCSAnnotate
473 nmap <leader>vc <Plug>VCSCommit
474 nmap <leader>vd <Plug>VCSDiff
475 nmap <leader>ve <Plug>VCSEdit
476 nmap <leader>vi <Plug>VCSEditors
477 nmap <leader>vg <Plug>VCSGotoOriginal
478 nmap <leader>vG <Plug>VCSGotoOriginal!
479 nmap <leader>vl <Plug>VCSLog
480 nmap <leader>vr <Plug>VCSReview
481 nmap <leader>vs <Plug>VCSStatus
482 nmap <leader>vt <Plug>VCSUnedit
483 nmap <leader>vu <Plug>VCSUpdate
484 nmap <leader>vv <Plug>VCSVimDiff
485 nmap <leader>vwv <Plug>VCSWatchers
486 nmap <leader>vwa <Plug>VCSWatchAdd
487 nmap <leader>vwn <Plug>VCSWatchOn
488 nmap <leader>vwf <Plug>VCSWatchOff
489 nmap <leader>vwf <Plug>VCSWatchRemove
490 """""""""""""""""""""""""""""""""""""""""""""""""""""
493 """""""""""""""""""""""""""""""""""""""""""""""""""""
494 "Autocommands
495 """""""""""""""""""""""""""""""""""""""""""""""""""""
496 "autocmd BufEnter * :syntax sync fromstart " ensure every file does syntax highlighting (full)
497 "autocmd BufEnter * :lcd %:p:h " switch to current dir
498 "autocmd GUIEnter * :simalt ~x " maximize the screen
500 augroup filetypedetect 
501         """""""""""""""""""""""""""""""""""""""""""""""""""""
502         "for help and readbale file mode 
503         augroup! filetypedetect 
504         autocmd FileType help call MyMore()
505         """""""""""""""""""""""""""""""""""""""""""""""""""""
507         """""""""""""""""""""""""""""""""""""""""""""""""""""
508         "for the make error windows quickfix windows
509         au BufReadPost quickfix set modifiable
510         au BufReadPost quickfix  silent g/^/s//\=line(".")." "/
511         autocmd FileType qf call MyMore()
512         """""""""""""""""""""""""""""""""""""""""""""""""""""
514         """""""""""""""""""""""""""""""""""""""""""""""""""""
515         "template mode
516         """""""""""""""""""""""""""""""""""""""""""""""""""""
517         "autocmd BufNewFile *.sh                0r ~/vimtemplate/skeleton.sh
518         "autocmd BufNewFile *.vim               0r $HOME/vimfiles/skel/vim.skel
519         autocmd BufNewFile,BufReadPre *.java,*.vim,*.sh,*.html,*.xhtml,*.py             source $ADDED/skel.vim
520         "autocmd BufNewFile *.java              0r $VIMFILY/skel/java.skel
521         "autocmd BufNewFile *.vim               0r $VIMFILY/skel/vim.skel
522         "autocmd BufNewFile *.sh                0r $VIMFILY/skel/sh.skel
523         "autocmd BufNewFile *.html              0r $VIMFILY/skel/html.skel
524         "autocmd BufNewFile *.xhtml     0r $VIMFILY/skel/xhtml.skel
525         "autocmd BufNewFile *.java,*.vim,*.sh,*.html,*.xhtml            call Replacy()
526         """""""""""""""""""""""""""""""""""""""""""""""""""""
527         """""""""""""""""""""""""""""""""""""""""""""""""""""
528         "anti word
529         "au BufReadPre *.doc set ro
530         "au BufReadPre *.doc set hlsearch!
531         "au BufReadPost *.doc silent %!antiword "%"
532         "autocmd BufReadPost *.doc silent %!wvware "%"
533         """""""""""""""""""""""""""""""""""""""""""""""""""""
534         "au BufNewFile,BufRead /home/Administrator/std-java/new1.5/* let g:bnojikes=1
536         autocmd BufWritePre,FileWritePre *.vim,_vimrc  ks|call LastMod()|'s
537         autocmd BufWritePre,FileWritePre *.jsp,*.html  ks|call LastMod2()|'s
539         autocmd BufNewFile,BufreadPre *.text,*.wiki call TextMode()
540         "autocmd BufNewFile,BufreadPre *.rst call RstMode()
541         autocmd FileType vim setlocal complete=.,k~/dic/vimdiction,w,b,u,i
543         autocmd fileType ahk source $ADDED/bracket.vim
545 augroup end
546 """""""""""""""""""""""""""""""""""""""""""""""""""""
547 "CTags
548 """""""""""""""""""""""""""""""""""""""""""""""""""""
549 nnoremap <silent> <F8> :Tlist<cr>
550 let Tlist_Show_One_File = 1            " just show tag of current files
551 let Tlist_Exit_OnlyWindow = 1          " if taglist window iis the last one then exit vim
552 let Tlist_File_Fold_Auto_Close=1       " auto fold not editing function list
553 let Tlist_Sort_Type = "name" " order by
554 let Tlist_Use_Right_Window = 1 " split to the right side of the screen
555 let tlist_dosini_settings= 'ini;r:respect'
556 let tlist_html_settings = 'html;a:anchor;f:javascript function;u:url'
557 let tlist_vb_settings= 'vb;t:type;s:sub;f:function'
558 let tlist_ant_settings = 'ant;p:Project;r:Property;t:Target'
559 let JavaBrowser_Use_SingleClick = 0
560 let JavaBrowser_Use_Right_Window = 1
561 let JavaBrowser_Use_Icon = 0
562 let JavaBrowser_Compact_Format = 1
563 let JavaBrowser_Expand_Tree_At_Startup = 1
567 """""""""""""""""""""""""""""""""""""""""""""""""""""
568 "JavaImp
569 """""""""""""""""""""""""""""""""""""""""""""""""""""
570 let g:JavaImpPaths = $JAVALIB."/j2sdk1.5_src,".$JAVALIB."junit_src,".$VIMFILY."/JavaImp/jmplst"
571 let g:JavaImpDataDir = $VIMFILY."/JavaImp"
572 let g:JavaImpDocPaths= $JAVA_DOCPATH
573 let g:JavaImpDocViewer = "viewHtml"
577 """""""""""""""""""""""""""""""""""""""""""""""""""""
578 "favex mod
579 """""""""""""""""""""""""""""""""""""""""""""""""""""
580 let g:favex_ff='<leader>fa'
581 let g:favex_fd='<leader>fA'
582 """""""""""""""""""""""""""""""""""""""""""""""""""""
584 """""""""""""""""""""""""""""""""""""""""""""""""""""
585 """""""""""""""""""""""""""""""""""""""""""""""""""""
586 "vcscommand mod
587 augroup VCSCommand
588   au VCSCommand User VCSBufferCreated silent! nmap <unique> <buffer> q          :bwipeout<cr>
589 augroup END
590 "let g:VCSCommandEdit= 'spilt'
592 """""""""""""""""""""""""""""""""""""""""""""""""""""
594 """""""""""""""""""""""""""""""""""""""""""""""""""""
595 "Buffer Explorer
596 """""""""""""""""""""""""""""""""""""""""""""""""""""
597 "let g:bufExplorerDetailedHelp=1
598 let g:netrw_keepdir=0
599 let g:netrw_cygwin= 1
600 let g:netrw_longlist=1
601 let g:netrw_sort_by="time"
602 let g:netrw_sort_direction="reverse"
603 let g:netrw_timefmt="   %Y %m %d\t%H:%M"
604 let g:netrw_winsize=25
606 """""""""""""""""""""""""""""""""""""""""""""""""""""
607 "Buffer Select
608 """""""""""""""""""""""""""""""""""""""""""""""""""""
609 "nmap <silent> <unique> <leader>be <Plug>SelectBuf
610 "nmap <unique> <leader>bl <Plug>SelBufLaunchCmd
611 "let selBufAlwaysShowHidden=0
612 "let selBufIgnoreNonFileBufs=0
614 "Buffer Line
615 "nmap <Leader>tv :call TabLineSet_verbose_toggle()<CR>
616 "nmap <Leader>tr :call TabLineSet_verbose_rotate()<CR>
617 "nmap <silent> <Leader>w :call WinWalkerMenu()<CR>
623 "Highlight space at end of line as error
624 "highlight WhitespaceEOL ctermbg=darkred guibg=darkred
625 "match WhitespaceEOL /\s\+$/
630 "not use now
631 "set diffexpr=MyDiff()
632 "function MyDiff()
633 "  let opt = '-a --binary '
634 "  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
635 "  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
636 "  let arg1 = v:fname_in
637 "  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
638 "  let arg2 = v:fname_new
639 "  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
640 "  let arg3 = v:fname_out
641 "  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
642 "  silent execute '!e:\prog\Vim\vim63\diff ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
643 "endfunction
646 function! MyTabLabel(n)
647         let buflist = tabpagebuflist(a:n)
648         let winnr = tabpagewinnr(a:n)
649         return bufname(buflist[winnr - 1])
650 endfunction
652 function! MyTabLine()
653         let s = ''
654         for i in range(tabpagenr('$'))
655                 " select the highlighting
656                 if i + 1 == tabpagenr()
657                   let s .= '%#TabLineSel#'
658                 else
659                   let s .= '%#TabLine#'
660                 endif
662                 " set the tab page number (for mouse clicks)
663                 let s .= '%' . (i + 1) . 'T'
665                 " the label is made by MyTabLabel()
666                 let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
667         endfor
669         " after the last tab fill with TabLineFill and reset tab page nr
670         let s .= '%#TabLineFill#%T'
672         " right-align the label to close the current tab page
673         if tabpagenr('$') > 1
674                 let s .= '%=%#TabLine#%999Xclose'
675         endif
677         return s
678 endfunction
680 function! GuiTabLabel()
681         let label = ''
682         "let bufnrlist = tabpagebuflist(v:lnum)
684         " Add '+' if one of the buffers in the tab page is modified
685         "for bufnr in bufnrlist
686                 "if getbufvar(bufnr, "&modified")
687                         "let label = '+'
688                         "break
689                 "endif
690         "endfor
692         " Append the number of windows in the tab page if more than one
693         "let wincount = tabpagewinnr(v:lnum, '$')
694         "if wincount > 1
695                 "let label .= wincount
696         "endif
697         if v:lnum == g:currentPage
698                 let label .= ">>"
699         endif
700         return label
702         " Append the buffer name
703 endfunction
705 function! GuiTabLabel2()
706         let label = ''
707         let bufnrlist = tabpagebuflist(v:lnum)
709         " Add '+' if one of the buffers in the tab page is modified
710         "for bufnr in bufnrlist
711                 "if getbufvar(bufnr, "&modified")
712                         "let label = '+'
713                         "break
714                 "endif
715         "endfor
717         " Append the number of windows in the tab page if more than one
718         if v:lnum == g:currentPage
719                 let label .= "<<"
720         endif
721         let wincount = tabpagewinnr(v:lnum, '$')
722         if wincount > 1
723                 let label .= wincount
724         endif
725         return label
726 endfunction
728 let g:currentPage=1
729 function! GuiTabLabelEnter()
730         let g:currentPage=tabpagenr()
731         set guitablabel=%{GuiTabLabel()}%N\ %t\ %{GuiTabLabel2()}
732 endfunction
734 function! GuiTabLabelLeave()
735 endfunction
737 "       the tab setting and mapping
739 "set guitablabel=%N\ %f
740 "set guitablabel=%{GuiTabLabel()}
742 "set guitablabel=%N/\ %t\ %M
743 set tabline=%!MyTabLine()
744 let g:toggleTabs = 0
745 map <silent><F12> :if g:toggleTabs == 1<CR>:tabo<CR>:set lines+=3<CR>:let g:toggleTabs = 0<CR>:else<CR>:set lines-=3<CR>:tab ball<CR>:let g:toggleTabs = 1<CR>:endif<CR>
746 map <silent><C-tab> :if g:toggleTabs == 1<CR>:tabnext<CR>:else<CR>:bn<CR>:endif<CR>
747 map <silent><C-S-tab> :if g:toggleTabs == 1<CR>:tabprevious<CR>:else<CR>:bp<CR>:endif<CR> 
749 map <leader>tt <esc>:tabnew<cr>:let g:toggleTabs=1<cr>
750 map <leader>tx :tabclose<cr>:if tabpagenr("$") == 1<cr>let g:toggleTabs=0<cr>:endif<cr><cr>
751 map <leader>tm :tabmove 
752 map <leader>tn :tabnext <cr>
753 map <leader>tp :tabprevious <cr>
754 "map <C-Tab> :tabn <CR>
755 "map <C-S-Tab> :tabp <CR> 
757 "autocmd TabLeave 
758 autocmd TabEnter * call GuiTabLabelEnter()
762 if has("gui_running")
763     function! InfoGuiTooltip()
764         "get window count
765         let wincount = tabpagewinnr(tabpagenr(),'$')
766         let bufferlist=''
767         "get name of active buffers in windows
768         for i in tabpagebuflist()
769             let bufferlist .= '['.fnamemodify(bufname(i),':t')."]"
770         endfor
771         return bufname($).'-'.bufferlist
772     endfunction
773     set guitabtooltip=%!InfoGuiTooltip()
776     function! FoldSpellBalloon()
777         let foldStart = foldclosed(v:beval_lnum )
778         let foldEnd = foldclosedend(v:beval_lnum)
779         let lines = []
780         " Detect if we are in a fold
781         if foldStart < 0
782             " Detect if we are on a misspelled word
783             let lines = spellsuggest( spellbadword(v:beval_text)[ 0 ], 5, 0 )
784         else
785             " we are in a fold
786             let numLines = foldEnd - foldStart + 1
787             " if we have too many lines in fold, show only the first 14
788             " and the last 14 lines
789             if ( numLines > 31 )
790                 let lines = getline( foldStart, foldStart + 14 )
791                 let lines += [ '-- Snipped ' . ( numLines - 30 ) . ' lines --' ]
792                 let lines += getline( foldEnd - 14, foldEnd )
793             else
794                 "less than 30 lines, lets show all of them
795                 let lines = getline( foldStart, foldEnd )
796             endif
797         endif
798         " return result
799         return join( lines, has( "balloon_multiline" ) ? "\n" : " " )
800     endfunction
801     set balloonexpr=FoldSpellBalloon()
802     set ballooneval
803     
805 endif
806     
807 "for vim im
808 let g:vimim_chinese_punctuation=0
810 "for js lint
811 let jslint_highlight_color = 'yellow'
814 " for cscope
815 if has("mac")
816     set csprg=/usr/local/bin/cscope
817 elseif has("unix")
818     set csprg=/usr/local/bin/cscope
819     "set csprg=/usr/bin/mlcscope
820 else
821     set csprg=%CYGWIN_HOME%\bin\\mlcscope.exe
822 endif
824 " for clipbord conflict with NERD
825 nmap <unique> <silent> <Leader>co <Plug>ClipBrdOpen
827 " add my highlight setting
828 call MyColorSetting()
830 " for pathogen vim runtime path manager
831 call pathogen#infect()
833 " for snipmate
835 " for zencoding
836 "let g:user_zen_leader_key = "<c-\=>"
838 " for the missing pop up complete frame conflic with enter key
839 inoremap <expr><Enter> pumvisible() ? "\<C-Y>" : "\<Enter>"