Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Let's see how 'we' like this numbers.vim business.

  • Loading branch information...
commit f30e2a00d2b54ebc6183bfc55241a87dee34a8d2 1 parent 991193e
Stewart Laufer authored June 29, 2012

Showing 53 changed files with 971 additions and 423 deletions. Show diff stats Hide diff stats

  1. 154  vim/bundle/ctrlp.vim/autoload/ctrlp.vim
  2. 16  vim/bundle/ctrlp.vim/autoload/ctrlp/dir.vim
  3. 21  vim/bundle/ctrlp.vim/autoload/ctrlp/rtscript.vim
  4. 2  vim/bundle/ctrlp.vim/autoload/ctrlp/utils.vim
  5. 90  vim/bundle/ctrlp.vim/doc/ctrlp.txt
  6. 45  vim/bundle/ctrlp.vim/plugin/ctrlp.vim
  7. 65  vim/bundle/ctrlp.vim/readme.md
  8. 2  vim/bundle/delimitMate/README
  9. 4  vim/bundle/delimitMate/autoload/delimitMate.vim
  10. 17  vim/bundle/delimitMate/test/expand_cr.txt
  11. 45  vim/bundle/gist-vim/autoload/gist.vim
  12. 8  vim/bundle/gist-vim/gist.vim.vimup
  13. 4  vim/bundle/nerdcommenter/README.md
  14. 8  vim/bundle/nerdcommenter/plugin/NERD_commenter.vim
  15. 2  vim/bundle/numbers.vim/.gitignore
  16. 7  vim/bundle/numbers.vim/LICENSE
  17. 23  vim/bundle/numbers.vim/README.md
  18. 34  vim/bundle/numbers.vim/doc/numbers.txt
  19. 89  vim/bundle/numbers.vim/plugin/numbers.vim
  20. 3  vim/bundle/supertab/.gitignore
  21. 4  vim/bundle/supertab/Makefile
  22. 66  vim/bundle/supertab/README.rst
  23. 21  vim/bundle/supertab/doc/supertab.txt
  24. 94  vim/bundle/supertab/plugin/supertab.vim
  25. 85  vim/bundle/tagbar/autoload/tagbar.vim
  26. 88  vim/bundle/tagbar/doc/tagbar.txt
  27. 3  vim/bundle/tagbar/plugin/tagbar.vim
  28. 2  vim/bundle/tagbar/syntax/tagbar.vim
  29. 2  vim/bundle/vim-markdown/syntax/markdown.vim
  30. 7  vim/bundle/vim-powerline/README.rst
  31. 2  vim/bundle/vim-powerline/autoload/Powerline/Colorschemes/default.vim
  32. 9  vim/bundle/vim-powerline/autoload/Powerline/Functions.vim
  33. 8  vim/bundle/vim-powerline/autoload/Powerline/Functions/aurum.vim
  34. 2  vim/bundle/vim-powerline/autoload/Powerline/Functions/syntastic.vim
  35. 6  vim/bundle/vim-powerline/autoload/Powerline/Segments/aurum.vim
  36. 6  vim/bundle/vim-powerline/autoload/Powerline/Segments/tagbar.vim
  37. 1  vim/bundle/vim-powerline/autoload/Powerline/Themes/default.vim
  38. 4  vim/bundle/vim-powerline/doc/Powerline.txt
  39. 30  vim/bundle/vim-powerline/plugin/Powerline.vim
  40. 6  vim/bundle/vim-rails/autoload/rails.vim
  41. 7  vim/bundle/vim-rails/doc/rails.txt
  42. 19  vim/bundle/vim-ruby/autoload/rubycomplete.vim
  43. 61  vim/bundle/vim-ruby/doc/vim-ruby.txt
  44. 47  vim/bundle/vim-ruby/ftplugin/ruby.vim
  45. 3  vim/bundle/vim-surround/plugin/surround.vim
  46. 73  vim/bundle/vimclojure/autoload/vimclojure.vim
  47. 57  vim/bundle/vimclojure/doc/clojure.txt
  48. 1  vim/bundle/vimclojure/ftplugin/clojure.vim
  49. 21  vim/bundle/vimclojure/indent/clojure.vim
  50. 12  vim/bundle/vimclojure/plugin/clojure.vim
  51. 4  vim/bundle/vimclojure/syntax/clojure.vim
  52. 1  vim/update_bundles
  53. 3  vimrc
154  vim/bundle/ctrlp.vim/autoload/ctrlp.vim
... ...
@@ -1,6 +1,6 @@
1 1
 " =============================================================================
2 2
 " File:          autoload/ctrlp.vim
3  
-" Description:   Fuzzy file, buffer, mru and tag finder.
  3
+" Description:   Fuzzy file, buffer, mru, tag, etc finder.
4 4
 " Author:        Kien Nguyen <github.com/kien>
5 5
 " Version:       1.7.7
6 6
 " =============================================================================
