add some comment
[hombase.git] / _vimrc
blob1bf36c8b81af572fb0a960bc4d260cdfd229d969
1 "@author:               Lifan
2 "@Modified:             
5 "set nocompatible       "because this is defined in vimrc_example.vim
7 "source $VIMRUNTIME/vimrc_example.vim
8 set fileformats=unix,dos
9 set fencs=ucs-bom,utf-8,gb2312,gbk,gb18030,latin1
10 "set fencs=ucs-bom,chinese,taiwan,japan,korea,utf-8,latin1
11 let mapleader = ","
13 if has("unix")
14         if has("gui_running")  "for gdk+ vim seting
15                 "set langmenu=none
16                 "language en_US
17                 "set enc=gb2312
18                 "source $VIMRUNTIME/delmenu.vim
19                 "source $VIMRUNTIME/menu.vim
20                 "set imactivatekey=C-space
21                 "set iminsert=0
22                 "set ims=0
23                 "inoremap <esc> <esc>:set iminsert=2<cr>
24                 "noremap i      :set iminsert=2<cr>i
25                 "noremap a :set iminsert=2<cr>a
26                 "set ims=0
27                 "set imc!
28                 
29                 " CTRL-A is Select all
30                 noremap <C-A> gggH<C-O>G
31                 inoremap <C-A> <C-O>gg<C-O>gH<C-O>G
32                 cnoremap <C-A> <C-C>gggH<C-O>G
33                 onoremap <C-A> <C-C>gggH<C-O>G
34                 snoremap <C-A> <C-C>gggH<C-O>G
35                 xnoremap <C-A> <C-C>ggVG
37                 " CTRL-V and SHIFT-Insert are Paste
38                 imap <C-V> <C-r>* 
39                 map <C-V>               "*gP
40                 map <S-Insert>          "*gP
41                 cmap <C-V>              <C-R>*
42                 cmap <S-Insert>         <C-R>*
43         else            "for bash vim setting
44                 set noshowcmd
45                 colorscheme desert
46                 "syntax off
47         endif
48         "let $VIMFILY='~/.vim'
49         let $VIMFILY=expand("$HOME") . '/.vim'
50         "set rtp^=~/vimfiles
51         "source ~/vimfiles/filetype.vim
52 else            "for win32 setting
53         if has("gui_running")
54                 "source $VIMRUNTIME/mswin.vim
55                 "set guioptions+=a      "auto copy to 
56                 "understand this
57                 set grepprg=grep\ -n\ $*\ /dev/null
58                 set grepformat=%f:%l:%m,%f:%l%m,%f\     %l%m
59                 cabbrev sort /bin/sort
60         else
61                 set noshowcmd
62         endif
63         let $VIMFILY=expand("$HOME") . '/vimfiles'
64 endif
66 let $ADDED=$VIMFILY . '/added_plugin'
68 source $ADDED/my_vimrc_example.vim
69 if !has("unix") && has("gui_running")
70     source $ADDED/my_mswin.vim
71 endif
73 source $ADDED/publib.vim
75 "for latex suit now
76 let $ADDED2=$VIM . '/vimfiles/added_plugin2'
78 "for new tab setting and new align setting
79 " leader mode mapping
80 map <leader>la <esc>:call SecondLoadAlign()<cr>
81 map <leader>lt <esc>:call SecondTriggerChangeTab()<cr>
83 " remove space and enter charactor
84 map <leader>rs <esc>::%s= *$==<cr>
85 map <leader>rd <esc>:%s/\r//g<cr>
88 "add this by lifan
89 """"""""""""""""""""""""""""""""""""""""""""""""""""""
90 "General
91 """""""""""""""""""""""""""""""""""""""""""""""""""""
92 set helplang=cn
93 set hh=999      "set the help windows defaul height to max
94 set linebreak   "let english word break whole word
95 set showmatch
96 set mat=3
97 set history=500000
98 set viminfo='100,<1500,s500,:500,/300
99 set nohlsearch
100 set incsearch
101 set timeoutlen=1500
102 set hid         "let you can change buffer without save
103 set ignorecase
104 "turn off ignorecase in a typed search if an uppercase char exists.
105 set smartcase
106 call CodeMode()         "most time are coding:)
107 set noerrorbells
108 set visualbell t_vb=
109 set cmdheight=1
110 set guioptions-=T       "hide the toolbar
111 set guioptions-=m       "hide the menubar
112 "set guioptions+=c      "use text dialog
113 set laststatus=2
114 set noruler
115 set shortmess=at
116 "set rulerformat=%50(\ %n[%{&ff}]%r%m%y%=%-14.(%l,%c%V%)\ %p%%%)
117 "set statusline=%<%f %n[%{&ff}]%r%m%y%=%-14.(%l,%c%V%)\ %p%%
118 hi User1 term=standout,bold cterm=reverse ctermbg=red gui=bold guifg=red guibg=Grey
119 hi User2 term=standout,bold cterm=reverse gui=bold guibg=Grey
122 """""""""""""""""""""""""""""""""""""""""""""""""""""""
123 "function for return the file format and file encoding
124 "from http://msghost.iyublog.com/?cat=477
125 function! FunFileEncoding()
126 return &ff . ":" . &fenc
127 endfunction
128 """"""""""""""""""""""""""""""""""""""""""""""""""
130 set statusline=%2*%=\ \ \ %50(%f\ @%n[%{FunFileEncoding()}]%r%m%y#%{changenr()}%=\ \ \ %-14.(%l,%c\(%v\)%)\ %p%%%)%*
131 set report=0
132 set listchars=eol:<
133 set listchars+=tab:>-
134 set wildmenu                    "ÓÃtabÔÚÃüÁîÐÐÌáʾ
135 "set clipboard+=unnamed "ÊÇy ºÍ p Í¬ÏµÍ³¼ôÇаåÏàÁ¬
136 set clipboard+=autoselect
137 "set splitbelow                 "splitting a window below the current one
138 """""""""""""""""""""""""""""""""""""""""""""""""""""
139 "Files/Backups
140 """""""""""""""""""""""""""""""""""""""""""""""""""""
141 set autowrite
142 if has("unix")
143     set backupdir=/var/backups/vi
144 else
145     set backupdir=e:/var/backups/vi
146 endif
147 "set sessionoptions+=curdir
148 set browsedir=buffer
149 set backupskip+=*.clean,cvscommit.????,*.~
150 set wildignore=*.o,*.obj,*.exe,*.bak,*.clean
151 if has("gui_running")
152         let savevers_dirs = &backupdir
153         let savevers_max = 9
154         source $ADDED/savevers.vim
155         set backup
156         set patchmode=.clean
157         set backupcopy=yes
158 endif
159 "change the direct when chang the buffer
160 au   BufEnter *   :lcd %:p:h
161 set makeef=error.err
162 set title
163 set titlelen=80
164 set titlestring=%<%F\ %M\ %R\ %{v:servername}\ %{mode()}\ e\ U
166 """""""""""""""""""""""""""""""""""""""""""""""""""""
168 "Vim GUI
169 """"""""""""""""""""""""""""""""""""""""""""""""""""""
170 """""""""""""""""""""""""""""""""""""""""""""""""""""
171 " Text Formatting/Layout
172 """""""""""""""""""""""""""""""""""""""""""""""""""""
173 "set fo=tcrqn
174 """""""""""""""""""""""""""""""""""""""""""""""""""""
175 "Folding
176 """""""""""""""""""""""""""""""""""""""""""""""""""""
177 set foldenable " Turn on folding
178 "set foldmethod=indent " Make folding indent sensitive
179 set foldlevel=100 " Don't autofold anything (but I can still fold manually)
180 "set foldopen-=search " don't open folds when you search into them
181 set foldopen-=undo 
182 "set foldcolumn=8
183 "set foldmethod=syntax
184 let g:xml_syntax_folding = 1
185 let xml_use_xhtml = 1
190 """""""""""""""""""""""""""""""""""""""""""""""""""""
191 "Mappings
192 """""""""""""""""""""""""""""""""""""""""""""""""""""
193 "nomre mode maping
194 "nnoremap <C-i> i <esc>r
195 nnoremap j gj
196 nnoremap k gk
197 nnoremap ' `
199 "for caculator ++
200 nnoremap <C-c> <C-A>
202 "for del the auto comment
203 noremap <m-cr> o<esc>^"8d$a
205 "for eclipse compatible 
206 inoremap <m-/> <c-x><c-o>
208 "for good insert next line
209 "noremap <C-i> ddO
210 noremap <m-i> :let g:currentline=line('.')<cr>:.d<cr>:if g:currentline==line('.')<cr>:normal -<cr>:endif<cr>o
212 "use <c-v> to mapping the block visual mode do not using the win32 paste
213 nnoremap <c-v> <c-v>
215 "nnoremap <silent> <cr> i<cr><esc>
218 "insert mode maping
219 "use <C-t> old using is to shift right and now chang to <C-e>
220 inoremap <C-t> <space><esc>d$a
221 "use <C-e> old using is to inster the character which is below the cursor
222 inoremap <C-e> <C-t>
223 inoremap <m-cr> <cr><esc>^d$a
225 " reproduce previous line word by word
226 inoremap <C-j>  @@@<ESC>hhkyWjl?@@@<CR>P/@@@<CR>3s
228 "visual mode maping
229 "   Put string marked by visual mode as default for search commands / and ?
230 "   Warning: extending the marked text by searching doesn't work any more.
231 vnoremap / y/<C-R>=escape(substitute(@","\n.*",'',''),'/\?*.$^~][')<cr>
232 vnoremap ? y?<C-R>=escape(substitute(@","\n.*",'',''),'/\?*.$^~][')<cr>
233 "   Explanation:
234 " substitute(@",..) - remove lines after first, if >1 line highlighted
235 " escape(..)        - put '\' before all characters meaningful in regexp's
236 " y                 - yank current selection (in register ")
237 " ctrl-r = .. <cr>  - put expression after / as earch string
238 " credits go to Stefan Roemer and Peppe (Preben Guldberg).
240 "   Remove whitespace from lines containing nothing else (grr to all nedit users)
242 "for the mouse conflict key(c-insert) of HP notebook
243 noremap <Insert> <Esc>
244 noremap <C-Insert> <Esc>
245 inoremap <Insert> <Down>
246 inoremap <C-Insert> <Down>
248 "leader mode mapping
250 "map <leader>s <Esc>:w<cr><Esc>:!aspell -c --dont-backup --lang=en_US "%:p"<cr>:e! "%"<cr><cr>
251 map <leader>ls <esc>:ls!<cr>
252 map <leader>ew <esc>:call MyWrap()<cr>
253 map <leader>ex <esc>:Ex<cr>
254 "map <leader>eb <esc>:set encoding=big5<cr>
255 map <leader>ec <esc>:call MyCoding()<cr>
256 "map <leader>eu <esc>:set encoding=utf-8<cr>
257 map <leader>el <esc>:set list!<cr>
258 map <leader>es <esc>:set hlsearch!<cr>
259 map <leader>em <esc>:call MyMenu()<cr>
260 map <leader>en <esc>:set nu!<cr>:set cursorline!<cr>
261 "map <leader>df <esc>:silent !start firefox "http://www.m-w.com/cgi-bin/Dictionary?book=Dictionary&va=<cword>"<cr><cr>
262 "map <leader>dF <esc>:silent !start firefox "http://www.m-w.com/cgi-bin/Thesaurus?book=Thesaurus&va=<cword>"<cr><cr>
263 "map <leader>dW <esc>:silent !wnb <cword> <cr><cr>
264 "map <leader>dz <esc>:!start firefox.exe <cWORD><cr><cr>
265 map <leader>dz <esc>:call MyUrl(expand('<cWORD>'))<cr>
266 map <leader>dw <esc>:call MyWebs(expand('<cword>'))<cr>1<cr>-
267 nnoremap <leader>dd <esc>:call MyTriggerMore()<cr>
268 nnoremap <leader>fd :set fileformat=dos<cr>
269 nnoremap <leader>fu :set fileformat=unix<cr>
270 map <leader>bp <esc>:bp<return>
271 map <leader>bn <esc>:bn<return>
272 map <leader>yy <esc>^"*y$
273 map <leader>sn <esc>:%s//&/gn<cr>
274 map <leader>m <esc>:silent MarksBrowser<cr>
276 "MAKE IT EASY TO UPDATE/RELOAD_vimrc
277 nnoremap <leader>-s <esc>:source ~/_vimrc<cr>
278 nnoremap <leader>-v <esc>:e ~/_vimrc<cr> 
280 """""""""""""""""""""""""""""""""""""""""""""""""""""
281 " <F5>-<F8>maping for savers-pluging
282 " <F5> decrease version viewed in VersDiff window
283 " <F6> increase version viewed in VersDiff window
284 " <F7> do VersDiff with cvs version of current file
285 " <F8> cancel VersDiff window
286 nmap <silent> <F3> :VersDiff -<cr>
287 nmap <silent> <F4> :VersDiff +<cr>
288 """""""""""""""""""""""""""""""""""""""""""""""""""""
290 " for autohotkey to using:)
291 " 0=english input 1=chinese input
292 let g:cinput = 0
293 let g:down = 0
295 "user command maping
296 com! MM call MyMore()
297 """""""""""""""""""""""""""""""""""""""""""""""""""""
299 """""""""""""""""""""""""""""""""""""""""""""""""""""
300 "Programmings abbrevs
301 """""""""""""""""""""""""""""""""""""""""""""""""""""
302 """""""""""""""""""""""""""""""""""""""""""""""""""""
303 "Informational abbrevs
304 """""""""""""""""""""""""""""""""""""""""""""""""""""
305 "iab xda <c-r>=strftime("%Y-%m-%d-%H:%M:%S")<cr>
306 iab xda <c-r>=substitute(system("date +%Y-%m-%d-%H:%M"),"\n","","")<cr>
307 iabbrev teh the
308 iabbrev otehr other
309 iabbrev wnat want
310 iabbrev synchronisation
311         \ synchronization
312 iab hte the
313 iab fro for
314 iab adn and
315 iab taht that
316 iab knwe knew
317 iab htat that
318 iab tyr try
319 iab ture true
320 """""""""""""""""""""""""""""""""""""""""""""""""""""
323 """""""""""""""""""""""""""""""""""""""""""""""""""""
324 "for no swap attation
325 "set dir=~/tmp
326 func! CheckSwap()
327         swapname
328         if v:statusmsg =~ '\.sw[^p]$'
329                 set statusline=%2*%=\ \ \ %50(%f\ @%n%*%1*[$]%*%2*[%{&ff}]%r%m%y%=\ \ \ %-14.(%l,%c\(%v\)%)\ %p%%%)%*
330                 silent call MyMore()
331         else
332         set statusline=%2*%=\ \ \ %50(%f\ @%n[%{FunFileEncoding()}]%r%m%y#%{changenr()}%=\ \ \ %-14.(%l,%c\(%v\)%)\ %p%%%)%*
333                 "set statusline=%2*%=\ \ \ %50(%f\ @%n[%{&ff}]%r%m%y%=\ \ \ %-14.(%l,%c%V%)\ %p%%%)%*
334         endif
335 endfunc
337 if &swf
338         set shm+=A
339         autocmd BufEnter * silent call CheckSwap()
340 endif 
341 """""""""""""""""""""""""""""""""""""""""""""""""""""
346 """""""""""""""""""""""""""""""""""""""""""""""""""""
347 "ViKi Mode
348 """""""""""""""""""""""""""""""""""""""""""""""""""""
349 "let g:vikiUseParentSuffix = 1
350 "let g:vikiSpecialFiles='jpg\|gif\|bmp\|pdf\|dvi\|ps\|eps\|png\|jpeg\|wmf\|otl'
351 "let g:vikiOpenFileWith_otl = 'silent !D:/prog/Natara/Bonsai/Bonsai.exe %{FILE}'
353 " we want to allow deplate to execute ruby code and external helper 
354 " application
355 "let g:deplatePrg = "deplate -x -X "
356 "au FileType viki compiler deplate
357 "let g:vikiInterOLM= $HOME ."/olm"
358 "let g:vikiInterOLM_suffix= ".olm"
359 "let g:vikiInterHW= $HOME ."/viki"
360 "let g:vikiInterHW_suffix= ".txt"
365 """""""""""""""""""""""""""""""""""""""""""""""""""""
366 " setting for mru
367 map <leader>rr :MRU<cr>gg
368 let MRU_Max_Entries = 500
369 let MRU_Exclude_Files = '^/tmp/.*\|^/var/tmp/.*|^c:\\temp\\.*'
370 let MRU_File = $VIMFILY . "/_vim_mru_files"
371 "let MRU_Auto_Close = 0  " to keep the mru window
372 """""""""""""""""""""""""""""""""""""""""""""""""""""
374 """""""""""""""""""""""""""""""""""""""""""""""""""""
375 " setting for subversion
376 nmap <leader>va <Plug>VCSAdd
377 nmap <leader>vn <Plug>VCSAnnotate
378 nmap <leader>vc <Plug>VCSCommit
379 nmap <leader>vd <Plug>VCSDiff
380 nmap <leader>ve <Plug>VCSEdit
381 nmap <leader>vi <Plug>VCSEditors
382 nmap <leader>vg <Plug>VCSGotoOriginal
383 nmap <leader>vG <Plug>VCSGotoOriginal!
384 nmap <leader>vl <Plug>VCSLog
385 nmap <leader>vr <Plug>VCSReview
386 nmap <leader>vs <Plug>VCSStatus
387 nmap <leader>vt <Plug>VCSUnedit
388 nmap <leader>vu <Plug>VCSUpdate
389 nmap <leader>vv <Plug>VCSVimDiff
390 nmap <leader>vwv <Plug>VCSWatchers
391 nmap <leader>vwa <Plug>VCSWatchAdd
392 nmap <leader>vwn <Plug>VCSWatchOn
393 nmap <leader>vwf <Plug>VCSWatchOff
394 nmap <leader>vwf <Plug>VCSWatchRemove
395 """""""""""""""""""""""""""""""""""""""""""""""""""""
397 """""""""""""""""""""""""""""""""""""""""""""""""""""
398 " setting for crefre
399 if !hasmapto('<Plug>CRV_CRefVimVisual')
400         vmap <silent> <unique> <Leader>Cr <Plug>CRV_CRefVimVisual
401         nmap <silent> <unique> <Leader>Cr <Plug>CRV_CRefVimNormal
402         map <silent> <unique> <Leader>Cw <Plug>CRV_CRefVimAsk
403         map <silent> <unique> <Leader>Cc <Plug>CRV_CRefVimInvoke
404 endif
405 """""""""""""""""""""""""""""""""""""""""""""""""""""
408 """""""""""""""""""""""""""""""""""""""""""""""""""""
409 "aspell setting
410 "ca  xsp write !aspell -a --lang="en_US"<cr>
411 """""""""""""""""""""""""""""""""""""""""""""""""""""
414 """""""""""""""""""""""""""""""""""""""""""""""""""""
415 "Autocommands
416 """""""""""""""""""""""""""""""""""""""""""""""""""""
417 "autocmd BufEnter * :syntax sync fromstart " ensure every file does syntax highlighting (full)
418 "autocmd BufEnter * :lcd %:p:h " switch to current dir
419 "autocmd GUIEnter * :simalt ~x " maximize the screen
421 augroup filetypedetect 
422         """""""""""""""""""""""""""""""""""""""""""""""""""""
423         "for help and readbale file mode 
424         augroup! filetypedetect 
425         autocmd FileType help call MyMore()
426         """""""""""""""""""""""""""""""""""""""""""""""""""""
428         """""""""""""""""""""""""""""""""""""""""""""""""""""
429         "for the make error windows quickfix windows
430         au BufReadPost quickfix set modifiable
431         au BufReadPost quickfix  silent g/^/s//\=line(".")." "/
432         autocmd FileType qf call MyMore()
433         """""""""""""""""""""""""""""""""""""""""""""""""""""
435         """""""""""""""""""""""""""""""""""""""""""""""""""""
436         "template mode
437         """""""""""""""""""""""""""""""""""""""""""""""""""""
438         "autocmd BufNewFile *.sh                0r ~/vimtemplate/skeleton.sh
439         "autocmd BufNewFile *.vim               0r $HOME/vimfiles/skel/vim.skel
440         autocmd BufNewFile,BufReadPre *.java,*.vim,*.sh,*.html,*.xhtml,*.py             source $ADDED/skel.vim
441         "autocmd BufNewFile *.java              0r $VIMFILY/skel/java.skel
442         "autocmd BufNewFile *.vim               0r $VIMFILY/skel/vim.skel
443         "autocmd BufNewFile *.sh                0r $VIMFILY/skel/sh.skel
444         "autocmd BufNewFile *.html              0r $VIMFILY/skel/html.skel
445         "autocmd BufNewFile *.xhtml     0r $VIMFILY/skel/xhtml.skel
446         "autocmd BufNewFile *.java,*.vim,*.sh,*.html,*.xhtml            call Replacy()
447         """""""""""""""""""""""""""""""""""""""""""""""""""""
448         """""""""""""""""""""""""""""""""""""""""""""""""""""
449         "anti word
450         "au BufReadPre *.doc set ro
451         "au BufReadPre *.doc set hlsearch!
452         "au BufReadPost *.doc silent %!antiword "%"
453         "autocmd BufReadPost *.doc silent %!wvware "%"
454         """""""""""""""""""""""""""""""""""""""""""""""""""""
455         "au BufNewFile,BufRead /home/Administrator/std-java/new1.5/* let g:bnojikes=1
457         autocmd BufWritePre,FileWritePre *.vim  ks|call LastMod()|'s
458         autocmd BufWritePre,FileWritePre *.jsp,*.html  ks|call LastMod2()|'s
460         autocmd BufNewFile,BufreadPre *.text,*.wiki call TextMode()
461         "autocmd BufNewFile,BufreadPre *.rst call RstMode()
462         autocmd FileType vim setlocal complete=.,k~/dic/vimdiction,w,b,u,i
464         autocmd fileType ahk source $ADDED/bracket.vim
466 augroup end
467 """""""""""""""""""""""""""""""""""""""""""""""""""""
468 "CTags
469 """""""""""""""""""""""""""""""""""""""""""""""""""""
470 nnoremap <silent> <F8> :Tlist<cr>
471 let Tlist_Sort_Type = "name" " order by
472 let Tlist_Use_Right_Window = 1 " split to the right side of the screen
473 let tlist_dosini_settings= 'ini;r:respect'
474 let tlist_html_settings = 'html;a:anchor;f:javascript function;u:url'
475 let tlist_vb_settings= 'vb;t:type;s:sub;f:function'
476 let tlist_ant_settings = 'ant;p:Project;r:Property;t:Target'
477 let JavaBrowser_Use_SingleClick = 0
478 let JavaBrowser_Use_Right_Window = 1
479 let JavaBrowser_Use_Icon = 0
480 let JavaBrowser_Compact_Format = 1
481 let JavaBrowser_Expand_Tree_At_Startup = 1
484 """""""""""""""""""""""""""""""""""""""""""""""""""""
485 "JavaImp
486 """""""""""""""""""""""""""""""""""""""""""""""""""""
487 let g:JavaImpPaths = $JAVALIB."/j2sdk1.5_src,".$JAVALIB."junit_src,".$VIMFILY."/JavaImp/jmplst"
488 let g:JavaImpDataDir = $VIMFILY."/JavaImp"
489 let g:JavaImpDocPaths= $JAVA_DOCPATH
490 let g:JavaImpDocViewer = "viewHtml"
494 """""""""""""""""""""""""""""""""""""""""""""""""""""
495 "favex mod
496 """""""""""""""""""""""""""""""""""""""""""""""""""""
497 let g:favex_ff='<leader>fa'
498 let g:favex_fd='<leader>fA'
499 """""""""""""""""""""""""""""""""""""""""""""""""""""
501 """""""""""""""""""""""""""""""""""""""""""""""""""""
502 """""""""""""""""""""""""""""""""""""""""""""""""""""
503 "vcscommand mod
504 augroup VCSCommand
505   au VCSCommand User VCSBufferCreated silent! nmap <unique> <buffer> q          :bwipeout<cr>
506 augroup END
507 "let g:VCSCommandEdit= 'spilt'
509 """""""""""""""""""""""""""""""""""""""""""""""""""""
511 """""""""""""""""""""""""""""""""""""""""""""""""""""
512 "Buffer Explorer
513 """""""""""""""""""""""""""""""""""""""""""""""""""""
514 "let g:bufExplorerDetailedHelp=1
515 let g:netrw_keepdir=0
516 let g:netrw_cygwin= 1
517 let g:netrw_longlist=1
518 let g:netrw_sort_by="time"
519 let g:netrw_sort_direction="reverse"
520 let g:netrw_timefmt="   %Y %m %d\t%H:%M"
521 let g:netrw_winsize=25
523 """""""""""""""""""""""""""""""""""""""""""""""""""""
524 "Buffer Select
525 """""""""""""""""""""""""""""""""""""""""""""""""""""
526 "nmap <silent> <unique> <leader>be <Plug>SelectBuf
527 "nmap <unique> <leader>bl <Plug>SelBufLaunchCmd
528 "let selBufAlwaysShowHidden=0
529 "let selBufIgnoreNonFileBufs=0
531 "Buffer Line
532 "nmap <Leader>tv :call TabLineSet_verbose_toggle()<CR>
533 "nmap <Leader>tr :call TabLineSet_verbose_rotate()<CR>
534 "nmap <silent> <Leader>w :call WinWalkerMenu()<CR>
540 "Highlight space at end of line as error
541 "highlight WhitespaceEOL ctermbg=darkred guibg=darkred
542 "match WhitespaceEOL /\s\+$/
547 "not use now
548 "set diffexpr=MyDiff()
549 "function MyDiff()
550 "  let opt = '-a --binary '
551 "  if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
552 "  if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
553 "  let arg1 = v:fname_in
554 "  if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
555 "  let arg2 = v:fname_new
556 "  if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
557 "  let arg3 = v:fname_out
558 "  if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
559 "  silent execute '!e:\prog\Vim\vim63\diff ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
560 "endfunction
563 function! MyTabLabel(n)
564         let buflist = tabpagebuflist(a:n)
565         let winnr = tabpagewinnr(a:n)
566         return bufname(buflist[winnr - 1])
567 endfunction
569 function! MyTabLine()
570         let s = ''
571         for i in range(tabpagenr('$'))
572                 " select the highlighting
573                 if i + 1 == tabpagenr()
574                   let s .= '%#TabLineSel#'
575                 else
576                   let s .= '%#TabLine#'
577                 endif
579                 " set the tab page number (for mouse clicks)
580                 let s .= '%' . (i + 1) . 'T'
582                 " the label is made by MyTabLabel()
583                 let s .= ' %{MyTabLabel(' . (i + 1) . ')} '
584         endfor
586         " after the last tab fill with TabLineFill and reset tab page nr
587         let s .= '%#TabLineFill#%T'
589         " right-align the label to close the current tab page
590         if tabpagenr('$') > 1
591                 let s .= '%=%#TabLine#%999Xclose'
592         endif
594         return s
595 endfunction
597 function! GuiTabLabel()
598         let label = ''
599         "let bufnrlist = tabpagebuflist(v:lnum)
601         " Add '+' if one of the buffers in the tab page is modified
602         "for bufnr in bufnrlist
603                 "if getbufvar(bufnr, "&modified")
604                         "let label = '+'
605                         "break
606                 "endif
607         "endfor
609         " Append the number of windows in the tab page if more than one
610         "let wincount = tabpagewinnr(v:lnum, '$')
611         "if wincount > 1
612                 "let label .= wincount
613         "endif
614         if v:lnum == g:currentPage
615                 let label .= ">>"
616         endif
617         return label
619         " Append the buffer name
620 endfunction
622 function! GuiTabLabel2()
623         let label = ''
624         let bufnrlist = tabpagebuflist(v:lnum)
626         " Add '+' if one of the buffers in the tab page is modified
627         "for bufnr in bufnrlist
628                 "if getbufvar(bufnr, "&modified")
629                         "let label = '+'
630                         "break
631                 "endif
632         "endfor
634         " Append the number of windows in the tab page if more than one
635         if v:lnum == g:currentPage
636                 let label .= "<<"
637         endif
638         let wincount = tabpagewinnr(v:lnum, '$')
639         if wincount > 1
640                 let label .= wincount
641         endif
642         return label
643 endfunction
645 let g:currentPage=1
646 function! GuiTabLabelEnter()
647         let g:currentPage=tabpagenr()
648         set guitablabel=%{GuiTabLabel()}%N\ %t\ %{GuiTabLabel2()}
649 endfunction
651 function! GuiTabLabelLeave()
652 endfunction
654 "       the tab setting and mapping
656 "set guitablabel=%N\ %f
657 "set guitablabel=%{GuiTabLabel()}
659 "set guitablabel=%N/\ %t\ %M
660 set tabline=%!MyTabLine()
661 let g:toggleTabs = 0
662 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>
663 map <silent><C-tab> :if g:toggleTabs == 1<CR>:tabnext<CR>:else<CR>:bn<CR>:endif<CR>
664 map <silent><C-S-tab> :if g:toggleTabs == 1<CR>:tabprevious<CR>:else<CR>:bp<CR>:endif<CR> 
666 map <leader>tt <esc>:tabnew<cr>:let g:toggleTabs=1<cr>
667 map <leader>tx :tabclose<cr>:if tabpagenr("$") == 1<cr>let g:toggleTabs=0<cr>:endif<cr><cr>
668 map <leader>tm :tabmove 
669 map <leader>tn :tabnext <cr>
670 map <leader>tp :tabprevious <cr>
671 "map <C-Tab> :tabn <CR>
672 "map <C-S-Tab> :tabp <CR> 
674 "autocmd TabLeave 
675 autocmd TabEnter * call GuiTabLabelEnter()
679 "for new tab page setting
680 map <leader>ta <esc>:tab sball<cr>
681 if has("gui_running")
682     function! InfoGuiTooltip()
683         "get window count
684         let wincount = tabpagewinnr(tabpagenr(),'$')
685         let bufferlist=''
686         "get name of active buffers in windows
687         for i in tabpagebuflist()
688             let bufferlist .= '['.fnamemodify(bufname(i),':t')."]"
689         endfor
690         return bufname($).'-'.bufferlist
691     endfunction
692     set guitabtooltip=%!InfoGuiTooltip()
695     function! FoldSpellBalloon()
696         let foldStart = foldclosed(v:beval_lnum )
697         let foldEnd = foldclosedend(v:beval_lnum)
698         let lines = []
699         " Detect if we are in a fold
700         if foldStart < 0
701             " Detect if we are on a misspelled word
702             let lines = spellsuggest( spellbadword(v:beval_text)[ 0 ], 5, 0 )
703         else
704             " we are in a fold
705             let numLines = foldEnd - foldStart + 1
706             " if we have too many lines in fold, show only the first 14
707             " and the last 14 lines
708             if ( numLines > 31 )
709                 let lines = getline( foldStart, foldStart + 14 )
710                 let lines += [ '-- Snipped ' . ( numLines - 30 ) . ' lines --' ]
711                 let lines += getline( foldEnd - 14, foldEnd )
712             else
713                 "less than 30 lines, lets show all of them
714                 let lines = getline( foldStart, foldEnd )
715             endif
716         endif
717         " return result
718         return join( lines, has( "balloon_multiline" ) ? "\n" : " " )
719     endfunction
720     set balloonexpr=FoldSpellBalloon()
721     set ballooneval
722     
724 endif
725     
727 "for LaTex Suite
728 "filetype plugin on
729 set grepprg=grep\ -nH\ $*
730 "set shellslash
731 "filetype indent on
732 let g:Tex_CompileRule_dvi="xelatex -src-specials -interaction=nonstopmode $*"
733 "let g:Tex_DefaultTargetFormat="pdf"
734 "let g:Tex_ViewRule_pdf="xpdf"
737 "function RemoteLaTeX()
738     "let g:Tex_ViewRule_dvi="xdvi -editor 'gvim --servername \"".expand("%:p")
739         "\."\" --remote-silent'"
740     "augr remotelatex
741     "au!
742     "augr END
743 "endfunction
745 "for vim im
746 let g:vimim_chinese_punctuation=0
748 "for js lint
749 let jslint_highlight_color = 'yellow'
752 " for cscope
753 if has("unix")
754     set csprg=/usr/bin/mlcscope
755 else
756     set csprg=d:\\cygwin\\bin\\mlcscope.exe
757 endif
759 " for clipbord conflict with NERD
760 nmap <unique> <silent> <Leader>co <Plug>ClipBrdOpen
762 " add my highlight setting
763 highlight CursorLine term=none cterm=none