Mercurial > vim
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") |