@@ -92,8 +92,7 @@ let [s:pref, s:opts, s:new_opts] = ['g:ctrlp_', {
92 92
 " Global options
93 93
 let s:glbs = { 'magic': 1, 'to': 1, 'tm': 0, 'sb': 1, 'hls': 0, 'im': 0,
94 94
 	\ 'report': 9999, 'sc': 0, 'ss': 0, 'siso': 0, 'mfd': 200, 'mouse': 'n',
95  
-	\ 'gcr': 'a:blinkon0', 'ic': 1, 'scs': 1, 'lmap': '', 'mousef': 0,
96  
-	\ 'imd': 1 }
  95
+	\ 'gcr': 'a:blinkon0', 'ic': 1, 'lmap': '', 'mousef': 0, 'imd': 1 }
97 96
 
98 97
 " Keymaps
99 98
 let [s:lcmap, s:prtmaps] = ['nn <buffer> <silent>', {
@@ -139,8 +138,9 @@ en
139 138
 
140 139
 let s:lash = ctrlp#utils#lash()
141 140
 
142  
-" Limiters
143  
-let [s:compare_lim, s:nocache_lim] = [3000, 4000]
  141
+let s:compare_lim = 3000
  142
+
  143
+let s:ficounts = {}
144 144
 
145 145
 " Regexp
146 146
 let s:fpats = {
@@ -229,7 +229,7 @@ fu! s:Open()
229 229
 	cal s:log(1)
230 230
 	cal s:getenv()
231 231
 	cal s:execextvar('enter')
232  
-	sil! exe 'noa keepa' ( s:mwbottom ? 'bo' : 'to' ) '1new +setl\ nobl ControlP'
  232
+	sil! exe 'keepa' ( s:mwbottom ? 'bo' : 'to' ) '1new ControlP'
233 233
 	cal s:buffunc(1)
234 234
 	let [s:bufnr, s:prompt, s:winw] = [bufnr('%'), ['', '', ''], winwidth(0)]
235 235
 	abc <buffer>
@@ -248,8 +248,8 @@ endf
248 248
 
249 249
 fu! s:Close()
250 250
 	cal s:buffunc(0)
251  
-	try | noa bun!
252  
-	cat | noa clo! | endt
  251
+	try | bun!
  252
+	cat | clo! | endt
253 253
 	cal s:unmarksigns()
254 254
 	for key in keys(s:glbs) | if exists('+'.key)
255 255
 		sil! exe 'let &'.key.' = s:glb_'.key
@@ -292,7 +292,7 @@ endf
292 292
 " * Files {{{1
293 293
 fu! ctrlp#files()
294 294
 	let cafile = ctrlp#utils#cachefile()
295  
-	if g:ctrlp_newcache || !filereadable(cafile) || !s:caching
  295
+	if g:ctrlp_newcache || !filereadable(cafile) || s:nocache()
296 296
 		let [lscmd, s:initcwd, g:ctrlp_allfiles] = [s:lsCmd(), s:dyncwd, []]
297 297
 		" Get the list of files
298 298
 		if empty(lscmd)
@@ -314,6 +314,7 @@ fu! ctrlp#files()
314 314
 			let g:ctrlp_allfiles = ctrlp#utils#readfile(cafile)
315 315
 		en
316 316
 	en
  317
+	cal extend(s:ficounts, { s:dyncwd : len(g:ctrlp_allfiles) })
317 318
 	retu g:ctrlp_allfiles
318 319
 endf
319 320
 
@@ -382,7 +383,8 @@ endf
382 383
 " * MatchedItems() {{{1
383 384
 fu! s:MatchIt(items, pat, limit, exc)
384 385
 	let [lines, id] = [[], 0]
385  
-	let pat = s:byfname ? split(a:pat, '^[^;]\+\zs;', 1) : a:pat
  386
+	let pat = s:byfname ?
  387
+		\ map(split(a:pat, '^[^;]\+\zs;', 1), 's:martcs.v:val') : s:martcs.a:pat
386 388
 	for item in a:items
387 389
 		let id += 1
388 390
 		try | if !( s:ispath && item == a:exc ) && call(s:mfunc, [item, pat]) >= 0
@@ -457,7 +459,7 @@ fu! s:Render(lines, pat)
457 459
 	let s:matched = copy(lines)
458 460
 	" Sorting
459 461
 	if !s:nosort()
460  
-		let s:compat = pat
  462
+		let s:compat = s:martcs.pat
461 463
 		cal sort(lines, 's:mixedsort')
462 464
 		unl s:compat
463 465
 	en
@@ -485,6 +487,7 @@ fu! s:Update(str)
485 487
 	let str = s:sanstail(a:str)
486 488
 	" Stop if the string's unchanged
487 489
 	if str == oldstr && !empty(str) && !exists('s:force') | retu | en
  490
+	let s:martcs = &scs && str =~ '\u' ? '\C' : ''
488 491
 	let pat = s:matcher == {} ? s:SplitPattern(str) : str
489 492
 	let lines = s:nolim == 1 && empty(str) ? copy(g:ctrlp_lines)
490 493
 		\ : s:MatchedItems(g:ctrlp_lines, pat, s:winh)
@@ -504,7 +507,7 @@ fu! s:BuildPrompt(upd, ...)
504 507
 	let str = join(prt, '')
505 508
 	let lazy = empty(str) || exists('s:force') || !has('autocmd') ? 0 : s:lazy
506 509
 	if a:upd && !lazy && ( s:matches || s:regexp
507  
-		\ || match(str, '\(\\\(<\|>\)\|[*|]\)\|\(\\\:\([^:]\|\\:\)*$\)') >= 0 )
  510
+		\ || str =~ '\(\\\(<\|>\)\|[*|]\)\|\(\\\:\([^:]\|\\:\)*$\)' )
508 511
 		sil! cal s:Update(str)
509 512
 	en
510 513
 	sil! cal ctrlp#statusline()
@@ -570,10 +573,10 @@ endf
570 573
 fu! s:PrtDeleteWord()
571 574
 	unl! s:hstgot
572 575
 	let [str, s:matches] = [s:prompt[0], 1]
573  
-	let str = match(str, '\W\w\+$') >= 0 ? matchstr(str, '^.\+\W\ze\w\+$')
574  
-		\ : match(str, '\w\W\+$') >= 0 ? matchstr(str, '^.\+\w\ze\W\+$')
575  
-		\ : match(str, '\s\+$') >= 0 ? matchstr(str, '^.*[^ \t]\+\ze\s\+$')
576  
-		\ : match(str, ' ') <= 0 ? '' : str
  576
+	let str = str =~ '\W\w\+$' ? matchstr(str, '^.\+\W\ze\w\+$')
  577
+		\ : str =~ '\w\W\+$' ? matchstr(str, '^.\+\w\ze\W\+$')
  578
+		\ : str =~ '\s\+$' ? matchstr(str, '^.*\S\ze\s\+$')
  579
+		\ : str =~ '\v^(\S+|\s+)$' ? '' : str
577 580
 	let s:prompt[0] = str
578 581
 	cal s:BuildPrompt(1)
579 582
 endf
@@ -712,7 +715,7 @@ endf
712 715
 
713 716
 fu! s:PrtExit()
714 717
 	if !has('autocmd') | cal s:Close() | en
715  
-	winc p
  718
+	exe ( winnr('$') == 1 ? 'bw!' : 'winc p' )
716 719
 endf
717 720
 
718 721
 fu! s:PrtHistory(...)
@@ -753,8 +756,8 @@ endf
753 756
 
754 757
 fu! s:MapSpecs(...)
755 758
 	" Correct arrow keys in terminal
756  
-	if ( has('termresponse') && match(v:termresponse, "\<ESC>") >= 0 )
757  
-		\ || &term =~? '\vxterm|<k?vt|gnome|screen|linux'
  759
+	if ( has('termresponse') && v:termresponse =~ "\<ESC>" )
  760
+		\ || &term =~? '\vxterm|<k?vt|gnome|screen|linux|ansi'
758 761
 		for each in ['\A <up>','\B <down>','\C <right>','\D <left>']
759 762
 			exe s:lcmap.' <esc>['.each
760 763
 		endfo
@@ -817,14 +820,15 @@ fu! s:SetWD(...)
817 820
 		let pathmode = a:1
818 821
 	en | en
819 822
 	if a:0 < 2
820  
-		if match(s:crfile, '\v^<.+>://') >= 0 || !pathmode | retu | en
  823
+		if s:crfile =~ '^.\+://' || !pathmode | retu | en
821 824
 		if exists('+acd') | let [s:glb_acd, &acd] = [&acd, 0] | en
822 825
 		cal ctrlp#setdir(s:crfpath)
823 826
 	en
824 827
 	if pathmode == 1 | retu | en
825  
-	let markers = ['root.dir', '.git/', '.hg/', '.svn/', '.bzr/', '_darcs/']
  828
+	let markers = ['.git', '.hg', '.svn', '.bzr', '_darcs']
826 829
 	if type(s:rmarkers) == 3 && !empty(s:rmarkers)
827 830
 		cal extend(markers, s:rmarkers, 0)
  831
+		let markers = reverse(filter(reverse(markers), 'count(markers, v:val) == 1'))
828 832
 	en
829 833
 	for marker in markers
830 834
 		cal s:findroot(s:dyncwd, marker, 0, 0)
@@ -868,9 +872,10 @@ fu! ctrlp#acceptfile(mode, line, ...)
868 872
 endf
869 873
 
870 874
 fu! s:SpecInputs(str)
871  
-	if a:str =~ '^\.\.\.*$' && s:spi
  875
+	if a:str =~ '\v^(\.\.([\/]\.\.)*[\/]?[.\/]*)$' && s:spi
872 876
 		let cwd = s:dyncwd
873  
-		cal ctrlp#setdir('../'.repeat('../', strlen(a:str) - 2))
  877
+		cal ctrlp#setdir(a:str =~ '^\.\.\.*$' ?
  878
+			\ '../'.repeat('../', strlen(a:str) - 2) : a:str)
874 879
 		if cwd != s:dyncwd | cal ctrlp#setlines() | en
875 880
 		cal s:PrtClear()
876 881
 		retu 1
@@ -891,12 +896,13 @@ fu! s:SpecInputs(str)
891 896
 endf
892 897
 
893 898
 fu! s:AcceptSelection(mode)
  899
+	if a:mode != 'e' && s:OpenMulti(a:mode) != -1 | retu | en
894 900
 	let str = join(s:prompt, '')
895 901
 	if a:mode == 'e' | if s:SpecInputs(str) | retu | en | en
896 902
 	" Get the selected line
897 903
 	let line = !empty(s:lines) ? s:lines[line('.') - 1] : ''
898 904
 	if a:mode != 'e' && !s:itemtype && line == ''
899  
-		\ && str !~ '\v^(\.\.\.*|/|\\|\?|\@.+)$'
  905
+		\ && str !~ '\v^(\.\.([\/]\.\.)*[\/]?[.\/]*|/|\\|\?|\@.+)$'
900 906
 		cal s:CreateNewFile(a:mode) | retu
901 907
 	en
902 908
 	if empty(line) | retu | en
@@ -969,16 +975,21 @@ fu! s:MarkToOpen()
969 975
 	sil! cal ctrlp#statusline()
970 976
 endf
971 977
 
972  
-fu! s:OpenMulti()
973  
-	if !exists('s:marked') || s:opmul == '0' || !s:ispath | retu | en
  978
+fu! s:OpenMulti(...)
  979
+	if !exists('s:marked') || s:opmul == '0' || !s:ispath | retu -1 | en
974 980
 	" Get the options
975  
-	let opts = matchlist(s:opmul, '\v^(\d+)=(\w)=(\w)=$')
976  
-	if opts == [] | retu | en
977  
-	let [nr, md, ucr] = opts[1:3]
  981
+	let [nr, md] = [matchstr(s:opmul, '\d\+'), matchstr(s:opmul, '[thvi]')]
  982
+	let [ur, jf] = [matchstr(s:opmul, 'r') == 'r', matchstr(s:opmul, 'j') == 'j']
  983
+	let md = a:0 ? a:1 : ( md == '' ? 'v' : md )
978 984
 	let nopt = exists('g:ctrlp_open_multiple_files')
979  
-	if s:argmap
980  
-		let md = s:argmaps(md)
981  
-		if md == 'cancel' | retu | en
  985
+	if s:argmap && !a:0
  986
+		let md = s:argmaps(md, 0)
  987
+		if md == 'c'
  988
+			cal s:unmarksigns()
  989
+			unl! s:marked
  990
+			cal s:BuildPrompt(0)
  991
+		en
  992
+		if md =~ '\v^c(ancel)?$' | retu | en
982 993
 		let nr = nr == '0' ? ( nopt ? '' : '1' ) : nr
983 994
 	en
984 995
 	let mkd = values(s:marked)
@@ -990,9 +1001,12 @@ fu! s:OpenMulti()
990 1001
 	let [tail, fnesc] = [s:tail(), exists('*fnameescape') && v:version > 701]
991 1002
 	let [emptytail, bufnr] = [empty(tail), bufnr('^'.mkd[0].'$')]
992 1003
 	let useb = bufnr > 0 && buflisted(bufnr) && emptytail
993  
-	let fst = call('ctrlp#normcmd', useb ? ['b', 'bo vert sb'] : ['e'])
  1004
+	" Move to a replaceable window
  1005
+	let ncmd = ( useb ? ['b', 'bo vert sb'] : ['e', 'bo vne'] )
  1006
+		\ + ( ur ? [] : ['ignruw'] )
  1007
+	let fst = call('ctrlp#normcmd', ncmd)
994 1008
 	" Check if the current window has a replaceable buffer
995  
-	let repabl = ( empty(bufname('%')) && empty(&l:ft) ) || s:nosplit()
  1009
+	let repabl = empty(bufname('%')) && empty(&l:ft)
996 1010
 	" Commands for the rest of the files
997 1011
 	let [ic, cmds] = [1, { 'v': ['vert sb', 'vne'], 'h': ['sb', 'new'],
998 1012
 		\ 't': ['tab sb', 'tabe'] }]
@@ -1004,7 +1018,7 @@ fu! s:OpenMulti()
1004 1018
 		let useb = bufnr > 0 && buflisted(bufnr) && emptytail
1005 1019
 		let snd = md != '' && has_key(cmds, md) ?
1006 1020
 			\ ( useb ? cmds[md][0] : cmds[md][1] ) : ( useb ? 'vert sb' : 'vne' )
1007  
-		let cmd = ic == 1 && ( ucr == 'r' || repabl ) ? fst : snd
  1021
+		let cmd = ic == 1 && ( !( !ur && fst =~ '^[eb]$' ) || repabl ) ? fst : snd
1008 1022
 		let conds = [( nr != '' && nr > 1 && nr < ic ) || ( nr == '' && ic > 1 ),
1009 1023
 			\ nr != '' && nr < ic]
1010 1024
 		if conds[nopt]
@@ -1015,8 +1029,17 @@ fu! s:OpenMulti()
1015 1029
 			en | en
1016 1030
 		el
1017 1031
 			cal s:openfile(cmd, useb ? bufnr : va, tail) | let ic += 1
  1032
+			if jf | if ic == 2
  1033
+				let crpos = [tabpagenr(), winnr()]
  1034
+			el
  1035
+				let crpos[0] += tabpagenr() == crpos[0]
  1036
+				let crpos[1] += winnr() == crpos[1]
  1037
+			en | en
1018 1038
 		en
1019 1039
 	endfo
  1040
+	if jf && exists('crpos') && ic > 2
  1041
+		exe ( md == 't' ? 'tabn '.crpos[0] : crpos[1].'winc w' )
  1042
+	en
1020 1043
 	let &swb = swb
1021 1044
 endf
1022 1045
 " ** Helper functions {{{1
@@ -1099,7 +1122,8 @@ fu! s:mixedsort(...)
1099 1122
 			if !s:itemtype | let ms += [s:comparent(a:1, a:2)] | en
1100 1123
 		en
1101 1124
 		if s:itemtype =~ '^[12]$'
1102  
-			let ms += [s:compmref(a:1, a:2)] | let cln = 0
  1125
+			let ms += [s:compmref(a:1, a:2)]
  1126
+			let cln = cml ? cln : 0
1103 1127
 		en
1104 1128
 		let ms += [cml, 0, 0, 0]
1105 1129
 		let mp = call('s:multipliers', ms[:3])
@@ -1170,7 +1194,12 @@ endf
1170 1194
 " Paths {{{2
1171 1195
 fu! s:formatline(str)
1172 1196
 	let cond = s:ispath && ( s:winw - 4 ) < s:strwidth(a:str)
1173  
-	retu '> '.( cond ? pathshorten(a:str) : a:str )
  1197
+	retu '> '.( cond ? s:pathshorten(a:str) : a:str )
  1198
+endf
  1199
+
  1200
+fu! s:pathshorten(str)
  1201
+	retu matchstr(a:str, '^.\{9}').'...'
  1202
+		\ .matchstr(a:str, '.\{'.( s:winw - 16 ).'}$')
1174 1203
 endf
1175 1204
 
1176 1205
 fu! s:dircompl(be, sd)
@@ -1178,7 +1207,7 @@ fu! s:dircompl(be, sd)
1178 1207
 	let [be, sd] = a:be == '' ? [s:dyncwd, a:sd] : [a:be, a:be.s:lash(a:be).a:sd]
1179 1208
 	let dirs = ctrlp#rmbasedir(split(globpath(be, a:sd.'*/'), "\n"))
1180 1209
 	cal filter(dirs, '!match(v:val, escape(sd, ''~$.\''))'
1181  
-		\ . ' && match(v:val, ''\v(^|[\/])\.{1,2}[\/]$'') < 0')
  1210
