comparison runtime/autoload/netrw.vim @ 2420:6de9efd58dc0 vim73

Updated runtime files. New netrw plugin version.
author Bram Moolenaar <bram@vim.org>
date Tue, 27 Jul 2010 22:50:36 +0200
parents b9e314fe473f
children e52d87a2bb3e
comparison
equal deleted inserted replaced
2419:f579b934f51d 2420:6de9efd58dc0
1 " netrw.vim: Handles file transfer and remote directory listing across 1 " netrw.vim: Handles file transfer and remote directory listing across
2 " AUTOLOAD SECTION 2 " AUTOLOAD SECTION
3 " Date: May 14, 2010 3 " Date: Jul 27, 2010
4 " Version: 138 4 " Version: 139
5 " Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> 5 " Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim 6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
7 " Copyright: Copyright (C) 1999-2009 Charles E. Campbell, Jr. {{{1 7 " Copyright: Copyright (C) 1999-2010 Charles E. Campbell, Jr. {{{1
8 " Permission is hereby granted to use and distribute this code, 8 " Permission is hereby granted to use and distribute this code,
9 " with or without modifications, provided that this copyright 9 " with or without modifications, provided that this copyright
10 " notice is copied with it. Like anything else that's free, 10 " notice is copied with it. Like anything else that's free,
11 " netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided 11 " netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
12 " *as is* and come with no warranty of any kind, either 12 " *as is* and come with no warranty of any kind, either
20 " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- 20 " =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
21 " Load Once: {{{1 21 " Load Once: {{{1
22 if &cp || exists("g:loaded_netrw") 22 if &cp || exists("g:loaded_netrw")
23 finish 23 finish
24 endif 24 endif
25 let g:loaded_netrw = "v138" 25 let g:loaded_netrw = "v139"
26 if v:version < 702 26 if v:version < 702
27 echohl WarningMsg 27 echohl WarningMsg
28 echo "***warning*** this version of netrw needs vim 7.2" 28 echo "***warning*** this version of netrw needs vim 7.2"
29 echohl Normal 29 echohl Normal
30 finish 30 finish
151 " Default values - a-c ---------- {{{3 151 " Default values - a-c ---------- {{{3
152 call s:NetrwInit("g:netrw_alto" , &sb) 152 call s:NetrwInit("g:netrw_alto" , &sb)
153 call s:NetrwInit("g:netrw_altv" , &spr) 153 call s:NetrwInit("g:netrw_altv" , &spr)
154 call s:NetrwInit("g:netrw_banner" , 1) 154 call s:NetrwInit("g:netrw_banner" , 1)
155 call s:NetrwInit("g:netrw_browse_split", 0) 155 call s:NetrwInit("g:netrw_browse_split", 0)
156 call s:NetrwInit("g:netrw_bufsettings" , "noma nomod nonu nobl nowrap ro")
156 call s:NetrwInit("g:netrw_chgwin" , -1) 157 call s:NetrwInit("g:netrw_chgwin" , -1)
157 call s:NetrwInit("g:netrw_compress" , "gzip") 158 call s:NetrwInit("g:netrw_compress" , "gzip")
158 call s:NetrwInit("g:netrw_ctags" , "ctags") 159 call s:NetrwInit("g:netrw_ctags" , "ctags")
159 if !exists("g:netrw_cursorline") 160 if !exists("g:netrw_cursorline")
160 let g:netrw_cursorline= 1 161 let g:netrw_cursorline= 1
161 let s:netrw_usercul = &cursorline 162 let s:netrw_usercul = &cursorline
162 let s:netrw_usercuc = &cursorcolumn 163 let s:netrw_usercuc = &cursorcolumn
163 endif 164 endif
164 " Default values - d-g ---------- {{{3 165 " Default values - d-g ---------- {{{3
165 call s:NetrwInit("g:netrw_dirhist_cnt" , 0) 166 call s:NetrwInit("g:netrw_dirhist_cnt" , 0)
166 call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf"}') 167 call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf", ".xz" : "unxz" }')
167 call s:NetrwInit("g:netrw_dirhistmax" , 10) 168 call s:NetrwInit("g:netrw_dirhistmax" , 10)
168 call s:NetrwInit("g:netrw_fastbrowse" , 1) 169 call s:NetrwInit("g:netrw_fastbrowse" , 1)
169 call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$') 170 call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$')
170 if !exists("g:netrw_ftp_list_cmd") 171 if !exists("g:netrw_ftp_list_cmd")
171 if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin) 172 if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)
323 let {a:vt}netrw_optionsave= 1 324 let {a:vt}netrw_optionsave= 1
324 else 325 else
325 " call Dret("s:NetrwOptionSave : options already saved") 326 " call Dret("s:NetrwOptionSave : options already saved")
326 return 327 return
327 endif 328 endif
328 " call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist")) 329 " call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist")." diff=".&l:diff)
329 330
330 " Save current settings and current directory 331 " Save current settings and current directory
331 let s:yykeep = @@ 332 let s:yykeep = @@
332 if exists("&l:acd") 333 if exists("&l:acd")
333 let {a:vt}netrw_acdkeep = &l:acd 334 let {a:vt}netrw_acdkeep = &l:acd
338 let {a:vt}netrw_cikeep = &l:ci 339 let {a:vt}netrw_cikeep = &l:ci
339 let {a:vt}netrw_cinkeep = &l:cin 340 let {a:vt}netrw_cinkeep = &l:cin
340 let {a:vt}netrw_cinokeep = &l:cino 341 let {a:vt}netrw_cinokeep = &l:cino
341 let {a:vt}netrw_comkeep = &l:com 342 let {a:vt}netrw_comkeep = &l:com
342 let {a:vt}netrw_cpokeep = &l:cpo 343 let {a:vt}netrw_cpokeep = &l:cpo
344 let {a:vt}netrw_diffkeep = &l:diff
343 if g:netrw_keepdir 345 if g:netrw_keepdir
344 let {a:vt}netrw_dirkeep = getcwd() 346 let {a:vt}netrw_dirkeep = getcwd()
345 endif 347 endif
346 let {a:vt}netrw_fokeep = &l:fo " formatoptions 348 let {a:vt}netrw_fokeep = &l:fo " formatoptions
347 let {a:vt}netrw_gdkeep = &l:gd " gdefault 349 let {a:vt}netrw_gdkeep = &l:gd " gdefault
348 let {a:vt}netrw_hidkeep = &l:hidden 350 let {a:vt}netrw_hidkeep = &l:hidden
349 let {a:vt}netrw_imkeep = &l:im 351 let {a:vt}netrw_imkeep = &l:im
350 let {a:vt}netrw_magickeep = &l:magic 352 let {a:vt}netrw_magickeep = &l:magic
351 let {a:vt}netrw_repkeep = &l:report 353 let {a:vt}netrw_repkeep = &l:report
354 let {a:vt}netrw_selkeep = &l:sel
352 let {a:vt}netrw_spellkeep = &l:spell 355 let {a:vt}netrw_spellkeep = &l:spell
353 let {a:vt}netrw_twkeep = &l:tw " textwidth 356 let {a:vt}netrw_twkeep = &l:tw " textwidth
354 let {a:vt}netrw_wigkeep = &l:wig " wildignore 357 let {a:vt}netrw_wigkeep = &l:wig " wildignore
355 if has("win32") && !has("win95") 358 if has("win32") && !has("win95")
356 let {a:vt}netrw_swfkeep = &l:swf " swapfile 359 let {a:vt}netrw_swfkeep = &l:swf " swapfile
396 if exists("{a:vt}netrw_cikeep") |let &l:ci = {a:vt}netrw_cikeep |unlet {a:vt}netrw_cikeep |endif 399 if exists("{a:vt}netrw_cikeep") |let &l:ci = {a:vt}netrw_cikeep |unlet {a:vt}netrw_cikeep |endif
397 if exists("{a:vt}netrw_cinkeep") |let &l:cin = {a:vt}netrw_cinkeep |unlet {a:vt}netrw_cinkeep |endif 400 if exists("{a:vt}netrw_cinkeep") |let &l:cin = {a:vt}netrw_cinkeep |unlet {a:vt}netrw_cinkeep |endif
398 if exists("{a:vt}netrw_cinokeep") |let &l:cino = {a:vt}netrw_cinokeep |unlet {a:vt}netrw_cinokeep |endif 401 if exists("{a:vt}netrw_cinokeep") |let &l:cino = {a:vt}netrw_cinokeep |unlet {a:vt}netrw_cinokeep |endif
399 if exists("{a:vt}netrw_comkeep") |let &l:com = {a:vt}netrw_comkeep |unlet {a:vt}netrw_comkeep |endif 402 if exists("{a:vt}netrw_comkeep") |let &l:com = {a:vt}netrw_comkeep |unlet {a:vt}netrw_comkeep |endif
400 if exists("{a:vt}netrw_cpokeep") |let &l:cpo = {a:vt}netrw_cpokeep |unlet {a:vt}netrw_cpokeep |endif 403 if exists("{a:vt}netrw_cpokeep") |let &l:cpo = {a:vt}netrw_cpokeep |unlet {a:vt}netrw_cpokeep |endif
404 if exists("{a:vt}netrw_diffkeep") |let &l:diff = {a:vt}netrw_diffkeep |unlet {a:vt}netrw_diffkeep |endif
401 if exists("{a:vt}netrw_dirkeep") && isdirectory({a:vt}netrw_dirkeep) && g:netrw_keepdir 405 if exists("{a:vt}netrw_dirkeep") && isdirectory({a:vt}netrw_dirkeep) && g:netrw_keepdir
402 let dirkeep = substitute({a:vt}netrw_dirkeep,'\\','/','g') 406 let dirkeep = substitute({a:vt}netrw_dirkeep,'\\','/','g')
403 if exists("{a:vt}netrw_dirkeep") |exe "keepjumps lcd ".fnameescape(dirkeep)|unlet {a:vt}netrw_dirkeep |endif 407 if exists("{a:vt}netrw_dirkeep") |exe "keepjumps lcd ".fnameescape(dirkeep)|unlet {a:vt}netrw_dirkeep |endif
404 endif 408 endif
405 if exists("{a:vt}netrw_fokeep") |let &l:fo = {a:vt}netrw_fokeep |unlet {a:vt}netrw_fokeep |endif 409 if exists("{a:vt}netrw_fokeep") |let &l:fo = {a:vt}netrw_fokeep |unlet {a:vt}netrw_fokeep |endif
406 if exists("{a:vt}netrw_gdkeep") |let &l:gd = {a:vt}netrw_gdkeep |unlet {a:vt}netrw_gdkeep |endif 410 if exists("{a:vt}netrw_gdkeep") |let &l:gd = {a:vt}netrw_gdkeep |unlet {a:vt}netrw_gdkeep |endif
407 if exists("{a:vt}netrw_hidkeep") |let &l:hidden = {a:vt}netrw_hidkeep |unlet {a:vt}netrw_hidkeep |endif 411 if exists("{a:vt}netrw_hidkeep") |let &l:hidden = {a:vt}netrw_hidkeep |unlet {a:vt}netrw_hidkeep |endif
408 if exists("{a:vt}netrw_imkeep") |let &l:im = {a:vt}netrw_imkeep |unlet {a:vt}netrw_imkeep |endif 412 if exists("{a:vt}netrw_imkeep") |let &l:im = {a:vt}netrw_imkeep |unlet {a:vt}netrw_imkeep |endif
409 if exists("{a:vt}netrw_magic") |let &l:magic = {a:vt}netrw_magic |unlet {a:vt}netrw_magic |endif 413 if exists("{a:vt}netrw_magic") |let &l:magic = {a:vt}netrw_magic |unlet {a:vt}netrw_magic |endif
410 if exists("{a:vt}netrw_repkeep") |let &l:report = {a:vt}netrw_repkeep |unlet {a:vt}netrw_repkeep |endif 414 if exists("{a:vt}netrw_repkeep") |let &l:report = {a:vt}netrw_repkeep |unlet {a:vt}netrw_repkeep |endif
415 if exists("{a:vt}netrw_selkeep") |let &l:sel = {a:vt}netrw_selkeep |unlet {a:vt}netrw_selkeep |endif
411 if exists("{a:vt}netrw_spellkeep")|let &l:spell = {a:vt}netrw_spellkeep |unlet {a:vt}netrw_spellkeep|endif 416 if exists("{a:vt}netrw_spellkeep")|let &l:spell = {a:vt}netrw_spellkeep |unlet {a:vt}netrw_spellkeep|endif
412 if exists("{a:vt}netrw_twkeep") |let &l:tw = {a:vt}netrw_twkeep |unlet {a:vt}netrw_twkeep |endif 417 if exists("{a:vt}netrw_twkeep") |let &l:tw = {a:vt}netrw_twkeep |unlet {a:vt}netrw_twkeep |endif
413 if exists("{a:vt}netrw_wigkeep") |let &l:wig = {a:vt}netrw_wigkeep |unlet {a:vt}netrw_wigkeep |endif 418 if exists("{a:vt}netrw_wigkeep") |let &l:wig = {a:vt}netrw_wigkeep |unlet {a:vt}netrw_wigkeep |endif
414 if exists("s:yykeep") |let @@ = s:yykeep |unlet s:yykeep |endif 419 if exists("s:yykeep") |let @@ = s:yykeep |unlet s:yykeep |endif
415 if exists("{a:vt}netrw_swfkeep") 420 if exists("{a:vt}netrw_swfkeep")
431 if exists("{a:vt}netrw_regslash")|silent! let @/= {a:vt}netrw_regslash|unlet {a:vt}netrw_regslash|endif 436 if exists("{a:vt}netrw_regslash")|silent! let @/= {a:vt}netrw_regslash|unlet {a:vt}netrw_regslash|endif
432 437
433 " call Decho("g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd) 438 " call Decho("g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd)
434 " call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist")) 439 " call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist"))
435 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) 440 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap)
441 " call Decho("diff=".&l:diff." win#".winnr()." w:netrw_diffkeep=".(exists("w:netrw_diffkeep")? w:netrw_diffkeep : "doesn't exist"))
436 " call Dret("s:NetrwOptionRestore : win#".winnr()." buf#".bufnr("%")) 442 " call Dret("s:NetrwOptionRestore : win#".winnr()." buf#".bufnr("%"))
437 endfun 443 endfun
438 444
439 " --------------------------------------------------------------------- 445 " ---------------------------------------------------------------------
440 " s:NetrwSafeOptions: sets options to help netrw do its job {{{2 446 " s:NetrwSafeOptions: sets options to help netrw do its job {{{2
448 setlocal nocin noai nobomb noci magic nospell nohid wig= noaw noim 454 setlocal nocin noai nobomb noci magic nospell nohid wig= noaw noim
449 setlocal fo=nroql2 455 setlocal fo=nroql2
450 setlocal tw=0 456 setlocal tw=0
451 setlocal report=10000 457 setlocal report=10000
452 setlocal isk+=@ isk+=* isk+=/ 458 setlocal isk+=@ isk+=* isk+=/
459 setlocal sel=inclusive
453 if g:netrw_use_noswf && has("win32") && !has("win95") 460 if g:netrw_use_noswf && has("win32") && !has("win95")
454 setlocal noswf 461 setlocal noswf
455 endif 462 endif
456 call s:NetrwCursorline() 463 call s:NetrwCursorline()
457 464
458 " allow the user to override safe options 465 " allow the user to override safe options
466 " call Decho("ft<".&ft."> ei=".&ei)
459 if &ft == "netrw" 467 if &ft == "netrw"
460 " call Decho("do any netrw FileType autocmds") 468 " call Decho("do any netrw FileType autocmds")
461 silent keepalt keepjumps doau FileType netrw 469 silent keepalt keepjumps doau FileType netrw
462 endif 470 endif
463 471
918 if exists("b:netrw_method") 926 if exists("b:netrw_method")
919 " call Decho("cleanup b:netrw_method and b:netrw_fname") 927 " call Decho("cleanup b:netrw_method and b:netrw_fname")
920 unlet b:netrw_method 928 unlet b:netrw_method
921 unlet b:netrw_fname 929 unlet b:netrw_fname
922 endif 930 endif
923 if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't' 931 if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't' && tmpfile !~ '.tar.xz$' && tmpfile !~ '.txz'
924 " call Decho("cleanup by deleting tmpfile<".tmpfile.">") 932 " call Decho("cleanup by deleting tmpfile<".tmpfile.">")
925 call s:NetrwDelete(tmpfile) 933 call s:NetrwDelete(tmpfile)
926 endif 934 endif
927 call s:NetrwOptionRestore("w:") 935 call s:NetrwOptionRestore("w:")
928 936
1369 if g:netrw_cygwin 1377 if g:netrw_cygwin
1370 let tfile= substitute(a:tfile,'/cygdrive/\(.\)','\1:','') 1378 let tfile= substitute(a:tfile,'/cygdrive/\(.\)','\1:','')
1371 else 1379 else
1372 let tfile= a:tfile 1380 let tfile= a:tfile
1373 endif 1381 endif
1374 " call Decho("exe silent! keepalt file ".fnameescape(tfile)) 1382 " call Decho("exe sil! keepalt file ".fnameescape(tfile))
1375 exe "silent! keepalt file ".fnameescape(tfile) 1383 exe "sil! keepalt file ".fnameescape(tfile)
1376 1384
1377 " edit temporary file (ie. read the temporary file in) 1385 " edit temporary file (ie. read the temporary file in)
1378 if rfile =~ '\.zip$' 1386 if rfile =~ '\.zip$'
1379 " call Decho("handling remote zip file with zip#Browse(tfile<".tfile.">)") 1387 " call Decho("handling remote zip file with zip#Browse(tfile<".tfile.">)")
1380 call zip#Browse(tfile) 1388 call zip#Browse(tfile)
1381 elseif rfile =~ '\.tar$' 1389 elseif rfile =~ '\.tar$'
1382 " call Decho("handling remote tar file with tar#Browse(tfile<".tfile.">)") 1390 " call Decho("handling remote tar file with tar#Browse(tfile<".tfile.">)")
1383 call tar#Browse(tfile) 1391 call tar#Browse(tfile)
1384 elseif rfile =~ '\.tar\.gz' 1392 elseif rfile =~ '\.tar\.gz$'
1385 " call Decho("handling remote gzip-compressed tar file") 1393 " call Decho("handling remote gzip-compressed tar file")
1386 call tar#Browse(tfile) 1394 call tar#Browse(tfile)
1387 elseif rfile =~ '\.tar\.bz2' 1395 elseif rfile =~ '\.tar\.bz2$'
1388 " call Decho("handling remote bz2-compressed tar file") 1396 " call Decho("handling remote bz2-compressed tar file")
1397 call tar#Browse(tfile)
1398 elseif rfile =~ '\.tar\.xz$'
1399 " call Decho("handling remote xz-compressed tar file")
1400 call tar#Browse(tfile)
1401 elseif rfile =~ '\.txz$'
1402 " call Decho("handling remote xz-compressed tar file (.txz)")
1389 call tar#Browse(tfile) 1403 call tar#Browse(tfile)
1390 else 1404 else
1391 " call Decho("edit temporary file") 1405 " call Decho("edit temporary file")
1392 e! 1406 e!
1393 endif 1407 endif
1394 1408
1395 " rename buffer back to remote filename 1409 " rename buffer back to remote filename
1396 " call Decho("exe silent! keepalt file ".fnameescape(rfile)) 1410 " call Decho("exe sil! keepalt file ".fnameescape(rfile))
1397 exe "sil! keepalt file ".fnameescape(rfile) 1411 exe "sil! keepalt file ".fnameescape(rfile)
1398 filetype detect 1412 filetype detect
1399 " call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!") 1413 " call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!")
1400 let line1 = 1 1414 let line1 = 1
1401 let line2 = line("$") 1415 let line2 = line("$")
2240 " call Decho("tab#".tabpagenr()." win#".winnr()) 2254 " call Decho("tab#".tabpagenr()." win#".winnr())
2241 " call Dredir("ls!") 2255 " call Dredir("ls!")
2242 if !exists("s:netrw_initbookhist") 2256 if !exists("s:netrw_initbookhist")
2243 call s:NetrwBookHistRead() 2257 call s:NetrwBookHistRead()
2244 endif 2258 endif
2245 " call FOTEST(7)
2246 "call Decho("COMBAK#01 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2247 2259
2248 " simplify the dirname (especially for ".."s in dirnames) 2260 " simplify the dirname (especially for ".."s in dirnames)
2249 if a:dirname !~ '^\a\+://' 2261 if a:dirname !~ '^\a\+://'
2250 let dirname= simplify(a:dirname) 2262 let dirname= simplify(a:dirname)
2251 else 2263 else
2252 let dirname= a:dirname 2264 let dirname= a:dirname
2253 endif 2265 endif
2254 " call FOTEST(8)
2255 "call Decho("COMBAK#02 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2256 2266
2257 if exists("s:netrw_skipbrowse") 2267 if exists("s:netrw_skipbrowse")
2258 unlet s:netrw_skipbrowse 2268 unlet s:netrw_skipbrowse
2259 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) 2269 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap)
2260 " call Dret("s:NetrwBrowse : s:netrw_skipbrowse=".s:netrw_skipbrowse) 2270 " call Dret("s:NetrwBrowse : s:netrw_skipbrowse=".s:netrw_skipbrowse)
2269 call netrw#ErrorMsg(s:ERROR,"netrw can't run -- your vim is missing fnameescape()",70) 2279 call netrw#ErrorMsg(s:ERROR,"netrw can't run -- your vim is missing fnameescape()",70)
2270 " call Dret("s:NetrwBrowse : missing fnameescape()") 2280 " call Dret("s:NetrwBrowse : missing fnameescape()")
2271 return 2281 return
2272 endif 2282 endif
2273 2283
2274 call s:NetrwOptionSave("w:") 2284 call s:NetrwOptionSave("w:")
2275 " call FOTEST(9)
2276 "call Decho("COMBAK#03 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2277 2285
2278 " re-instate any marked files 2286 " re-instate any marked files
2279 if exists("s:netrwmarkfilelist_{bufnr('%')}") 2287 if exists("s:netrwmarkfilelist_{bufnr('%')}")
2280 " call Decho("clearing marked files") 2288 " call Decho("clearing marked files")
2281 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" 2289 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/"
2282 endif 2290 endif
2283 " call FOTEST(10)
2284 "call Decho("COMBAK#04 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2285 2291
2286 if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep 2292 if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep
2287 " call Decho("handle w:netrw_acdkeep:") 2293 " call Decho("handle w:netrw_acdkeep:")
2288 " call Decho("keepjumps lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")") 2294 " call Decho("keepjumps lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")")
2289 exe 'keepj lcd '.fnameescape(dirname) 2295 exe 'keepj lcd '.fnameescape(dirname)
2306 call s:NetrwEnew(dirname) 2312 call s:NetrwEnew(dirname)
2307 call s:NetrwSafeOptions() 2313 call s:NetrwSafeOptions()
2308 setlocal ma noro 2314 setlocal ma noro
2309 " call Decho("setlocal ma noro") 2315 " call Decho("setlocal ma noro")
2310 let b:netrw_curdir= dirname 2316 let b:netrw_curdir= dirname
2311 " call Decho("exe silent! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)." (bt=".&bt.")") 2317 " call Decho("exe sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)." (bt=".&bt.")")
2312 exe "sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path) 2318 exe "sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)
2313 exe "sil keepalt doau BufReadPre ".fnameescape(s:fname) 2319 exe "sil! keepalt doau BufReadPre ".fnameescape(s:fname)
2314 silent call netrw#NetRead(2,s:method."://".s:user.s:machine."/".s:path) 2320 silent call netrw#NetRead(2,s:method."://".s:user.s:machine."/".s:path)
2315 if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz' 2321 if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz' && s:path !~ '.tar.xz' && s:path !~ '.txz'
2316 " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error 2322 " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error
2317 exe "sil keepalt doau BufReadPost ".fnameescape(s:fname) 2323 exe "sil keepalt doau BufReadPost ".fnameescape(s:fname)
2318 endif 2324 endif
2319 2325
2320 " save certain window-oriented variables into buffer-oriented variables {{{3 2326 " save certain window-oriented variables into buffer-oriented variables {{{3
2324 2330
2325 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) 2331 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap)
2326 " call Dret("s:NetrwBrowse : file<".s:fname.">") 2332 " call Dret("s:NetrwBrowse : file<".s:fname.">")
2327 return 2333 return
2328 endif 2334 endif
2329 " call FOTEST(11)
2330 "call Decho("COMBAK#05 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2331 2335
2332 " use buffer-oriented WinVars if buffer ones exist but window ones don't {{{3 2336 " use buffer-oriented WinVars if buffer ones exist but window ones don't {{{3
2333 call s:UseBufWinVars() 2337 call s:UseBufWinVars()
2334 2338
2335 " set up some variables {{{3 2339 " set up some variables {{{3
2337 let dirname = dirname 2341 let dirname = dirname
2338 let s:last_sort_by = g:netrw_sort_by 2342 let s:last_sort_by = g:netrw_sort_by
2339 2343
2340 " set up menu {{{3 2344 " set up menu {{{3
2341 call s:NetrwMenu(1) 2345 call s:NetrwMenu(1)
2342 " call FOTEST(12)
2343 "call Decho("COMBAK#06 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2344 2346
2345 " set up buffer {{{3 2347 " set up buffer {{{3
2346 let reusing= s:NetrwGetBuffer(a:islocal,dirname) 2348 let reusing= s:NetrwGetBuffer(a:islocal,dirname)
2347 " maintain markfile highlighting 2349 " maintain markfile highlighting
2348 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != "" 2350 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != ""
2358 setlocal noma nomod nowrap 2360 setlocal noma nomod nowrap
2359 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) 2361 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap)
2360 " call Dret("s:NetrwBrowse : re-using buffer") 2362 " call Dret("s:NetrwBrowse : re-using buffer")
2361 return 2363 return
2362 endif 2364 endif
2363 "" call FOTEST(13) " PROBLEM WITH LISTING
2364 "call Decho("COMBAK#07 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2365 2365
2366 " set b:netrw_curdir to the new directory name {{{3 2366 " set b:netrw_curdir to the new directory name {{{3
2367 " call Decho("set b:netrw_curdir to the new directory name: (buf#".bufnr("%").")") 2367 " call Decho("set b:netrw_curdir to the new directory name: (buf#".bufnr("%").")")
2368 let b:netrw_curdir= dirname 2368 let b:netrw_curdir= dirname
2369 if b:netrw_curdir =~ '[/\\]$' 2369 if b:netrw_curdir =~ '[/\\]$'
2370 let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e') 2370 let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
2371 endif 2371 endif
2372 if b:netrw_curdir == '' 2372 if b:netrw_curdir == ''
2373 if has("amiga") 2373 if has("amiga")
2381 endif 2381 endif
2382 if !a:islocal && b:netrw_curdir !~ '/$' 2382 if !a:islocal && b:netrw_curdir !~ '/$'
2383 let b:netrw_curdir= b:netrw_curdir.'/' 2383 let b:netrw_curdir= b:netrw_curdir.'/'
2384 endif 2384 endif
2385 " call Decho("b:netrw_curdir<".b:netrw_curdir.">") 2385 " call Decho("b:netrw_curdir<".b:netrw_curdir.">")
2386 "" call FOTEST(14) " PROBLEM WITH LISTING
2387 "call Decho("COMBAK#08 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2388 2386
2389 " ------------ 2387 " ------------
2390 " (local only) {{{3 2388 " (local only) {{{3
2391 " ------------ 2389 " ------------
2392 if a:islocal 2390 if a:islocal
2454 return 2452 return
2455 endif 2453 endif
2456 let b:netrw_curdir= dirname 2454 let b:netrw_curdir= dirname
2457 " call Decho("b:netrw_curdir<".b:netrw_curdir."> (remote)") 2455 " call Decho("b:netrw_curdir<".b:netrw_curdir."> (remote)")
2458 endif " (additional remote handling) 2456 endif " (additional remote handling)
2459 "" call FOTEST(15) " PROBLEM WITH LISTING
2460 "call Decho("COMBAK#09 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2461 2457
2462 " ----------------------- 2458 " -----------------------
2463 " Directory Listing: {{{3 2459 " Directory Listing: {{{3
2464 " ----------------------- 2460 " -----------------------
2465 call s:BrowserMaps(a:islocal) 2461 call s:BrowserMaps(a:islocal)
2466 "" call FOTEST(16) " PROBLEM WITH LISTING
2467 call s:PerformListing(a:islocal) 2462 call s:PerformListing(a:islocal)
2468 " call FOTEST(17)
2469 "call Decho("COMBAK#10 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
2470 2463
2471 " The s:LocalBrowseShellCmdRefresh() function is called by an autocmd 2464 " The s:LocalBrowseShellCmdRefresh() function is called by an autocmd
2472 " installed by s:LocalFastBrowser() when g:netrw_fastbrowse <= 1 (ie. slow, medium speed). 2465 " installed by s:LocalFastBrowser() when g:netrw_fastbrowse <= 1 (ie. slow, medium speed).
2473 " However, s:NetrwBrowse() causes the ShellCmdPost event itself to fire once; setting 2466 " However, s:NetrwBrowse() causes the ShellCmdPost event itself to fire once; setting
2474 " the variable below avoids that second refresh of the screen. The s:LocalBrowseShellCmdRefresh() 2467 " the variable below avoids that second refresh of the screen. The s:LocalBrowseShellCmdRefresh()
2532 " call Decho("find NetrwTreeList buffer if there is one") 2525 " call Decho("find NetrwTreeList buffer if there is one")
2533 if exists("w:netrw_treebufnr") && w:netrw_treebufnr > 0 2526 if exists("w:netrw_treebufnr") && w:netrw_treebufnr > 0
2534 " call Decho(" re-use w:netrw_treebufnr=".w:netrw_treebufnr) 2527 " call Decho(" re-use w:netrw_treebufnr=".w:netrw_treebufnr)
2535 let eikeep= &ei 2528 let eikeep= &ei
2536 set ei=all 2529 set ei=all
2537 exe "b ".w:netrw_treebufnr 2530 exe "sil! b ".w:netrw_treebufnr
2538 let &ei= eikeep 2531 let &ei= eikeep
2539 " call Dret("s:NetrwGetBuffer : bufnum#".w:netrw_treebufnr."<NetrwTreeListing>") 2532 " call Dret("s:NetrwGetBuffer : bufnum#".w:netrw_treebufnr."<NetrwTreeListing>")
2540 return 2533 return
2541 endif 2534 endif
2542 let bufnum= -1 2535 let bufnum= -1
2612 " call Decho(" findbuf4: bufnum=".bufnum." (ibuf=".ibuf." buflast=".buflast.")") 2605 " call Decho(" findbuf4: bufnum=".bufnum." (ibuf=".ibuf." buflast=".buflast.")")
2613 endif 2606 endif
2614 endif 2607 endif
2615 2608
2616 " get enew buffer and name it -or- re-use buffer {{{3 2609 " get enew buffer and name it -or- re-use buffer {{{3
2617 keepj mark ' 2610 sil! keepj mark '
2618 if bufnum < 0 || !bufexists(bufnum) 2611 if bufnum < 0 || !bufexists(bufnum)
2619 " call Decho("--get enew buffer and name it (bufexists([bufnum=".bufnum."])=".bufexists(bufnum).")") 2612 " call Decho("--get enew buffer and name it (bufexists([bufnum=".bufnum."])=".bufexists(bufnum).")")
2620 call s:NetrwEnew(dirname) 2613 call s:NetrwEnew(dirname)
2621 " call Decho(" got enew buffer#".bufnr("%")." (altbuf<".expand("#").">)") 2614 " call Decho(" got enew buffer#".bufnr("%")." (altbuf<".expand("#").">)")
2622 " name the buffer 2615 " name the buffer
2627 let s:netrw_treelistnum= 1 2620 let s:netrw_treelistnum= 1
2628 else 2621 else
2629 let s:netrw_treelistnum= s:netrw_treelistnum + 1 2622 let s:netrw_treelistnum= s:netrw_treelistnum + 1
2630 endif 2623 endif
2631 let w:netrw_treebufnr= bufnr("%") 2624 let w:netrw_treebufnr= bufnr("%")
2632 " call Decho(" exe silent! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum)) 2625 " call Decho(" exe sil! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum))
2633 exe 'sil! keepalt file NetrwTreeListing\ '.fnameescape(s:netrw_treelistnum) 2626 exe 'sil! keepalt file NetrwTreeListing\ '.fnameescape(s:netrw_treelistnum)
2634 set bt=nofile noswf 2627 set bt=nofile noswf
2635 nnoremap <silent> <buffer> [ :silent call <SID>TreeListMove('[')<cr> 2628 nnoremap <silent> <buffer> [ :silent call <SID>TreeListMove('[')<cr>
2636 nnoremap <silent> <buffer> ] :silent call <SID>TreeListMove(']')<cr> 2629 nnoremap <silent> <buffer> ] :silent call <SID>TreeListMove(']')<cr>
2637 nnoremap <silent> <buffer> [[ :silent call <SID>TreeListMove('[')<cr> 2630 nnoremap <silent> <buffer> [[ :silent call <SID>TreeListMove('[')<cr>
2639 " call Decho(" tree listing#".s:netrw_treelistnum." bufnr=".w:netrw_treebufnr) 2632 " call Decho(" tree listing#".s:netrw_treelistnum." bufnr=".w:netrw_treebufnr)
2640 else 2633 else
2641 " let v:errmsg= "" " Decho 2634 " let v:errmsg= "" " Decho
2642 let escdirname= fnameescape(dirname) 2635 let escdirname= fnameescape(dirname)
2643 " call Decho(" errmsg<".v:errmsg."> bufnr(escdirname<".escdirname.">)=".bufnr(escdirname)." bufname()<".bufname(bufnr(escdirname)).">") 2636 " call Decho(" errmsg<".v:errmsg."> bufnr(escdirname<".escdirname.">)=".bufnr(escdirname)." bufname()<".bufname(bufnr(escdirname)).">")
2644 " call Decho(' exe silent! keepalt file '.escdirname) 2637 " call Decho(' exe sil! keepalt file '.escdirname)
2645 " let v:errmsg= "" " Decho 2638 " let v:errmsg= "" " Decho
2646 exe 'sil! keepalt file '.escdirname 2639 exe 'sil! keepalt file '.escdirname
2647 " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") 2640 " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">")
2648 endif 2641 endif
2649 " call Decho(" named enew buffer#".bufnr("%")."<".bufname("%").">") 2642 " call Decho(" named enew buffer#".bufnr("%")."<".bufname("%").">")
2652 " call Decho("--re-use buffer#".bufnum." (bufexists([bufnum=".bufnum."])=".bufexists(bufnum).")") 2645 " call Decho("--re-use buffer#".bufnum." (bufexists([bufnum=".bufnum."])=".bufexists(bufnum).")")
2653 let eikeep= &ei 2646 let eikeep= &ei
2654 set ei=all 2647 set ei=all
2655 if getline(2) =~ '^" Netrw Directory Listing' 2648 if getline(2) =~ '^" Netrw Directory Listing'
2656 " call Decho(" re-use buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: keepalt b ".bufnum) 2649 " call Decho(" re-use buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: keepalt b ".bufnum)
2657 exe "keepalt b ".bufnum 2650 exe "sil! keepalt b ".bufnum
2658 else 2651 else
2659 " call Decho(" reusing buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: b ".bufnum) 2652 " call Decho(" reusing buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: b ".bufnum)
2660 exe "b ".bufnum 2653 exe "sil! b ".bufnum
2661 endif 2654 endif
2662 if bufname("%") == '.' 2655 if bufname("%") == '.'
2663 " call Decho("exe silent! keepalt file ".fnameescape(getcwd())) 2656 " call Decho("exe sil! keepalt file ".fnameescape(getcwd()))
2664 exe "sil! keepalt file ".fnameescape(getcwd()) 2657 exe "sil! keepalt file ".fnameescape(getcwd())
2665 endif 2658 endif
2666 let &ei= eikeep 2659 let &ei= eikeep
2667 if line("$") <= 1 2660 if line("$") <= 1
2668 call s:NetrwListSettings(a:islocal) 2661 call s:NetrwListSettings(a:islocal)
2687 " med 1 D H 2680 " med 1 D H
2688 " fast 2 H H 2681 " fast 2 H H
2689 " call Decho("--do netrw settings: make this buffer#".bufnr("%")." not-a-file, modifiable, not line-numbered, etc--") 2682 " call Decho("--do netrw settings: make this buffer#".bufnr("%")." not-a-file, modifiable, not line-numbered, etc--")
2690 let fname= expand("%") 2683 let fname= expand("%")
2691 call s:NetrwListSettings(a:islocal) 2684 call s:NetrwListSettings(a:islocal)
2692 " call Decho("exe keepalt file ".fnameescape(fname)) 2685 " call Decho("exe sil! keepalt file ".fnameescape(fname))
2693 exe "keepalt file ".fnameescape(fname) 2686 exe "sil! keepalt file ".fnameescape(fname)
2694 2687
2695 " delete all lines from buffer {{{3 2688 " delete all lines from buffer {{{3
2696 " call Decho("--delete all lines from buffer--") 2689 " call Decho("--delete all lines from buffer--")
2697 " call Decho(" clear buffer<".expand("%")."> with :%d") 2690 " call Decho(" clear buffer<".expand("%")."> with :%d")
2698 sil! keepalt keepj %d 2691 sil! keepalt keepj %d
2829 fun! s:NetrwListSettings(islocal) 2822 fun! s:NetrwListSettings(islocal)
2830 " call Dfunc("s:NetrwListSettings(islocal=".a:islocal.")") 2823 " call Dfunc("s:NetrwListSettings(islocal=".a:islocal.")")
2831 let fname= bufname("%") 2824 let fname= bufname("%")
2832 " call Decho("setlocal bt=nofile nobl ma nonu nowrap noro") 2825 " call Decho("setlocal bt=nofile nobl ma nonu nowrap noro")
2833 setlocal bt=nofile nobl ma nonu nowrap noro 2826 setlocal bt=nofile nobl ma nonu nowrap noro
2834 " call Decho("exe keepalt file ".fnameescape(fname)) 2827 " call Decho("exe sil! keepalt file ".fnameescape(fname))
2835 exe "keepalt file ".fnameescape(fname) 2828 exe "sil! keepalt file ".fnameescape(fname)
2836 if g:netrw_use_noswf 2829 if g:netrw_use_noswf
2837 setlocal noswf 2830 setlocal noswf
2838 endif 2831 endif
2839 " call Dredir("ls!") 2832 " call Dredir("ls!")
2840 " call Decho("exe setlocal ts=".g:netrw_maxfilenamelen) 2833 " call Decho("exe setlocal ts=".g:netrw_maxfilenamelen)
2889 setlocal ma noro 2882 setlocal ma noro
2890 " call Decho("setlocal ma noro") 2883 " call Decho("setlocal ma noro")
2891 2884
2892 " clear buffer - this will cause NetrwBrowse/LocalBrowseCheck to do a refresh 2885 " clear buffer - this will cause NetrwBrowse/LocalBrowseCheck to do a refresh
2893 " call Decho("clear buffer<".expand("%")."> with :%d") 2886 " call Decho("clear buffer<".expand("%")."> with :%d")
2894 keepj %d 2887 sil! keepj %d
2895 " following prevents tree listing buffer from being marked "modified" 2888 " following prevents tree listing buffer from being marked "modified"
2896 setlocal nomod 2889 setlocal nomod
2897 2890
2898 " refresh the listing 2891 " refresh the listing
2899 " call Decho("refresh the listing") 2892 " call Decho("refresh the listing")
2901 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) 2894 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./'))
2902 call netrw#NetrwRestorePosn(svpos) 2895 call netrw#NetrwRestorePosn(svpos)
2903 call s:NetrwCursorline() 2896 call s:NetrwCursorline()
2904 2897
2905 " keep cursor on the filename 2898 " keep cursor on the filename
2906 sil keepj $ 2899 sil! keepj $
2907 let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc') 2900 let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc')
2908 " call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A')) 2901 " call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A'))
2909 if result <= 0 && exists("w:netrw_bannercnt") 2902 if result <= 0 && exists("w:netrw_bannercnt")
2910 exe "keepj ".w:netrw_bannercnt 2903 exe "sil! keepj ".w:netrw_bannercnt
2911 endif 2904 endif
2912 2905
2913 " call Dret("NetrwListStyle".(exists("w:netrw_liststyle")? ' : w:netrw_liststyle='.w:netrw_liststyle : "")) 2906 " call Dret("NetrwListStyle".(exists("w:netrw_liststyle")? ' : w:netrw_liststyle='.w:netrw_liststyle : ""))
2914 endfun 2907 endfun
2915 2908
3093 if g:netrw_chgwin >= 1 3086 if g:netrw_chgwin >= 1
3094 exe "keepjumps ".g:netrw_chgwin."wincmd w" 3087 exe "keepjumps ".g:netrw_chgwin."wincmd w"
3095 endif 3088 endif
3096 endif 3089 endif
3097 endif 3090 endif
3091
3098 " the point where netrw actually edits the (local) file 3092 " the point where netrw actually edits the (local) file
3099 " if its local only: LocalBrowseCheck() doesn't edit a file, but NetrwBrowse() will 3093 " if its local only: LocalBrowseCheck() doesn't edit a file, but NetrwBrowse() will
3100 if a:islocal 3094 if a:islocal
3101 " call Decho("edit local file: exe e! ".fnameescape(dirname)) 3095 " call Decho("edit local file: exe e! ".fnameescape(dirname))
3102 exe "e! ".fnameescape(dirname) 3096 exe "e! ".fnameescape(dirname)
3108 " handle g:Netrw_funcref -- call external-to-netrw functions 3102 " handle g:Netrw_funcref -- call external-to-netrw functions
3109 " This code will handle g:Netrw_funcref as an individual function reference 3103 " This code will handle g:Netrw_funcref as an individual function reference
3110 " or as a list of function references. It will ignore anything that's not 3104 " or as a list of function references. It will ignore anything that's not
3111 " a function reference. See :help Funcref for information about function references. 3105 " a function reference. See :help Funcref for information about function references.
3112 if exists("g:Netrw_funcref") 3106 if exists("g:Netrw_funcref")
3107 " call Decho("handle optional Funcrefs")
3113 if type(g:Netrw_funcref) == 2 3108 if type(g:Netrw_funcref) == 2
3109 " call Decho("handling a g:Netrw_funcref")
3114 call g:Netrw_funcref() 3110 call g:Netrw_funcref()
3115 elseif type(g:Netrw_funcref) == 3 3111 elseif type(g:Netrw_funcref) == 3
3112 " call Decho("handling a list of g:Netrw_funcrefs")
3116 for Fncref in g:Netrw_funcref 3113 for Fncref in g:Netrw_funcref
3117 if type(FncRef) == 2 3114 if type(FncRef) == 2
3118 call FncRef() 3115 call FncRef()
3119 endif 3116 endif
3120 endfor 3117 endfor
3244 call s:SetRexDir(a:islocal,dirname) 3241 call s:SetRexDir(a:islocal,dirname)
3245 endif 3242 endif
3246 3243
3247 call s:NetrwOptionRestore("s:") 3244 call s:NetrwOptionRestore("s:")
3248 if dolockout 3245 if dolockout
3249 " call Decho("doing modification lockout settings: ma nomod noro") 3246 " call Decho("filewritable(dirname<".dirname.">)=".filewritable(dirname))
3250 setlocal ma nomod noro 3247 if filewritable(dirname)
3248 " call Decho("doing modification lockout settings: ma nomod noro")
3249 setlocal ma nomod noro
3250 else
3251 " call Decho("doing modification lockout settings: ma nomod ro")
3252 setlocal ma nomod ro
3253 endif
3251 " call Decho("setlocal ma nomod noro") 3254 " call Decho("setlocal ma nomod noro")
3252 endif 3255 endif
3253 3256
3254 " call Dret("s:NetrwBrowseChgDir <".dirname."> : curpos<".string(getpos(".")).">") 3257 " call Dret("s:NetrwBrowseChgDir <".dirname."> : curpos<".string(getpos(".")).">")
3255 return dirname 3258 return dirname
3508 " call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)") 3511 " call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)")
3509 endif 3512 endif
3510 let curdir = simplify(b:netrw_curdir) 3513 let curdir = simplify(b:netrw_curdir)
3511 let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e') 3514 let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e')
3512 " call Decho("curdir<".curdir."> curfiledir<".curfiledir.">") 3515 " call Decho("curdir<".curdir."> curfiledir<".curfiledir.">")
3513 " call FOTEST(1)
3514 3516
3515 " save registers 3517 " save registers
3516 sil! let keepregstar = @* 3518 sil! let keepregstar = @*
3517 sil! let keepregplus = @+ 3519 sil! let keepregplus = @+
3518 sil! let keepregslash= @/ 3520 sil! let keepregslash= @/
3559 call s:RestoreWinVars() 3561 call s:RestoreWinVars()
3560 " else " Decho 3562 " else " Decho
3561 " call Decho("case a:dosplit=".a:dosplit." AND modified=".&modified." AND a:style=".a:style." is not 6") 3563 " call Decho("case a:dosplit=".a:dosplit." AND modified=".&modified." AND a:style=".a:style." is not 6")
3562 endif 3564 endif
3563 keepj norm! 0 3565 keepj norm! 0
3564 " call FOTEST(2)
3565 3566
3566 if a:0 > 0 3567 if a:0 > 0
3567 " call Decho("case [a:0=".a:0."] > 0: a:1<".a:1.">") 3568 " call Decho("case [a:0=".a:0."] > 0: a:1<".a:1.">")
3568 if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)) 3569 if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin))
3569 " call Decho("case a:1: ~ and unix or cygwin") 3570 " call Decho("case a:1: ~ and unix or cygwin")
3594 call s:NetrwClearExplore() 3595 call s:NetrwClearExplore()
3595 " call Dret("netrw#Explore : cleared list") 3596 " call Dret("netrw#Explore : cleared list")
3596 return 3597 return
3597 endif 3598 endif
3598 3599
3599 " call FOTEST(3)
3600 " call Decho("dirname<".dirname.">") 3600 " call Decho("dirname<".dirname.">")
3601 if dirname =~ '\.\./\=$' 3601 if dirname =~ '\.\./\=$'
3602 let dirname= simplify(fnamemodify(dirname,':p:h')) 3602 let dirname= simplify(fnamemodify(dirname,':p:h'))
3603 elseif dirname =~ '\.\.' || dirname == '.' 3603 elseif dirname =~ '\.\.' || dirname == '.'
3604 let dirname= simplify(fnamemodify(dirname,':p')) 3604 let dirname= simplify(fnamemodify(dirname,':p'))
3646 3646
3647 else 3647 else
3648 let starpat= 0 3648 let starpat= 0
3649 " call Decho("default case: starpat=".starpat) 3649 " call Decho("default case: starpat=".starpat)
3650 endif 3650 endif
3651 " call FOTEST(4)
3652 3651
3653 if starpat == 0 && a:indx >= 0 3652 if starpat == 0 && a:indx >= 0
3654 " [Explore Hexplore Vexplore Sexplore] [dirname] 3653 " [Explore Hexplore Vexplore Sexplore] [dirname]
3655 " call Decho("case starpat==0 && a:indx=".a:indx.": dirname<".dirname."> Explore Hexplore Vexplore Sexplore") 3654 " call Decho("case starpat==0 && a:indx=".a:indx.": dirname<".dirname."> Explore Hexplore Vexplore Sexplore")
3656 if dirname == "" 3655 if dirname == ""
3873 call netrw#LocalBrowseCheck(getcwd()) 3872 call netrw#LocalBrowseCheck(getcwd())
3874 else 3873 else
3875 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,newdir)) 3874 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,newdir))
3876 endif 3875 endif
3877 endif 3876 endif
3878 " call FOTEST(5)
3879 3877
3880 " visual display of **/ **// */ Exploration files 3878 " visual display of **/ **// */ Exploration files
3881 " call Decho("w:netrw_explore_indx=".(exists("w:netrw_explore_indx")? w:netrw_explore_indx : "doesn't exist")) 3879 " call Decho("w:netrw_explore_indx=".(exists("w:netrw_explore_indx")? w:netrw_explore_indx : "doesn't exist"))
3882 " call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "n/a").">") 3880 " call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "n/a").">")
3883 if exists("w:netrw_explore_indx") && exists("b:netrw_curdir") 3881 if exists("w:netrw_explore_indx") && exists("b:netrw_curdir")
3918 if exists("s:explore_match") | unlet s:explore_match | endif 3916 if exists("s:explore_match") | unlet s:explore_match | endif
3919 if exists("s:explore_prvdir") | unlet s:explore_prvdir | endif 3917 if exists("s:explore_prvdir") | unlet s:explore_prvdir | endif
3920 echo " " 3918 echo " "
3921 " call Decho("cleared explore match list") 3919 " call Decho("cleared explore match list")
3922 endif 3920 endif
3923 " call FOTEST(6)
3924 3921
3925 sil! let @* = keepregstar 3922 sil! let @* = keepregstar
3926 sil! let @+ = keepregstar 3923 sil! let @+ = keepregstar
3927 sil! let @/ = keepregslash 3924 sil! let @/ = keepregslash
3928 " call Dret("netrw#Explore : @/<".@/.">") 3925 " call Dret("netrw#Explore : @/<".@/.">")
4388 " compress/decompress files using the programs 4385 " compress/decompress files using the programs
4389 " in g:netrw_compress and g:netrw_uncompress, 4386 " in g:netrw_compress and g:netrw_uncompress,
4390 " using g:netrw_compress_suffix to know which to 4387 " using g:netrw_compress_suffix to know which to
4391 " do. By default: 4388 " do. By default:
4392 " g:netrw_compress = "gzip" 4389 " g:netrw_compress = "gzip"
4393 " g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"} 4390 " g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf", ".xz" : "unxz"}
4394 fun! s:NetrwMarkFileCompress(islocal) 4391 fun! s:NetrwMarkFileCompress(islocal)
4395 " call Dfunc("s:NetrwMarkFileCompress(islocal=".a:islocal.")") 4392 " call Dfunc("s:NetrwMarkFileCompress(islocal=".a:islocal.")")
4396 let svpos = netrw#NetrwSavePosn() 4393 let svpos = netrw#NetrwSavePosn()
4397 let curdir = b:netrw_curdir 4394 let curdir = b:netrw_curdir
4398 let curbufnr = bufnr("%") 4395 let curbufnr = bufnr("%")
4421 else 4418 else
4422 call netrw#ErrorMsg(s:WARNING,"unable to apply<".exe."> to file<".fname.">",50) 4419 call netrw#ErrorMsg(s:WARNING,"unable to apply<".exe."> to file<".fname.">",50)
4423 endif 4420 endif
4424 break 4421 break
4425 endif 4422 endif
4423 unlet sfx
4426 endfor 4424 endfor
4427 if exists("exe") 4425 if exists("exe")
4428 unlet exe 4426 unlet exe
4429 elseif a:islocal 4427 elseif a:islocal
4430 " fname not a compressed file, so compress it 4428 " fname not a compressed file, so compress it
5217 exe 'sil! menu '.g:NetrwMenuPriority.'.9.2 '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ Sorting\ Sequence<tab>S S' 5215 exe 'sil! menu '.g:NetrwMenuPriority.'.9.2 '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ Sorting\ Sequence<tab>S S'
5218 exe 'sil! menu '.g:NetrwMenuPriority.'.9.3 '.g:NetrwTopLvlMenu.'Browsing\ Control.Quick\ Hide/Unhide\ Dot\ Files<tab>'."gh gh" 5216 exe 'sil! menu '.g:NetrwMenuPriority.'.9.3 '.g:NetrwTopLvlMenu.'Browsing\ Control.Quick\ Hide/Unhide\ Dot\ Files<tab>'."gh gh"
5219 exe 'sil! menu '.g:NetrwMenuPriority.'.9.4 '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l> \<c-l>" 5217 exe 'sil! menu '.g:NetrwMenuPriority.'.9.4 '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l> \<c-l>"
5220 exe 'sil! menu '.g:NetrwMenuPriority.'.9.5 '.g:NetrwTopLvlMenu.'Browsing\ Control.Settings/Options<tab>:NetrwSettings '.":NetrwSettings\<cr>" 5218 exe 'sil! menu '.g:NetrwMenuPriority.'.9.5 '.g:NetrwTopLvlMenu.'Browsing\ Control.Settings/Options<tab>:NetrwSettings '.":NetrwSettings\<cr>"
5221 exe 'sil! menu '.g:NetrwMenuPriority.'.10 '.g:NetrwTopLvlMenu.'Delete\ File/Directory<tab>D D' 5219 exe 'sil! menu '.g:NetrwMenuPriority.'.10 '.g:NetrwTopLvlMenu.'Delete\ File/Directory<tab>D D'
5220 exe 'sil! menu '.g:NetrwMenuPriority.'.11.1 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Create\ New\ File<tab>% %'
5222 exe 'sil! menu '.g:NetrwMenuPriority.'.11.1 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Current\ Window<tab><cr> '."\<cr>" 5221 exe 'sil! menu '.g:NetrwMenuPriority.'.11.1 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Current\ Window<tab><cr> '."\<cr>"
5223 exe 'sil! menu '.g:NetrwMenuPriority.'.11.2 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Preview\ File/Directory<tab>p p' 5222 exe 'sil! menu '.g:NetrwMenuPriority.'.11.2 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Preview\ File/Directory<tab>p p'
5224 exe 'sil! menu '.g:NetrwMenuPriority.'.11.3 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Previous\ Window<tab>P P' 5223 exe 'sil! menu '.g:NetrwMenuPriority.'.11.3 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Previous\ Window<tab>P P'
5225 exe 'sil! menu '.g:NetrwMenuPriority.'.11.4 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Window<tab>o o' 5224 exe 'sil! menu '.g:NetrwMenuPriority.'.11.4 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Window<tab>o o'
5226 exe 'sil! menu '.g:NetrwMenuPriority.'.11.5 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Vertical\ Window<tab>v v' 5225 exe 'sil! menu '.g:NetrwMenuPriority.'.11.5 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Vertical\ Window<tab>v v'
5812 " NetrwBrowseChgDir() may clear the display; hence a NetrwSavePosn() may not work if its placed here. 5811 " NetrwBrowseChgDir() may clear the display; hence a NetrwSavePosn() may not work if its placed here.
5813 " Also, NetrwBrowseChgDir() now does a NetrwSavePosn() itself. 5812 " Also, NetrwBrowseChgDir() now does a NetrwSavePosn() itself.
5814 setlocal ma noro 5813 setlocal ma noro
5815 " call Decho("setlocal ma noro") 5814 " call Decho("setlocal ma noro")
5816 " call Decho("clear buffer<".expand("%")."> with :%d") 5815 " call Decho("clear buffer<".expand("%")."> with :%d")
5817 keepj %d 5816 sil! keepj %d
5818 if a:islocal 5817 if a:islocal
5819 call netrw#LocalBrowseCheck(a:dirname) 5818 call netrw#LocalBrowseCheck(a:dirname)
5820 else 5819 else
5821 call s:NetrwBrowse(a:islocal,a:dirname) 5820 call s:NetrwBrowse(a:islocal,a:dirname)
5822 endif 5821 endif
6091 " detect user attempting to close treeroot 6090 " detect user attempting to close treeroot
6092 if getline('.') !~ '|' && getline('.') != '..' 6091 if getline('.') !~ '|' && getline('.') != '..'
6093 " call Decho("user attempted to close treeroot") 6092 " call Decho("user attempted to close treeroot")
6094 " now force a refresh 6093 " now force a refresh
6095 " call Decho("clear buffer<".expand("%")."> with :%d") 6094 " call Decho("clear buffer<".expand("%")."> with :%d")
6096 keepj %d 6095 sil! keepj %d
6097 " call Dret("NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".string(s:treecurpos).">") 6096 " call Dret("NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".string(s:treecurpos).">")
6098 return b:netrw_curdir 6097 return b:netrw_curdir
6099 endif 6098 endif
6100 6099
6101 " elide all non-depth information 6100 " elide all non-depth information
6172 elseif entry =~ '/$' && has_key(w:netrw_treedict,direntry.'/') 6171 elseif entry =~ '/$' && has_key(w:netrw_treedict,direntry.'/')
6173 " call Decho("<".direntry."/> is a key in treedict - display subtree for it") 6172 " call Decho("<".direntry."/> is a key in treedict - display subtree for it")
6174 call s:NetrwTreeDisplay(direntry.'/',depth) 6173 call s:NetrwTreeDisplay(direntry.'/',depth)
6175 else 6174 else
6176 " call Decho("<".entry."> is not a key in treedict (no subtree)") 6175 " call Decho("<".entry."> is not a key in treedict (no subtree)")
6177 keepj call setline(line("$")+1,depth.entry) 6176 sil! keepj call setline(line("$")+1,depth.entry)
6178 endif 6177 endif
6179 endfor 6178 endfor
6180 " call Dret("NetrwTreeDisplay") 6179 " call Dret("NetrwTreeDisplay")
6181 endfun 6180 endfun
6182 6181
6204 endif 6203 endif
6205 6204
6206 " update the directory listing for the current directory 6205 " update the directory listing for the current directory
6207 " call Decho("updating dictionary with ".a:dirname.":[..directory listing..]") 6206 " call Decho("updating dictionary with ".a:dirname.":[..directory listing..]")
6208 " call Decho("bannercnt=".w:netrw_bannercnt." line($)=".line("$")) 6207 " call Decho("bannercnt=".w:netrw_bannercnt." line($)=".line("$"))
6209 exe "silent! keepjumps ".w:netrw_bannercnt.',$g@^\.\.\=/$@d' 6208 exe "sil! keepj ".w:netrw_bannercnt.',$g@^\.\.\=/$@d'
6210 let w:netrw_treedict[a:dirname]= getline(w:netrw_bannercnt,line("$")) 6209 let w:netrw_treedict[a:dirname]= getline(w:netrw_bannercnt,line("$"))
6211 " call Decho("w:treedict[".a:dirname."]= ".string(w:netrw_treedict[a:dirname])) 6210 " call Decho("w:treedict[".a:dirname."]= ".string(w:netrw_treedict[a:dirname]))
6212 exe "silent! keepjumps ".w:netrw_bannercnt.",$d" 6211 exe "sil! keepj ".w:netrw_bannercnt.",$d"
6213 6212
6214 " if past banner, record word 6213 " if past banner, record word
6215 if exists("w:netrw_bannercnt") && line(".") > w:netrw_bannercnt 6214 if exists("w:netrw_bannercnt") && line(".") > w:netrw_bannercnt
6216 let fname= expand("<cword>") 6215 let fname= expand("<cword>")
6217 else 6216 else
6261 call histdel("/",-1) 6260 call histdel("/",-1)
6262 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl 6261 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl
6263 let newcolstart = w:netrw_bannercnt + fpc 6262 let newcolstart = w:netrw_bannercnt + fpc
6264 let newcolend = newcolstart + fpc - 1 6263 let newcolend = newcolstart + fpc - 1
6265 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]") 6264 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]")
6266 silent! let keepregstar = @* 6265 sil! let keepregstar = @*
6267 while line("$") >= newcolstart 6266 while line("$") >= newcolstart
6268 if newcolend > line("$") | let newcolend= line("$") | endif 6267 if newcolend > line("$") | let newcolend= line("$") | endif
6269 let newcolqty= newcolend - newcolstart 6268 let newcolqty= newcolend - newcolstart
6270 exe newcolstart 6269 exe newcolstart
6271 if newcolqty == 0 6270 if newcolqty == 0
6272 exe "sil keepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p" 6271 exe "sil! keepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p"
6273 else 6272 else
6274 exe "sil keepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p' 6273 exe "sil! keepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p'
6275 endif 6274 endif
6276 exe "sil keepj ".newcolstart.','.newcolend.'d' 6275 exe "sil! keepj ".newcolstart.','.newcolend.'d'
6277 exe 'sil keepj '.w:netrw_bannercnt 6276 exe 'sil! keepj '.w:netrw_bannercnt
6278 endwhile 6277 endwhile
6279 silent! let @*= keepregstar 6278 silent! let @*= keepregstar
6280 exe "sil keepj ".w:netrw_bannercnt.',$s/\s\+$//e' 6279 exe "sil! keepj ".w:netrw_bannercnt.',$s/\s\+$//e'
6281 call histdel("/",-1) 6280 call histdel("/",-1)
6282 setlocal noma nomod ro 6281 setlocal noma nomod ro
6283 " call Dret("NetrwWideListing") 6282 " call Dret("NetrwWideListing")
6284 endif 6283 endif
6285 6284
6300 6299
6301 " call Decho('w:netrw_liststyle='.(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a')) 6300 " call Decho('w:netrw_liststyle='.(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a'))
6302 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") 6301 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
6303 " force a refresh for tree listings 6302 " force a refresh for tree listings
6304 " call Decho("force refresh for treelisting: clear buffer<".expand("%")."> with :%d") 6303 " call Decho("force refresh for treelisting: clear buffer<".expand("%")."> with :%d")
6305 keepj %d 6304 sil! keepj %d
6306 endif 6305 endif
6307 6306
6308 " save current directory on directory history list 6307 " save current directory on directory history list
6309 call s:NetrwBookHistHandler(3,b:netrw_curdir) 6308 call s:NetrwBookHistHandler(3,b:netrw_curdir)
6310 6309
6314 keepj put ='\" ============================================================================' 6313 keepj put ='\" ============================================================================'
6315 keepj put ='\" Netrw Directory Listing (netrw '.g:loaded_netrw.')' 6314 keepj put ='\" Netrw Directory Listing (netrw '.g:loaded_netrw.')'
6316 keepj put ='\" '.b:netrw_curdir 6315 keepj put ='\" '.b:netrw_curdir
6317 keepj 1d 6316 keepj 1d
6318 let w:netrw_bannercnt= 3 6317 let w:netrw_bannercnt= 3
6319 exe "keepj ".w:netrw_bannercnt 6318 exe "sil! keepj ".w:netrw_bannercnt
6320 else 6319 else
6321 keepj 1 6320 keepj 1
6322 let w:netrw_bannercnt= 1 6321 let w:netrw_bannercnt= 1
6323 endif 6322 endif
6324 6323
6340 " call Decho("directories will be sorted by size or time") 6339 " call Decho("directories will be sorted by size or time")
6341 " sorted by size or date 6340 " sorted by size or date
6342 keepj put ='\" Sorted by '.sortby 6341 keepj put ='\" Sorted by '.sortby
6343 let w:netrw_bannercnt= w:netrw_bannercnt + 1 6342 let w:netrw_bannercnt= w:netrw_bannercnt + 1
6344 endif 6343 endif
6345 exe "keepj ".w:netrw_bannercnt 6344 exe "sil! keepj ".w:netrw_bannercnt
6346 endif 6345 endif
6347 6346
6348 " show copy/move target, if any 6347 " show copy/move target, if any
6349 if g:netrw_banner 6348 if g:netrw_banner
6350 if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal") 6349 if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal")
6351 " call Decho("show copy/move target<".s:netrwmftgt.">") 6350 " call Decho("show copy/move target<".s:netrwmftgt.">")
6352 keepj put ='' 6351 keepj put =''
6353 if s:netrwmftgt_islocal 6352 if s:netrwmftgt_islocal
6354 keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (local)') 6353 sil! keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (local)')
6355 else 6354 else
6356 keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (remote)') 6355 sil! keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (remote)')
6357 endif 6356 endif
6358 let w:netrw_bannercnt= w:netrw_bannercnt + 1 6357 let w:netrw_bannercnt= w:netrw_bannercnt + 1
6359 else 6358 else
6360 " call Decho("s:netrwmftgt does not exist, don't make Copy/Move Tgt") 6359 " call Decho("s:netrwmftgt does not exist, don't make Copy/Move Tgt")
6361 endif 6360 endif
6362 exe "keepj ".w:netrw_bannercnt 6361 exe "sil! keepj ".w:netrw_bannercnt
6363 endif 6362 endif
6364 6363
6365 " Hiding... -or- Showing... {{{3 6364 " Hiding... -or- Showing... {{{3
6366 if g:netrw_banner 6365 if g:netrw_banner
6367 " call Decho("handle hiding/showing (g:netrw_hide=".g:netrw_list_hide." g:netrw_list_hide<".g:netrw_list_hide.">)") 6366 " call Decho("handle hiding/showing (g:netrw_hide=".g:netrw_list_hide." g:netrw_list_hide<".g:netrw_list_hide.">)")
6380 endif 6379 endif
6381 6380
6382 " bannercnt should index the line just after the banner 6381 " bannercnt should index the line just after the banner
6383 if g:netrw_banner 6382 if g:netrw_banner
6384 let w:netrw_bannercnt= w:netrw_bannercnt + 1 6383 let w:netrw_bannercnt= w:netrw_bannercnt + 1
6385 exe "keepj ".w:netrw_bannercnt 6384 exe "sil! keepj ".w:netrw_bannercnt
6386 " call Decho("bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$")) 6385 " call Decho("bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$"))
6387 endif 6386 endif
6388 6387
6389 " set up syntax highlighting {{{3 6388 " set up syntax highlighting {{{3
6390 " call Decho("set up syntax highlighting") 6389 " call Decho("set up syntax highlighting")
6391 if has("syntax") 6390 if has("syntax")
6392 setlocal ft=netrw 6391 setf netrw
6393 if !exists("g:syntax_on") || !g:syntax_on 6392 if !exists("g:syntax_on") || !g:syntax_on
6394 setlocal ft= 6393 setlocal ft=
6395 endif 6394 endif
6396 endif 6395 endif
6397 6396
6428 exe 'sil keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options 6427 exe 'sil keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
6429 endif 6428 endif
6430 endif 6429 endif
6431 " remove priority pattern prefix 6430 " remove priority pattern prefix
6432 " call Decho("remove priority pattern prefix") 6431 " call Decho("remove priority pattern prefix")
6433 exe 'sil keepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e' 6432 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
6434 call histdel("/",-1) 6433 call histdel("/",-1)
6435 6434
6436 elseif a:islocal 6435 elseif a:islocal
6437 if !g:netrw_banner || w:netrw_bannercnt < line("$") 6436 if !g:netrw_banner || w:netrw_bannercnt < line("$")
6438 " call Decho("g:netrw_sort_direction=".g:netrw_sort_direction) 6437 " call Decho("g:netrw_sort_direction=".g:netrw_sort_direction)
6439 if g:netrw_sort_direction =~ 'n' 6438 if g:netrw_sort_direction =~ 'n'
6440 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort') 6439 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort')
6441 exe 'sil keepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options 6440 exe 'sil! keepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options
6442 else 6441 else
6443 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort!') 6442 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort!')
6444 exe 'sil keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options 6443 exe 'sil! keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
6445 endif 6444 endif
6446 exe 'sil keepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e' 6445 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
6447 call histdel("/",-1) 6446 call histdel("/",-1)
6448 endif 6447 endif
6449 endif 6448 endif
6450 6449
6451 elseif g:netrw_sort_direction =~ 'r' 6450 elseif g:netrw_sort_direction =~ 'r'
6452 " call Decho('reverse the sorted listing') 6451 " call Decho('reverse the sorted listing')
6453 if !g:netrw_banner || w:netrw_bannercnt < line('$') 6452 if !g:netrw_banner || w:netrw_bannercnt < line('$')
6454 exe 'sil keepj '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt 6453 exe 'sil! keepj '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt
6455 call histdel("/",-1) 6454 call histdel("/",-1)
6456 endif 6455 endif
6457 endif 6456 endif
6458 endif 6457 endif
6459 6458
6463 call s:NetrwTreeListing(b:netrw_curdir) 6462 call s:NetrwTreeListing(b:netrw_curdir)
6464 6463
6465 if exists("w:netrw_bannercnt") && (line("$") > w:netrw_bannercnt || !g:netrw_banner) 6464 if exists("w:netrw_bannercnt") && (line("$") > w:netrw_bannercnt || !g:netrw_banner)
6466 " place cursor on the top-left corner of the file listing 6465 " place cursor on the top-left corner of the file listing
6467 " call Decho("place cursor on top-left corner of file listing") 6466 " call Decho("place cursor on top-left corner of file listing")
6468 exe 'sil keepj '.w:netrw_bannercnt 6467 exe 'sil! keepj '.w:netrw_bannercnt
6469 keepj norm! 0 6468 sil! keepj norm! 0
6470 endif 6469 endif
6471 6470
6472 " record previous current directory 6471 " record previous current directory
6473 let w:netrw_prvdir= b:netrw_curdir 6472 let w:netrw_prvdir= b:netrw_curdir
6474 " call Decho("record netrw_prvdir<".w:netrw_prvdir.">") 6473 " call Decho("record netrw_prvdir<".w:netrw_prvdir.">")
6477 call s:SetBufWinVars() 6476 call s:SetBufWinVars()
6478 call s:NetrwOptionRestore("w:") 6477 call s:NetrwOptionRestore("w:")
6479 6478
6480 " set display to netrw display settings 6479 " set display to netrw display settings
6481 " call Decho("set display to netrw display settings (noma nomod etc)") 6480 " call Decho("set display to netrw display settings (noma nomod etc)")
6482 setlocal noma nomod nonu nobl nowrap ro 6481 exe "setl ".g:netrw_bufsettings
6483 if exists("s:treecurpos") 6482 if exists("s:treecurpos")
6484 6483
6485 call netrw#NetrwRestorePosn(s:treecurpos) 6484 call netrw#NetrwRestorePosn(s:treecurpos)
6486 unlet s:treecurpos 6485 unlet s:treecurpos
6487 endif 6486 endif
6584 elseif g:netrw_sort_by =~ '^s' 6583 elseif g:netrw_sort_by =~ '^s'
6585 let listcmd= g:netrw_ftp_sizelist_cmd 6584 let listcmd= g:netrw_ftp_sizelist_cmd
6586 endif 6585 endif
6587 " call Decho("listcmd<".listcmd."> (using g:netrw_ftp_list_cmd)") 6586 " call Decho("listcmd<".listcmd."> (using g:netrw_ftp_list_cmd)")
6588 call s:NetrwRemoteFtpCmd(s:path,listcmd) 6587 call s:NetrwRemoteFtpCmd(s:path,listcmd)
6589 " exe "keepj ".w:netrw_bannercnt.',$g/^./call Decho("raw listing: ".getline("."))' 6588 " exe "sil! keepalt keepj ".w:netrw_bannercnt.',$g/^./call Decho("raw listing: ".getline("."))'
6590 6589
6591 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST 6590 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST
6592 " shorten the listing 6591 " shorten the listing
6593 " call Decho("generate short listing") 6592 " call Decho("generate short listing")
6594 exe "keepj ".w:netrw_bannercnt 6593 exe "sil! keepalt keepj ".w:netrw_bannercnt
6595 6594
6596 " cleanup 6595 " cleanup
6597 if g:netrw_ftp_browse_reject != "" 6596 if g:netrw_ftp_browse_reject != ""
6598 exe "sil! keepj g/".g:netrw_ftp_browse_reject."/keepj d" 6597 exe "sil! keepalt keepj g/".g:netrw_ftp_browse_reject."/keepj d"
6599 call histdel("/",-1) 6598 call histdel("/",-1)
6600 endif 6599 endif
6601 sil! keepj %s/\r$//e 6600 sil! keepj %s/\r$//e
6602 call histdel("/",-1) 6601 call histdel("/",-1)
6603 6602
6604 " if there's no ../ listed, then put ./ and ../ in 6603 " if there's no ../ listed, then put ./ and ../ in
6605 let line1= line(".") 6604 let line1= line(".")
6606 exe "keepj ".w:netrw_bannercnt 6605 exe "sil! keepj ".w:netrw_bannercnt
6607 let line2= search('^\.\.\/\%(\s\|$\)','cnW') 6606 let line2= search('^\.\.\/\%(\s\|$\)','cnW')
6608 if line2 == 0 6607 if line2 == 0
6609 " call Decho("netrw is putting ./ and ../ into listing") 6608 " call Decho("netrw is putting ./ and ../ into listing")
6610 keepj put='../' 6609 sil! keepj put='../'
6611 keepj put='./' 6610 sil! keepj put='./'
6612 endif 6611 endif
6613 exe "keepj ".line1 6612 exe "sil! keepj ".line1
6614 keepjumps norm! 0 6613 sil! keepj norm! 0
6615 6614
6616 " call Decho("line1=".line1." line2=".line2." line(.)=".line(".")) 6615 " call Decho("line1=".line1." line2=".line2." line(.)=".line("."))
6617 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup 6616 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup
6618 " call Decho("M$ ftp cleanup") 6617 " call Decho("M$ ftp cleanup")
6619 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+//' 6618 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+//'
6634 " call Decho("use ssh to get remote file listing: s:path<".s:path.">") 6633 " call Decho("use ssh to get remote file listing: s:path<".s:path.">")
6635 let listcmd= s:MakeSshCmd(g:netrw_list_cmd) 6634 let listcmd= s:MakeSshCmd(g:netrw_list_cmd)
6636 " call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)") 6635 " call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)")
6637 if g:netrw_scp_cmd =~ '^pscp' 6636 if g:netrw_scp_cmd =~ '^pscp'
6638 " call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1)) 6637 " call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1))
6639 exe "silent r! ".listcmd.shellescape(s:path, 1) 6638 exe "sil! keepj r! ".listcmd.shellescape(s:path, 1)
6640 " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like 6639 " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like
6641 keepj g/^Listing directory/keepj d 6640 sil! keepj g/^Listing directory/keepj d
6642 keepj g/^d[-rwx][-rwx][-rwx]/keepj s+$+/+e 6641 sil! keepj g/^d[-rwx][-rwx][-rwx]/keepj s+$+/+e
6643 sil keepj g/^l[-rwx][-rwx][-rwx]/keepj s+$+@+e 6642 sil! keepj g/^l[-rwx][-rwx][-rwx]/keepj s+$+@+e
6644 call histdel("/",-1) 6643 call histdel("/",-1)
6645 call histdel("/",-1) 6644 call histdel("/",-1)
6646 call histdel("/",-1) 6645 call histdel("/",-1)
6647 if g:netrw_liststyle != s:LONGLIST 6646 if g:netrw_liststyle != s:LONGLIST
6648 keepj g/^[dlsp-][-rwx][-rwx][-rwx]/keepj s/^.*\s\(\S\+\)$/\1/e 6647 sil! keepj g/^[dlsp-][-rwx][-rwx][-rwx]/keepj s/^.*\s\(\S\+\)$/\1/e
6649 call histdel("/",-1) 6648 call histdel("/",-1)
6650 endif 6649 endif
6651 else 6650 else
6652 if s:path == "" 6651 if s:path == ""
6653 " call Decho("2: exe silent r! ".listcmd) 6652 " call Decho("2: exe silent r! ".listcmd)
6654 exe "sil r! ".listcmd 6653 exe "sil! keepalt r! ".listcmd
6655 else 6654 else
6656 " call Decho("3: exe silent r! ".listcmd.' '.shellescape(s:path,1)) 6655 " call Decho("3: exe silent r! ".listcmd.' '.shellescape(s:path,1))
6657 exe "sil r! ".listcmd.' '.shellescape(s:path,1) 6656 exe "sil! keepalt r! ".listcmd.' '.shellescape(s:path,1)
6658 " call Decho("listcmd<".listcmd."> path<".s:path.">") 6657 " call Decho("listcmd<".listcmd."> path<".s:path.">")
6659 endif 6658 endif
6660 endif 6659 endif
6661 6660
6662 " cleanup 6661 " cleanup
6663 if g:netrw_ftp_browse_reject != "" 6662 if g:netrw_ftp_browse_reject != ""
6664 " call Decho("(cleanup) exe silent! g/".g:netrw_ssh_browse_reject."/keepjumps d") 6663 " call Decho("(cleanup) exe silent! g/".g:netrw_ssh_browse_reject."/keepjumps d")
6665 exe "sil! g/".g:netrw_ssh_browse_reject."/keepjumps d" 6664 exe "sil! g/".g:netrw_ssh_browse_reject."/keepj d"
6666 call histdel("/",-1) 6665 call histdel("/",-1)
6667 endif 6666 endif
6668 endif 6667 endif
6669 6668
6670 if w:netrw_liststyle == s:LONGLIST 6669 if w:netrw_liststyle == s:LONGLIST
6671 " do a long listing; these substitutions need to be done prior to sorting {{{3 6670 " do a long listing; these substitutions need to be done prior to sorting {{{3
6672 " call Decho("fix long listing:") 6671 " call Decho("fix long listing:")
6673 6672
6674 if s:method == "ftp" 6673 if s:method == "ftp"
6675 " cleanup 6674 " cleanup
6676 exe "keepj ".w:netrw_bannercnt 6675 exe "sil! keepj ".w:netrw_bannercnt
6677 while getline('.') =~ g:netrw_ftp_browse_reject 6676 while getline('.') =~ g:netrw_ftp_browse_reject
6678 keepj d 6677 sil! keepj d
6679 endwhile 6678 endwhile
6680 " if there's no ../ listed, then put ./ and ../ in 6679 " if there's no ../ listed, then put ./ and ../ in
6681 let line1= line(".") 6680 let line1= line(".")
6682 keepj 1 6681 sil! keepj 1
6683 sil keepj call search('^\.\.\/\%(\s\|$\)','W') 6682 sil! keepj call search('^\.\.\/\%(\s\|$\)','W')
6684 let line2= line(".") 6683 let line2= line(".")
6685 if line2 == 0 6684 if line2 == 0
6686 exe 'keepj '.w:netrw_bannercnt."put='./'" 6685 exe 'sil! keepj '.w:netrw_bannercnt."put='./'"
6687 if b:netrw_curdir != '/' 6686 if b:netrw_curdir != '/'
6688 exe 'keepj '.w:netrw_bannercnt."put='../'" 6687 exe 'sil! keepj '.w:netrw_bannercnt."put='../'"
6689 endif 6688 endif
6690 endif 6689 endif
6691 exe "keepj ".line1 6690 exe "sil! keepj ".line1
6692 keepjumps norm! 0 6691 sil! keepj norm! 0
6693 endif 6692 endif
6694 6693
6695 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup 6694 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup
6696 " call Decho("M$ ftp site listing cleanup") 6695 " call Decho("M$ ftp site listing cleanup")
6697 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\(\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+\)\(\w.*\)$/\2\t\1/' 6696 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\(\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+\)\(\w.*\)$/\2\t\1/'
6794 " call Decho("case ftp:") 6793 " call Decho("case ftp:")
6795 let path= a:path 6794 let path= a:path
6796 if path =~ '^\a\+://' 6795 if path =~ '^\a\+://'
6797 let path= substitute(path,'^\a\+://[^/]\+/','','') 6796 let path= substitute(path,'^\a\+://[^/]\+/','','')
6798 endif 6797 endif
6799 silent! keepjumps .,$d 6798 sil! keepj .,$d
6800 call s:NetrwRemoteFtpCmd(path,"delete ".'"'.a:rmfile.'"') 6799 call s:NetrwRemoteFtpCmd(path,"delete ".'"'.a:rmfile.'"')
6801 else 6800 else
6802 " call Decho("case ssh: g:netrw_rm_cmd<".g:netrw_rm_cmd.">") 6801 " call Decho("case ssh: g:netrw_rm_cmd<".g:netrw_rm_cmd.">")
6803 let netrw_rm_cmd= s:MakeSshCmd(g:netrw_rm_cmd) 6802 let netrw_rm_cmd= s:MakeSshCmd(g:netrw_rm_cmd)
6804 " call Decho("netrw_rm_cmd<".netrw_rm_cmd.">") 6803 " call Decho("netrw_rm_cmd<".netrw_rm_cmd.">")
7866 7865
7867 " use fname's suffix for the temporary file 7866 " use fname's suffix for the temporary file
7868 if a:fname != "" 7867 if a:fname != ""
7869 if a:fname =~ '\.[^./]\+$' 7868 if a:fname =~ '\.[^./]\+$'
7870 " call Decho("using fname<".a:fname.">'s suffix") 7869 " call Decho("using fname<".a:fname.">'s suffix")
7871 if a:fname =~ '.tar.gz' || a:fname =~ '.tar.bz2' 7870 if a:fname =~ '\.tar\.gz$' || a:fname =~ '\.tar\.bz2$' || a:fname =~ '\.tar\.xz$'
7872 let suffix = ".tar".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e') 7871 let suffix = ".tar".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
7872 elseif a:fname =~ '.txz$'
7873 let suffix = ".txz".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
7873 else 7874 else
7874 let suffix = substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e') 7875 let suffix = substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
7875 endif 7876 endif
7876 " call Decho("suffix<".suffix.">") 7877 " call Decho("suffix<".suffix.">")
7877 let tmpfile= substitute(tmpfile,'\.tmp$','','e') 7878 let tmpfile= substitute(tmpfile,'\.tmp$','','e')
8021 if exists("b:netrw_option") |let netrw_option = b:netrw_option |endif 8022 if exists("b:netrw_option") |let netrw_option = b:netrw_option |endif
8022 if exists("b:netrw_prvdir") |let netrw_prvdir = b:netrw_prvdir |endif 8023 if exists("b:netrw_prvdir") |let netrw_prvdir = b:netrw_prvdir |endif
8023 8024
8024 call s:NetrwOptionRestore("w:") 8025 call s:NetrwOptionRestore("w:")
8025 " call Decho("generate a buffer with keepjumps keepalt enew!") 8026 " call Decho("generate a buffer with keepjumps keepalt enew!")
8027 let netrw_keepdiff= &l:diff
8026 keepj keepalt enew! 8028 keepj keepalt enew!
8029 let &l:diff= netrw_keepdiff
8027 " call Decho("bufnr($)=".bufnr("$")) 8030 " call Decho("bufnr($)=".bufnr("$"))
8028 call s:NetrwOptionSave("w:") 8031 call s:NetrwOptionSave("w:")
8029 8032
8030 " copy function-local-variables to buffer variable equivalents 8033 " copy function-local-variables to buffer variable equivalents
8031 " call Decho("copy function-local variables back to buffer netrw variables") 8034 " call Decho("copy function-local variables back to buffer netrw variables")