+		\ . ' && v:val !~ ''\v(^|[\/])\.{1,2}[\/]$''')
1182 1211
 	retu dirs
1183 1212
 endf
1184 1213
 
@@ -1202,7 +1231,7 @@ fu! s:headntail(str)
1202 1231
 endf
1203 1232
 
1204 1233
 fu! s:lash(...)
1205  
-	retu match(a:0 ? a:1 : s:dyncwd, '[\/]$') < 0 ? s:lash : ''
  1234
+	retu ( a:0 ? a:1 : s:dyncwd ) !~ '[\/]$' ? s:lash : ''
1206 1235
 endf
1207 1236
 
1208 1237
 fu! s:ispathitem()
@@ -1215,7 +1244,7 @@ fu! ctrlp#dirnfile(entries)
1215 1244
 		let etype = getftype(each)
1216 1245
 		if s:igntype >= 0 && s:usrign(each, etype) | con | en
1217 1246
 		if etype == 'dir'
1218  
-			if s:dotfiles | if match(each, '[\/]\.\{1,2}$') < 0
  1247
+			if s:dotfiles | if each !~ '[\/]\.\{1,2}$'
1219 1248
 				cal add(items[0], each)
1220 1249
 			en | el
1221 1250
 				cal add(items[0], each)
@@ -1223,7 +1252,7 @@ fu! ctrlp#dirnfile(entries)
1223 1252
 		elsei etype == 'link'
1224 1253
 			if s:folsym
1225 1254
 				let isfile = !isdirectory(each)
1226  
-				if !s:samerootsyml(each, isfile, cwd)
  1255
+				if s:folsym == 2 || !s:samerootsyml(each, isfile, cwd)
1227 1256
 					cal add(items[isfile], each)
1228 1257
 				en
1229 1258
 			en
@@ -1248,7 +1277,7 @@ endf
1248 1277
 
1249 1278
 fu! ctrlp#rmbasedir(items)
1250 1279
 	if a:items != [] && !stridx(a:items[0], s:dyncwd)
1251  
-		let idx = strlen(s:dyncwd) + ( match(s:dyncwd, '[\/]$') < 0 )
  1280
+		let idx = strlen(s:dyncwd) + ( s:dyncwd !~ '[\/]$' )
1252 1281
 		retu map(a:items, 'strpart(v:val, idx)')
1253 1282
 	en
1254 1283
 	retu a:items
@@ -1256,7 +1285,7 @@ endf
1256 1285
 
1257 1286
 fu! s:getparent(item)
1258 1287
 	let parent = substitute(a:item, '[\/][^\/]\+[\/:]\?$', '', '')
1259  
-	if parent == '' || match(parent, '[\/]') < 0
  1288
+	if parent == '' || parent !~ '[\/]'
1260 1289
 		let parent .= s:lash
1261 1290
 	en
1262 1291
 	retu parent
@@ -1320,7 +1349,7 @@ fu! s:highlight(pat, grp)
1320 1349
 			let pat = substitute(pat, '\[\^\(.\{-}\)\]\\{-}', '[^\\/\1]\\{-}', 'g')
1321 1350
 			let pat = substitute(pat, '\$\@<!$', '\\ze[^\\/]*$', 'g')
1322 1351
 		en
1323  
-		cal matchadd(a:grp, '\c'.pat)
  1352
+		cal matchadd(a:grp, ( s:martcs == '' ? '\c' : '\C' ).pat)
1324 1353
 		cal matchadd('CtrlPLinePre', '^>')
1325 1354
 	en
1326 1355
 endf
@@ -1409,7 +1438,7 @@ fu! s:buftab(bufnr, md)
1409 1438
 endf
1410 1439
 
1411 1440
 fu! ctrlp#normcmd(cmd, ...)
1412  
-	if s:nosplit() | retu a:cmd | en
  1441
+	if a:0 < 2 && s:nosplit() | retu a:cmd | en
1413 1442
 	let norwins = filter(range(1, winnr('$')),
1414 1443
 		\ 'empty(getbufvar(winbufnr(v:val), "&bt"))')
1415 1444
 	for each in norwins
@@ -1433,7 +1462,7 @@ fu! s:nosplit()
1433 1462
 endf
1434 1463
 
1435 1464
 fu! s:setupblank()
1436  
-	setl noswf nonu nowrap nolist nospell nocuc wfh
  1465
+	setl noswf nonu nobl nowrap nolist nospell nocuc wfh
1437 1466
 	setl fdc=0 fdl=99 tw=0 bt=nofile bh=unload
1438 1467
 	if v:version > 702
1439 1468
 		setl nornu noudf cc=0
@@ -1483,28 +1512,31 @@ endf
1483 1512
 
1484 1513
 fu! s:tail()
1485 1514
 	if exists('s:optail') && !empty('s:optail')
1486  
-		let tailpref = match(s:optail, '^\s*+') < 0 ? ' +' : ' '
  1515
+		let tailpref = s:optail !~ '^\s*+' ? ' +' : ' '
1487 1516
 		retu tailpref.s:optail
1488 1517
 	en
1489 1518
 	retu ''
1490 1519
 endf
1491 1520
 
1492 1521
 fu! s:sanstail(str)
1493  
-	let str = s:spi ? substitute(a:str, '^\(@.*$\|\\\\\ze@\)', '', 'g') : a:str
  1522
+	let str = s:spi ?
  1523
+		\ substitute(a:str, '^\(@.*$\|\\\\\ze@\|\.\.\zs[.\/]\+$\)', '', 'g') : a:str
1494 1524
 	let [str, pat] = [substitute(str, '\\\\', '\', 'g'), '\([^:]\|\\:\)*$']
1495 1525
 	unl! s:optail
1496  
-	if match(str, '\\\@<!:'.pat) >= 0
  1526
+	if str =~ '\\\@<!:'.pat
1497 1527
 		let s:optail = matchstr(str, '\\\@<!:\zs'.pat)
1498 1528
 		let str = substitute(str, '\\\@<!:'.pat, '', '')
1499 1529
 	en
1500 1530
 	retu substitute(str, '\\\ze:', '', 'g')
1501 1531
 endf
1502 1532
 
1503  
-fu! s:argmaps(md, ...)
1504  
-	let roh = a:0 ? ['/[r]eplace', 'r'] : ['/h[i]dden', 'i']
1505  
-	let str = '[t]ab/[v]ertical/[h]orizontal'.roh[0].'? '
1506  
-	let args = [a:md] + ( a:0 ? [a:1] : [] )
1507  
-	retu s:choices(str, ['t', 'v', 'h', roh[1]], 's:argmaps', args)
  1533
+fu! s:argmaps(md, i)
  1534
+	let roh = [
  1535
+		\ ['OpenMulti', '/h[i]dden/[c]lear', ['i', 'c']],
  1536
+		\ ['CreateNewFile', '/[r]eplace', ['r']],
  1537
+		\ ]
  1538
+	let str = roh[a:i][0].': [t]ab/[v]ertical/[h]orizontal'.roh[a:i][1].'? '
  1539
+	retu s:choices(str, ['t', 'v', 'h'] + roh[a:i][2], 's:argmaps', [a:md, a:i])
1508 1540
 endf
1509 1541
 
1510 1542
 fu! s:insertstr()
@@ -1597,7 +1629,7 @@ endf
1597 1629
 
1598 1630
 fu! s:regexfilter(str)
1599 1631
 	let str = a:str
1600  
-	for key in keys(s:fpats) | if match(str, key) >= 0
  1632
+	for key in keys(s:fpats) | if str =~ key
1601 1633
 		let str = substitute(str, s:fpats[key], '', 'g')
1602 1634
 	en | endfo
1603 1635
 	retu str
@@ -1735,14 +1767,16 @@ fu! s:mmode()
1735 1767
 endf
1736 1768
 " Cache {{{2
1737 1769
 fu! s:writecache(cache_file)
1738  
-	let fwrite = len(g:ctrlp_allfiles) > s:nocache_lim
1739  
-	if ( g:ctrlp_newcache || !filereadable(a:cache_file) ) && s:caching || fwrite
1740  
-		if fwrite | let s:caching = 1 | en
  1770
+	if ( g:ctrlp_newcache || !filereadable(a:cache_file) ) && !s:nocache()
1741 1771
 		cal ctrlp#utils#writecache(g:ctrlp_allfiles)
1742 1772
 		let g:ctrlp_newcache = 0
1743 1773
 	en
1744 1774
 endf
1745 1775
 
  1776
+fu! s:nocache()
  1777
+	retu !s:caching || ( s:caching > 1 && get(s:ficounts, s:dyncwd) < s:caching )
  1778
+endf
  1779
+
1746 1780
 fu! s:insertcache(str)
1747 1781
 	let [data, g:ctrlp_newcache, str] = [g:ctrlp_allfiles, 1, a:str]
1748 1782
 	if strlen(str) <= strlen(data[0])
@@ -1820,7 +1854,7 @@ fu! ctrlp#init(type, ...)
1820 1854
 	if exists('s:init') || s:iscmdwin() | retu | en
1821 1855
 	let [s:matches, s:init] = [1, 1]
1822 1856
 	cal ctrlp#reset()
1823  
-	cal s:Open()
  1857
+	noa cal s:Open()
1824 1858
 	cal s:SetWD(a:0 ? a:1 : '')
1825 1859
 	cal s:MapKeys()
1826 1860
 	cal ctrlp#syntax()
@@ -1833,7 +1867,7 @@ if has('autocmd')
1833 1867
 	aug CtrlPAug
1834 1868
 		au!
1835 1869
 		au BufEnter ControlP cal s:checkbuf()
1836  
-		au BufLeave ControlP cal s:Close()
  1870
+		au BufLeave ControlP noa cal s:Close()
1837 1871
 		au VimLeavePre * cal s:leavepre()
1838 1872
 	aug END
1839 1873
 en
16  vim/bundle/ctrlp.vim/autoload/ctrlp/dir.vim
@@ -10,12 +10,7 @@ if exists('g:loaded_ctrlp_dir') && g:loaded_ctrlp_dir
10 10
 en
11 11
 let [g:loaded_ctrlp_dir, g:ctrlp_newdir] = [1, 0]
12 12
 
13  
-let s:ars = [
14  
-	\ 's:maxdepth',
15  
-	\ 's:maxfiles',
16  
-	\ 's:compare_lim',
17  
-	\ 's:glob',
18  
-	\ ]
  13
+let s:ars = ['s:maxdepth', 's:maxfiles', 's:compare_lim', 's:glob', 's:caching']
19 14
 
20 15
 cal add(g:ctrlp_ext_vars, {
21 16
 	\ 'init': 'ctrlp#dir#init('.join(s:ars, ', ').')',
@@ -27,6 +22,8 @@ cal add(g:ctrlp_ext_vars, {
27 22
 	\ })
28 23
 
29 24
 let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
  25
+
  26
+let s:dircounts = {}
30 27
 " Utilities {{{1
31 28
 fu! s:globdirs(dirs, depth)
32 29
 	let entries = split(globpath(a:dirs, s:glob), "\n")
@@ -42,6 +39,10 @@ endf
42 39
 fu! s:max(len, max)
43 40
 	retu a:max && a:len > a:max ? 1 : 0
44 41
 endf
  42
+
  43
+fu! s:nocache()
  44
+	retu !s:caching || ( s:caching > 1 && get(s:dircounts, s:cwd) < s:caching )
  45
+endf
45 46
 " Public {{{1
46 47
 fu! ctrlp#dir#init(...)
47 48
 	let s:cwd = getcwd()
@@ -50,7 +51,7 @@ fu! ctrlp#dir#init(...)
50 51
 	endfo
51 52
 	let cadir = ctrlp#utils#cachedir().ctrlp#utils#lash().'dir'
52 53
 	let cafile = cadir.ctrlp#utils#lash().ctrlp#utils#cachefile('dir')
53  
-	if g:ctrlp_newdir || !filereadable(cafile)
  54
+	if g:ctrlp_newdir || s:nocache() || !filereadable(cafile)
54 55
 		let [s:initcwd, g:ctrlp_alldirs] = [s:cwd, []]
55 56
 		cal s:globdirs(s:cwd, 0)
56 57
 		cal ctrlp#rmbasedir(g:ctrlp_alldirs)
@@ -65,6 +66,7 @@ fu! ctrlp#dir#init(...)
65 66
 			let g:ctrlp_alldirs = ctrlp#utils#readfile(cafile)
66 67
 		en
67 68
 	en
  69
+	cal extend(s:dircounts, { s:cwd : len(g:ctrlp_alldirs) })
68 70
 	retu g:ctrlp_alldirs
69 71
 endf
70 72
 
21  vim/bundle/ctrlp.vim/autoload/ctrlp/rtscript.vim
@@ -11,7 +11,7 @@ en
11 11
 let [g:loaded_ctrlp_rtscript, g:ctrlp_newrts] = [1, 0]
12 12
 
13 13
 cal add(g:ctrlp_ext_vars, {
14  
-	\ 'init': 'ctrlp#rtscript#init()',
  14
+	\ 'init': 'ctrlp#rtscript#init(s:caching)',
15 15
 	\ 'accept': 'ctrlp#acceptfile',
16 16
 	\ 'lname': 'runtime scripts',
17 17
 	\ 'sname': 'rts',
@@ -20,9 +20,16 @@ cal add(g:ctrlp_ext_vars, {
20 20
 	\ })
21 21
 
22 22
 let s:id = g:ctrlp_builtins + len(g:ctrlp_ext_vars)
  23
+
  24
+let s:filecounts = {}
  25
+" Utilities {{{1
  26
+fu! s:nocache()
  27
+	retu !s:caching || ( s:caching > 1 && get(s:filecounts, s:cwd) < s:caching )
  28
+endf
23 29
 " Public {{{1
24  
-fu! ctrlp#rtscript#init()
25  
-	if g:ctrlp_newrts
  30
+fu! ctrlp#rtscript#init(caching)
  31
+	let [s:caching, s:cwd] = [a:caching, getcwd()]
  32
+	if g:ctrlp_newrts || s:nocache()
26 33
 		\ || !( exists('g:ctrlp_rtscache') && g:ctrlp_rtscache[0] == &rtp )
27 34
 		sil! cal ctrlp#progress('Indexing...')
28 35
 		let entries = split(globpath(&rtp, '**/*.*'), "\n")
@@ -31,13 +38,13 @@ fu! ctrlp#rtscript#init()
31 38
 	el
32 39
 		let [entries, results] = g:ctrlp_rtscache[2:3]
33 40
 	en
34  
-	let cwd = getcwd()
35  
-	if g:ctrlp_newrts
36  
-		\ || !( exists('g:ctrlp_rtscache') && g:ctrlp_rtscache[:1] == [&rtp, cwd] )
  41
+	if g:ctrlp_newrts || s:nocache()
  42
+		\ || !( exists('g:ctrlp_rtscache') && g:ctrlp_rtscache[:1] == [&rtp, s:cwd] )
37 43
 		if !exists('echoed') | sil! cal ctrlp#progress('Processing...') | en
38 44
 		let results = map(copy(entries), 'fnamemodify(v:val, '':.'')')
39 45
 	en
40  
-	let [g:ctrlp_rtscache, g:ctrlp_newrts] = [[&rtp, cwd, entries, results], 0]
  46
+	let [g:ctrlp_rtscache, g:ctrlp_newrts] = [[&rtp, s:cwd, entries, results], 0]
  47
+	cal extend(s:filecounts, { s:cwd : len(results) })
41 48
 	retu results
42 49
 endf
43 50
 
2  vim/bundle/ctrlp.vim/autoload/ctrlp/utils.vim
@@ -11,7 +11,7 @@ endf
11 11
 let s:lash = ctrlp#utils#lash()
12 12
 
13 13
 fu! s:lash(...)
14  
-	retu match(a:0 ? a:1 : getcwd(), '[\/]$') < 0 ? s:lash : ''
  14
+	retu ( a:0 ? a:1 : getcwd() ) !~ '[\/]$' ? s:lash : ''
15 15
 endf
16 16
 
17 17
 fu! ctrlp#utils#opts()
90  vim/bundle/ctrlp.vim/doc/ctrlp.txt
... ...
@@ -1,4 +1,4 @@
1  
-*ctrlp.txt*       Fuzzy file, buffer, mru and tag finder. v1.7.7
  1
+*ctrlp.txt*       Fuzzy file, buffer, mru, tag, ... finder. v1.7.7
2 2
 *CtrlP* *ControlP* *'ctrlp'* *'ctrl-p'*
3 3
 ===============================================================================
4 4
 #                                                                             #
@@ -23,10 +23,10 @@ CONTENTS                                                       *ctrlp-contents*
23 23
 ===============================================================================
24 24
 INTRO                                                             *ctrlp-intro*
25 25
 
26  
-Full path fuzzy file, buffer, mru and tag finder with an intuitive interface.
27  
-Written in pure Vimscript for MacVim and Vim version 7.0+. Has full support for
28  
-Vim's |regexp| as search pattern, built-in MRU files monitoring, project's root
29  
-finder, and more.
  26
+Full path fuzzy file, buffer, mru, tag, ... finder with an intuitive interface.
  27
+Written in pure Vimscript for MacVim, gVim and Vim version 7.0+. Has full
  28
+support for Vim's |regexp| as search pattern, built-in MRU files monitoring,
  29
+project's root finder, and more.
30 30
 
31 31
 To enable optional extensions (tag, dir, rtscript...), see |ctrlp-extensions|.
32 32
 
@@ -152,22 +152,25 @@ variable: >
152 152
 <
153 153
   1 - the directory of the current file.
154 154
   2 - the nearest ancestor that contains one of these directories or files:
155  
-      .git/ .hg/ .svn/ .bzr/ _darcs/
  155
+      .git .hg .svn .bzr _darcs
156 156
   0 - don't manage working directory.
157 157
 Note: you can use b:ctrlp_working_path_mode (a |b:var|) to set this option on a
158 158
 per buffer basis.
159 159
 
160 160
                                                        *'g:ctrlp_root_markers'*
161  
-Use this to set your own root markers in addition to the default ones (.git/,
162  
-.hg/, .svn/, .bzr/, and _darcs/). Your markers will take precedence: >
  161
+Use this to set your own root markers in addition to the default ones (.git,
  162
+.hg, .svn, .bzr, and _darcs). Your markers will take precedence: >
163 163
   let g:ctrlp_root_markers = ['']
164 164
 <
165 165
 
166 166
                                                         *'g:ctrlp_use_caching'*
167  
-Set this to 0 to disable per-session caching. When disabled, caching will still
168  
-be enabled for directories that have more than 4000 files: >
  167
+Enable/Disable per-session caching: >
169 168
   let g:ctrlp_use_caching = 1
170 169
 <
  170
+  0 - Disable caching.
  171
+  1 - Enable caching.
  172
+  n - When bigger than 1, disable caching and use the number as the limit to
  173
+      enable caching again.
171 174
 Note: you can quickly purge the cache by pressing <F5> while inside CtrlP.
172 175
 
173 176
                                                 *'g:ctrlp_clear_cache_on_exit'*
@@ -250,12 +253,12 @@ when scanning large projects: >
250 253
     \ }
251 254
 <
252 255
 Examples: >
253  
-  let g:ctrlp_user_command = ['.git/', 'cd %s && git ls-files']
254  
-  let g:ctrlp_user_command = ['.hg/', 'hg --cwd %s locate -I .']
  256
+  let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files']
  257
+  let g:ctrlp_user_command = ['.hg', 'hg --cwd %s locate -I .']
255 258
   let g:ctrlp_user_command = {
256 259
     \ 'types': {
257  
-      \ 1: ['.git/', 'cd %s && git ls-files'],
258  
-      \ 2: ['.hg/', 'hg --cwd %s locate -I .'],
  260
+      \ 1: ['.git', 'cd %s && git ls-files'],
  261
+      \ 2: ['.hg', 'hg --cwd %s locate -I .'],
259 262
       \ },
260 263
     \ 'fallback': 'find %s -type f'
261 264
     \ }
@@ -286,7 +289,7 @@ If non-zero, this will enable opening multiple files with <c-z> and <c-o>: >
286 289
   let g:ctrlp_open_multiple_files = 'v'
287 290
 <
288 291
 Example: >
289  
-  let g:ctrlp_open_multiple_files = '2vr'
  292
+  let g:ctrlp_open_multiple_files = '2vjr'
290 293
 <
291 294
 For the number:
292 295
   - If given, it'll be used as the maximum number of windows or tabs to create
@@ -297,6 +300,7 @@ For the letters:
297 300
   h - each file in a new horizontal split.
298 301
   v - each file in a new vertical split.
299 302
   i - all files as hidden buffers.
  303
+  j - after opening, jump to the first opened tab or window.
300 304
   Reuse the current window:
301 305
   tr,
302 306
   hr,
@@ -312,16 +316,20 @@ Pressing <c-o> or <c-y> will then prompt for a keypress. The key can be:
312 316
   t - open in tab(s)
313 317
   h - open in horizontal split(s)
314 318
   v - open in vertical split(s)
315  
-  r - open in current window (for <c-y> only)
316  
-  <esc>, <c-c>, <c-g> - cancel and go back to the prompt.
  319
+  i - open as hidden buffers (for <c-o> only)
  320
+  c - clear the marked files (for <c-o> only)
  321
+  r - open in the current window (for <c-y> only)
  322
+  <esc>, <c-c>, <c-u> - cancel and go back to the prompt.
317 323
   <cr> - use the default behavior specified with |g:ctrlp_open_new_file| and
318 324
   |g:ctrlp_open_multiple_files|.
319 325
 
320 326
                                                     *'g:ctrlp_follow_symlinks'*
321  
-Set this to 1 to follow symbolic links when listing files: >
  327
+If non-zero, CtrlP will follow symbolic links when listing files: >
322 328
   let g:ctrlp_follow_symlinks = 0
323 329
 <
324  
-When enabled, looped internal symlinks will be ignored to avoid duplicates.
  330
+  0 - don't follow symbolic links.
  331
+  1 - follow but ignore looped internal symlinks to avoid duplicates.
  332
+  2 - follow all symlinks indiscriminately.
325 333
 
326 334
                                                         *'g:ctrlp_lazy_update'*
327 335
 Set this to 1 to enable the lazy-update feature: only update the match window
@@ -462,7 +470,7 @@ Structure of the functions: >
462 470
     " +- a:next    : The next search mode.
463 471
     " |
464 472
     " +- a:marked  : The number of marked files, or a comma separated list of
465  
-    "                the filenames.
  473
+    "                the marked filenames.
466 474
 
467 475
     return full_statusline
468 476
   endfunction
@@ -513,8 +521,8 @@ Structure of the function: >
513 521
     " |             + "first-non-tab": match until the first tab char.
514 522
     " |             + "until-last-tab": match until the last tab char.
515 523
     " |
516  
-    " +- a:ispath : Is 1 when searching in file, buffer, mru, dir, and rtscript
517  
-    " |             modes. Is 0 otherwise.
  524
+    " +- a:ispath : Is 1 when searching in file, buffer, mru, mixed, dir, and
  525
+    " |             rtscript modes. Is 0 otherwise.
518 526
     " |
519 527
     " +- a:crfile : The file in the current window. Should be excluded from the
520 528
     " |             results when a:ispath == 1.
@@ -534,6 +542,7 @@ COMMANDS                                                       *ctrlp-commands*
534 542
 
535 543
    If no argument is given, the value of |g:ctrlp_working_path_mode| will be
536 544
    used to determine the starting directory.
  545
+
537 546
    You can use <tab> to auto-complete the [starting-directory] when typing it.
538 547
 
539 548
                                                                  *:CtrlPBuffer*
@@ -550,8 +559,8 @@ COMMANDS                                                       *ctrlp-commands*
550 559
 
551 560
                                                                    *:CtrlPRoot*
552 561
 :CtrlPRoot
553  
-    This acts like |:CtrlP| with |g:ctrlp_working_path_mode| = 2 (ignores its
554  
-    current value).
  562
+    This acts like |:CtrlP| with |g:ctrlp_working_path_mode| = 2 (ignores the
  563
+    variable's current value).
555 564
 
556 565
                                                              *:CtrlPClearCache*
557 566
 :CtrlPClearCache
@@ -561,7 +570,7 @@ COMMANDS                                                       *ctrlp-commands*
561 570
 
562 571
                                                          *:CtrlPClearAllCaches*
563 572
 :CtrlPClearAllCaches
564  
-   Delete all the cache files saved in |g:ctrlp_cache_dir|.
  573
+   Delete all the cache files saved in |g:ctrlp_cache_dir| location.
565 574
 
566 575
 -------------------------------------------------------------------------------
567 576
 For commands provided by bundled extensions, see |ctrlp-extensions|.
@@ -605,7 +614,7 @@ Once inside the prompt:~
605 614
   <c-c>
606 615
     Exit CtrlP.
607 616
 
608  
-Movement:~
  617
+Moving:~
609 618
 
610 619
   <c-j>,
611 620
   <down>
@@ -645,7 +654,7 @@ Editing:~
645 654
   <c-u>
646 655
     Clear the input field.
647 656
 
648  
-Input history:~
  657
+Browsing input history:~
649 658
 
650 659
   <c-n>
651 660
     Next string in the prompt's history.
@@ -653,26 +662,26 @@ Input history:~
653 662
   <c-p>
654 663
     Previous string in the prompt's history.
655 664
 
656  
-Open a file:~
  665
+Opening/Creating a file:~
657 666
 
658 667
   <cr>
659  
-    Open selected file in the active window if possible.
  668
+    Open the selected file in the 'current' window if possible.
660 669
 
661 670
   <c-t>
662  
-    Open selected file in a new 'tab' after the last tabpage.
  671
+    Open the selected file in a new 'tab' after the last tabpage.
663 672
 
664 673
   <c-v>
665  
-    Open selected file in a 'vertical' split.
  674
+    Open the selected file in a 'vertical' split.
666 675
 
667 676
   <c-x>,
668 677
   <c-cr>,
669 678
   <c-s>
670  
-    Open selected file in a 'horizontal' split.
  679
+    Open the selected file in a 'horizontal' split.
671 680
 
672 681
   <c-y>
673 682
     Create a new file and its parent directories.
674 683
 
675  
-Open multiple files:~
  684
+Opening multiple files:~
676 685
 
677 686
   <c-z>
678 687
     - Mark/unmark a file to be opened with <c-o>.
@@ -747,8 +756,8 @@ c)  End the string with a colon ':' followed by a Vim command to execute that
747 756
 
748 757
     See also: Vim's |++opt| and |+cmd|.
749 758
 
750  
-d)  Submit two dots '..' to go backward the directory tree by 1 level. To go
751  
-    backward multiple levels, use one extra dot for each extra level:
  759
+d)  Submit two dots '..' to go upward the directory tree by 1 level. To go up
  760
+    multiple levels, use one extra dot for each extra level:
752 761
 >
753 762
          Raw input    Interpreted as
754 763
          ..           ../
@@ -766,7 +775,7 @@ e)  Similarly, submit '/' or '\' to find and go to the project's root.
766 775
     might help speeding up the intial scan (see |g:ctrlp_user_command| for more
767 776
     details).
768 777
 
769  
-    Note: e) and d) only work in file, directory and mixed modes.
  778
+    Note: d) and e) only work in file, directory and mixed modes.
770 779
 
771 780
 f)  Type the name of a non-existent file and press <c-y> to create it. Mark a
772 781
     file with <c-z> to create the new file in the same directory as the marked
@@ -975,7 +984,7 @@ MISCELLANEOUS CONFIGS                             *ctrlp-miscellaneous-configs*
975 984
 >
976 985
   function! s:setcwd()
977 986
     let cph = expand('%:p:h', 1)
978  
-    if match(cph, '\v^<.+>://') >= 0 | retu | en
  987
+    if cph =~ '^.\+://' | retu | en
979 988
     for mkr in ['.git/', '.hg/', '.svn/', '.bzr/', '_darcs/', '.vimprojects']
980 989
       let wd = call('find'.(mkr =~ '/$' ? 'dir' : 'file'), [mkr, cph.';'])
981 990
       if wd != '' | let &acd = 0 | brea | en
@@ -989,7 +998,6 @@ MISCELLANEOUS CONFIGS                             *ctrlp-miscellaneous-configs*
989 998
 
990 999
 * Using a |count| to invoke different commands using the same mapping:
991 1000
 >
992  
-  let g:ctrlp_map = '<leader>f'
993 1001
   let g:ctrlp_cmd = 'exe "CtrlP".get(["", "Buffer", "MRU"], v:count)'
994 1002
 <
995 1003
 
@@ -1021,12 +1029,16 @@ Special thanks:~
1021 1029
     * Tacahiroy <github.com/tacahiroy>
1022 1030
     * Luca Pette <github.com/lucapette>
1023 1031
     * Seth Fowler <github.com/sfowler>
  1032
+    * Lowe Thiderman <github.com/daethorian>
1024 1033
 
1025 1034
 ===============================================================================
1026 1035
 CHANGELOG                                                     *ctrlp-changelog*
1027 1036
 
1028  
-Before 2012/05/15~
  1037
+Before 2012/06/15~
1029 1038
 
  1039
+    + New value for |g:ctrlp_follow_symlinks|: 2.
  1040
+    + New value for |g:ctrlp_open_multiple_files|: 'j'.
  1041
+    + Allow using <c-t>, <c-x>, <c-v> to open files marked by <c-z>.
1030 1042
     + Extend '..' (|ctrlp-input-formats| (d))
1031 1043
     + New input format: '@cd' (|ctrlp-input-formats| (d))
1032 1044
 
45  vim/bundle/ctrlp.vim/plugin/ctrlp.vim
... ...
@@ -1,6 +1,6 @@
1 1
 " =============================================================================
2 2
 " File:          plugin/ctrlp.vim
3  
-" Description:   Fuzzy file, buffer, mru and tag finder.
  3
+" Description:   Fuzzy file, buffer, mru, tag, etc finder.
4 4
 " Author:        Kien Nguyen <github.com/kien>
5 5
 " =============================================================================
6 6
 " GetLatestVimScripts: 3736 1 :AutoInstall: ctrlp.zip
@@ -19,22 +19,21 @@ if !exists('g:ctrlp_cmd') | let g:ctrlp_cmd = 'CtrlP' | en
19 19
 
20 20
 com! -n=? -com=dir CtrlP cal ctrlp#init(0, <q-args>)
21 21
 
22  
-com! CtrlPBuffer   cal ctrlp#init(1)
23  
-com! CtrlPMRUFiles cal ctrlp#init(2)
  22
+com! -bar CtrlPBuffer   cal ctrlp#init(1)
  23
+com! -bar CtrlPMRUFiles cal ctrlp#init(2)
  24
+com! -bar CtrlPLastMode cal ctrlp#init(-1)
24 25
 
25  
-com! CtrlPLastMode cal ctrlp#init(-1)
  26
+com! -bar CtrlPClearCache     cal ctrlp#clr()
  27
+com! -bar CtrlPClearAllCaches cal ctrlp#clra()
  28
+com! -bar CtrlPReload         cal ctrlp#reset()
26 29
 
27  
-com! CtrlPClearCache     cal ctrlp#clr()
28  
-com! CtrlPClearAllCaches cal ctrlp#clra()
29  
-com! CtrlPReload         cal ctrlp#reset()
  30
+com! -bar ClearCtrlPCache     cal ctrlp#clr()
  31
+com! -bar ClearAllCtrlPCaches cal ctrlp#clra()
  32
+com! -bar ResetCtrlP          cal ctrlp#reset()
30 33
 
31  
-com! ClearCtrlPCache     cal ctrlp#clr()
32  
-com! ClearAllCtrlPCaches cal ctrlp#clra()
33  
-com! ResetCtrlP          cal ctrlp#reset()
34  
-
35  
-com! CtrlPCurWD   cal ctrlp#init(0, 0)
36  
-com! CtrlPCurFile cal ctrlp#init(0, 1)
37  
-com! CtrlPRoot    cal ctrlp#init(0, 2)
  34
+com! -bar CtrlPCurWD   cal ctrlp#init(0, 0)
  35
+com! -bar CtrlPCurFile cal ctrlp#init(0, 1)
  36
+com! -bar CtrlPRoot    cal ctrlp#init(0, 2)
38 37
 
39 38
 if g:ctrlp_map != '' && !hasmapto(':<c-u>'.g:ctrlp_cmd.'<cr>', 'n')
40 39
 	exe 'nn <silent>' g:ctrlp_map ':<c-u>'.g:ctrlp_cmd.'<cr>'
@@ -42,20 +41,20 @@ en
42 41
 
43 42
 cal ctrlp#mrufiles#init()
44 43
 
45  
-com! CtrlPTag         cal ctrlp#init(ctrlp#tag#id())
46  
-com! CtrlPQuickfix    cal ctrlp#init(ctrlp#quickfix#id())
  44
+com! -bar CtrlPTag         cal ctrlp#init(ctrlp#tag#id())
  45
+com! -bar CtrlPQuickfix    cal ctrlp#init(ctrlp#quickfix#id())
47 46
 com! -n=? -com=dir CtrlPDir
48 47
 	\ cal ctrlp#init(ctrlp#dir#id(), <q-args>)
49 48
 com! -n=? -com=buffer CtrlPBufTag
50 49
 	\ cal ctrlp#init(ctrlp#buffertag#cmd(0, <q-args>))
51  
-com! CtrlPBufTagAll   cal ctrlp#init(ctrlp#buffertag#cmd(1))
52  
-com! CtrlPRTS         cal ctrlp#init(ctrlp#rtscript#id())
53  
-com! CtrlPUndo        cal ctrlp#init(ctrlp#undo#id())
54  
-com! CtrlPLine        cal ctrlp#init(ctrlp#line#id())
  50
+com! -bar CtrlPBufTagAll   cal ctrlp#init(ctrlp#buffertag#cmd(1))
  51
+com! -bar CtrlPRTS         cal ctrlp#init(ctrlp#rtscript#id())
  52
+com! -bar CtrlPUndo        cal ctrlp#init(ctrlp#undo#id())
  53
+com! -bar CtrlPLine        cal ctrlp#init(ctrlp#line#id())
55 54
 com! -n=? -com=buffer CtrlPChange
56 55
 	\ cal ctrlp#init(ctrlp#changes#cmd(0, <q-args>))
57  
-com! CtrlPChangeAll   cal ctrlp#init(ctrlp#changes#cmd(1))
58  
-com! CtrlPMixed       cal ctrlp#init(ctrlp#mixed#id())
59  
-com! CtrlPBookmarkDir cal ctrlp#init(ctrlp#bookmarkdir#id())
  56
+com! -bar CtrlPChangeAll   cal ctrlp#init(ctrlp#changes#cmd(1))
  57
+com! -bar CtrlPMixed       cal ctrlp#init(ctrlp#mixed#id())
  58
+com! -bar CtrlPBookmarkDir cal ctrlp#init(ctrlp#bookmarkdir#id())
60 59
 com! -n=? -com=dir CtrlPBookmarkDirAdd
61 60
 	\ cal ctrlp#call('ctrlp#bookmarkdir#add', <q-args>)
65  vim/bundle/ctrlp.vim/readme.md
Source Rendered
... ...
@@ -1,58 +1,62 @@
1 1
 # ctrlp.vim
2  
-Full path fuzzy __file__, __buffer__, __mru__ and __tag__ finder for Vim.
  2
+Full path fuzzy __file__, __buffer__, __mru__, __tag__, __...__ finder for Vim.
3 3
 
4  
-* Written in pure Vimscript for MacVim and Vim 7.0+.
5  
-* Full support for Vim’s regexp as search pattern.
  4
+* Written in pure Vimscript for MacVim, gVim and Vim 7.0+.
  5
+* Full support for Vim's regexp as search patterns.
6 6
 * Built-in Most Recently Used (MRU) files monitoring.
7  
-* Built-in projects root finder.
  7
+* Built-in project's root finder.
8 8
 * Open multiple files at once.
9 9
 * Create new files and directories.
10  
-* [Extensible][3].
  10
+* [Extensible][2].
11 11
 
12 12
 ![ctrlp][1]
13 13
 
14 14
 ## Basic Usage
15  
-* Press `<c-p>` or run `:CtrlP [dir]` to invoke CtrlP in find file mode.
16  
-* Run `:CtrlPBuffer` or `:CtrlPMRU` to invoke CtrlP in buffer or MRU mode.
17  
-* Run `:CtrlPMixed` to search in a mix of files, buffers and MRU files.
  15
+* Run `:CtrlP` or `:CtrlP [starting-directory]` to invoke CtrlP in find file mode.
  16
+* Run `:CtrlPBuffer` or `:CtrlPMRU` to invoke CtrlP in find buffer or find MRU file mode.
  17
+* Run `:CtrlPMixed` to search in Files, Buffers and MRU files at the same time.
18 18
 
19  
-Once CtrlP is open:
  19
+Check `:help ctrlp-commands` and `:help ctrlp-extensions` for other commands.
20 20
 
  21
+##### Once CtrlP is open:
21 22
 * Press `<c-f>` and `<c-b>` to cycle between modes.
22 23
 * Press `<c-d>` to switch to filename only search instead of full path.
23 24
 * Press `<c-r>` to switch to regexp mode.
24 25
 * Press `<F5>` to purge the cache for the current directory and get new files.
25  
-* End the input string with a colon `:` followed by a command to execute it
26  
-after opening the file:  
27  
-Use `:45` to jump to line 45.  
28  
-Use `:/any\:string` to jump to the first instance of `any:string`.  
29  
-Use `:difft` when opening multiple files to run `:difft` on the first 4 files.
30  
-* Submit two or more dots `.` as the input string to go backward the directory
31  
-tree by one or multiple levels.
32  
-* Use `<c-y>` to create a new file and its parent dirs.
  26
+* Use `<c-n>`, `<c-p>` to select the next/previous string in the prompt's history.
  27
+* Use `<c-y>` to create a new file and its parent directories.
33 28
 * Use `<c-z>` to mark/unmark multiple files and `<c-o>` to open them.
34 29
 
  30
+Run `:help ctrlp-mappings` or submit `?` in CtrlP for more mapping help.
  31
+
  32
+* Submit two or more dots `..` to go up the directory tree by one or multiple levels.
  33
+* End the input string with a colon `:` followed by a command to execute it on the opening file(s):  
  34
+Use `:25` to jump to line 25.  
  35
+Use `:/any\:\ string` to jump to the first instance of `any: string`.  
  36
+Use `:difft` when opening multiple files to run `:difft` on the first 4 files.
  37
+
35 38
 ## Basic Options
36  
-* Change the mapping to invoke CtrlP:
  39
+* Change the default mapping and the default command to invoke CtrlP:
37 40
 
38 41
     ```vim
39 42
     let g:ctrlp_map = '<c-p>'
  43
+    let g:ctrlp_cmd = 'CtrlP'
40 44
     ```
41 45
 
42  
-* When invoked, unless a starting directory is specified, CtrlP will
43  
-automatically set its local working directory according to this variable:
  46
+* When invoked, unless a starting directory is specified, CtrlP will set its local working directory according to this variable:
44 47
 
45 48
     ```vim
46 49
     let g:ctrlp_working_path_mode = 2
47 50
     ```
48 51
 
49  
-    0 - dont manage working directory.  
  52
+    0 - don't manage working directory.  
50 53
     1 - the directory of the current file.  
51 54
     2 - the nearest ancestor that contains one of these directories or files:
52  
-    `.git/` `.hg/` `.svn/` `.bzr/` `_darcs/`
  55
+    `.git` `.hg` `.svn` `.bzr` `_darcs`
53 56
 
54  
-* To exclude files or directories from the search, use the Vim’s option
55  
-`wildignore` and/or the option `g:ctrlp_custom_ignore`:
  57
+    Define additional root markers with the `g:ctrlp_root_markers` option.
  58
+
  59
+* Exclude files and directories using Vim's `wildignore` and CtrlP's own `g:ctrlp_custom_ignore`:
56 60
 
57 61
     ```vim
58 62
     set wildignore+=*/tmp/*,*.so,*.swp,*.zip  " MacOSX/Linux
@@ -73,14 +77,11 @@ automatically set its local working directory according to this variable:
73 77
     let g:ctrlp_user_command = 'dir %s /-n /b /s /a-d'  " Windows
74 78
     ```
75 79
 
76  
-* Define an external matcher:
77  
-
78  
-    ```vim
79  
-    let g:ctrlp_match_func = {}
80  
-    ```
  80
+Check `:help ctrlp-options` for other options.
81 81
 
82  
-_Check [the docs][2] for more mappings, commands and options._
  82
+## Installation
  83
+Use your favorite method or check the homepage for a [quick installation guide][3].
83 84
 
84 85
 [1]: http://i.imgur.com/yIynr.png
85  
-[2]: https://github.com/kien/ctrlp.vim/blob/master/doc/ctrlp.txt
86  
-[3]: https://github.com/kien/ctrlp.vim/tree/extensions
  86
+[2]: https://github.com/kien/ctrlp.vim/tree/extensions
  87
+[3]: http://kien.github.com/ctrlp.vim
2  vim/bundle/delimitMate/README
... ...
@@ -1,3 +1,3 @@
1 1
 This plug-in provides automatic closing of quotes, parenthesis, brackets, etc., besides some other related features that should make your time in insert mode a little bit easier, like syntax awareness (will not insert the closing delimiter in comments and other configurable regions), <CR> and <Space> expansions (off by default), and some more.
2 2
 
3  
-Most of the features can be modified or disabled permanently, using global variables, or on a FileType basis, using :autocmd. With a couple of exceptions and limitations, these features don't brake undo, redo or history.
  3
+Most of the features can be modified or disabled permanently, using global variables, or on a FileType basis, using :autocmd. With a couple of exceptions and limitations, these features don't break undo, redo or history.
4  vim/bundle/delimitMate/autoload/delimitMate.vim
@@ -418,7 +418,9 @@ function! delimitMate#ExpandReturn() "{{{
418 418
 
419 419
 		" Not sure why I used the previous combos, but I'm sure somebody will tell
420 420
 		" me about it.
421  
-		return "\<Esc>a\<CR>\<Esc>O"
  421
+		" XXX zv prevents breaking expansion with syntax folding enabled by
  422
+		" InsertLeave.
  423
+		return "\<Esc>a\<CR>\<Esc>zvO"
422 424
 	else
423 425
 		return "\<CR>"
424 426
 	endif
17  vim/bundle/delimitMate/test/expand_cr.txt
@@ -46,5 +46,20 @@ sub foo {
46 46
 call setline(1, "\"{bracketed}")
47 47
 normal A"x
48 48
 ================================================================================
49  
-"{bracketed}"x
  49
+"{bracketed""x
  50
+--------------------------------------------------------------------------------
  51
+# Syntax folding enabled by autocmd breaks expansion. But ti can't be tested
  52
+# with :normal
  53
+new
  54
+autocmd InsertEnter * let w:fdm=&foldmethod | setl foldmethod=manual
  55
+autocmd InsertLeave * let &foldmethod = w:fdm
  56
+set foldmethod=marker
  57
+set foldmarker={,}
  58
+set foldlevel=0
  59
+set backspace=2
  60
+exec "normal iabc {\<CR>x"
  61
+================================================================================
  62
+abc {
  63
+    x
  64
+}
50 65
 --------------------------------------------------------------------------------
45  vim/bundle/gist-vim/autoload/gist.vim
... ...
@@ -1,8 +1,8 @@
1 1
 "=============================================================================
2 2
 " File: gist.vim
3 3
 " Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
4  
-" Last Change: 11-May-2012.
5  
-" Version: 6.5
  4
+" Last Change: 29-Jun-2012.
  5
+" Version: 6.7
6 6
 " WebPage: http://github.com/mattn/gist-vim
7 7
 " License: BSD
8 8
 
@@ -49,7 +49,7 @@ function! s:open_browser(url)
49 49
     silent! exec cmd
50 50
   elseif cmd =~ '^:[A-Z]'
51 51
     let cmd = substitute(cmd, '%URL%', '\=a:url', 'g')
52  
-    exec cmd url
  52
+    exec cmd
53 53
   else
54 54
     let cmd = substitute(cmd, '%URL%', '\=shellescape(a:url)', 'g')
55 55
     call system(cmd)
@@ -65,6 +65,9 @@ endfunction
65 65
 
66