Mercurial > vim
comparison runtime/autoload/netrw.vim @ 2152:b9e314fe473f
Updated runtime files.
author | Bram Moolenaar <bram@zimbu.org> |
---|---|
date | Fri, 14 May 2010 23:24:24 +0200 |
parents | f63ace015c63 |
children | 6de9efd58dc0 |
comparison
equal
deleted
inserted
replaced
2151:ae22c450546c | 2152:b9e314fe473f |
---|---|
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: Dec 28, 2009 | 3 " Date: May 14, 2010 |
4 " Version: 136 | 4 " Version: 138 |
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-2009 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 |
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 = "v136" | 25 let g:loaded_netrw = "v138" |
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 |
264 call s:NetrwInit("g:netrw_rmdir_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME rmdir") | 264 call s:NetrwInit("g:netrw_rmdir_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME rmdir") |
265 call s:NetrwInit("g:netrw_rmf_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME rm -f") | 265 call s:NetrwInit("g:netrw_rmf_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME rm -f") |
266 " Default values - s ---------- {{{3 | 266 " Default values - s ---------- {{{3 |
267 " g:netrw_sepchr: picking a character that doesn't appear in filenames that can be used to separate priority from filename | 267 " g:netrw_sepchr: picking a character that doesn't appear in filenames that can be used to separate priority from filename |
268 call s:NetrwInit("g:netrw_sepchr" , (&enc == "euc-jp")? "\<Char-0x01>" : "\<Char-0xff>") | 268 call s:NetrwInit("g:netrw_sepchr" , (&enc == "euc-jp")? "\<Char-0x01>" : "\<Char-0xff>") |
269 call s:NetrwInit("s:netrw_silentxfer" , (exists("g:netrw_silent") && g:netrw_silent != 0)? "silent " : "") | 269 call s:NetrwInit("s:netrw_silentxfer" , (exists("g:netrw_silent") && g:netrw_silent != 0)? "silent keepj " : "keepj ") |
270 call s:NetrwInit("g:netrw_sort_by" , "name") " alternatives: date , size | 270 call s:NetrwInit("g:netrw_sort_by" , "name") " alternatives: date , size |
271 call s:NetrwInit("g:netrw_sort_options" , "") | 271 call s:NetrwInit("g:netrw_sort_options" , "") |
272 call s:NetrwInit("g:netrw_sort_direction", "normal") " alternative: reverse (z y x ...) | 272 call s:NetrwInit("g:netrw_sort_direction", "normal") " alternative: reverse (z y x ...) |
273 if !exists("g:netrw_sort_sequence") | 273 if !exists("g:netrw_sort_sequence") |
274 if has("unix") | 274 if has("unix") |
284 call s:NetrwInit("g:netrw_timefmt","%c") | 284 call s:NetrwInit("g:netrw_timefmt","%c") |
285 call s:NetrwInit("g:netrw_xstrlen",0) | 285 call s:NetrwInit("g:netrw_xstrlen",0) |
286 call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.") | 286 call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.") |
287 call s:NetrwInit("g:netrw_use_errorwindow",1) | 287 call s:NetrwInit("g:netrw_use_errorwindow",1) |
288 call s:NetrwInit("g:netrw_win95ftp",1) | 288 call s:NetrwInit("g:netrw_win95ftp",1) |
289 call s:NetrwInit("g:netrw_winsize","") | 289 call s:NetrwInit("g:netrw_winsize",25) |
290 " --------------------------------------------------------------------- | 290 " --------------------------------------------------------------------- |
291 " Default values for netrw's script variables: {{{2 | 291 " Default values for netrw's script variables: {{{2 |
292 call s:NetrwInit("g:netrw_fname_escape",' ?&;%') | 292 call s:NetrwInit("g:netrw_fname_escape",' ?&;%') |
293 call s:NetrwInit("g:netrw_glob_escape",'[]*?`{~$') | 293 if has("win32") || has("win95") || has("win64") || has("win16") |
294 call s:NetrwInit("g:netrw_glob_escape",'[]*?`{$') | |
295 else | |
296 call s:NetrwInit("g:netrw_glob_escape",'[]*?`{~$\') | |
297 endif | |
298 call s:NetrwInit("g:netrw_menu_escape",'./&? \') | |
294 call s:NetrwInit("g:netrw_tmpfile_escape",' &;') | 299 call s:NetrwInit("g:netrw_tmpfile_escape",' &;') |
295 call s:NetrwInit("s:netrw_map_escape","<|\n\r\\\<C-V>\"") | 300 call s:NetrwInit("s:netrw_map_escape","<|\n\r\\\<C-V>\"") |
296 | 301 |
297 " BufEnter event ignored by decho when following variable is true | 302 " BufEnter event ignored by decho when following variable is true |
298 " Has a side effect that doau BufReadPost doesn't work, so | 303 " Has a side effect that doau BufReadPost doesn't work, so |
327 if exists("&l:acd") | 332 if exists("&l:acd") |
328 let {a:vt}netrw_acdkeep = &l:acd | 333 let {a:vt}netrw_acdkeep = &l:acd |
329 endif | 334 endif |
330 let {a:vt}netrw_aikeep = &l:ai | 335 let {a:vt}netrw_aikeep = &l:ai |
331 let {a:vt}netrw_awkeep = &l:aw | 336 let {a:vt}netrw_awkeep = &l:aw |
337 let {a:vt}netrw_bombkeep = &l:bomb | |
332 let {a:vt}netrw_cikeep = &l:ci | 338 let {a:vt}netrw_cikeep = &l:ci |
333 let {a:vt}netrw_cinkeep = &l:cin | 339 let {a:vt}netrw_cinkeep = &l:cin |
334 let {a:vt}netrw_cinokeep = &l:cino | 340 let {a:vt}netrw_cinokeep = &l:cino |
335 let {a:vt}netrw_comkeep = &l:com | 341 let {a:vt}netrw_comkeep = &l:com |
336 let {a:vt}netrw_cpokeep = &l:cpo | 342 let {a:vt}netrw_cpokeep = &l:cpo |
338 let {a:vt}netrw_dirkeep = getcwd() | 344 let {a:vt}netrw_dirkeep = getcwd() |
339 endif | 345 endif |
340 let {a:vt}netrw_fokeep = &l:fo " formatoptions | 346 let {a:vt}netrw_fokeep = &l:fo " formatoptions |
341 let {a:vt}netrw_gdkeep = &l:gd " gdefault | 347 let {a:vt}netrw_gdkeep = &l:gd " gdefault |
342 let {a:vt}netrw_hidkeep = &l:hidden | 348 let {a:vt}netrw_hidkeep = &l:hidden |
349 let {a:vt}netrw_imkeep = &l:im | |
343 let {a:vt}netrw_magickeep = &l:magic | 350 let {a:vt}netrw_magickeep = &l:magic |
344 let {a:vt}netrw_repkeep = &l:report | 351 let {a:vt}netrw_repkeep = &l:report |
345 let {a:vt}netrw_spellkeep = &l:spell | 352 let {a:vt}netrw_spellkeep = &l:spell |
346 let {a:vt}netrw_twkeep = &l:tw " textwidth | 353 let {a:vt}netrw_twkeep = &l:tw " textwidth |
347 let {a:vt}netrw_wigkeep = &l:wig " wildignore | 354 let {a:vt}netrw_wigkeep = &l:wig " wildignore |
373 unlet {a:vt}netrw_acdkeep | 380 unlet {a:vt}netrw_acdkeep |
374 if &l:acd | 381 if &l:acd |
375 " call Decho("exe keepjumps lcd ".fnameescape(curdir)) " NOTE: was g:netrw_fname_escape for some reason | 382 " call Decho("exe keepjumps lcd ".fnameescape(curdir)) " NOTE: was g:netrw_fname_escape for some reason |
376 try | 383 try |
377 if !exists("&l:acd") && !&l:acd | 384 if !exists("&l:acd") && !&l:acd |
378 exe 'keepjumps lcd '.fnameescape(curdir) | 385 exe 'keepj lcd '.fnameescape(curdir) |
379 endif | 386 endif |
380 catch /^Vim\%((\a\+)\)\=:E472/ | 387 catch /^Vim\%((\a\+)\)\=:E472/ |
381 call netrw#ErrorMsg(s:ERROR,"unable to change directory to <".curdir."> (permissions?)",61) | 388 call netrw#ErrorMsg(s:ERROR,"unable to change directory to <".curdir."> (permissions?)",61) |
382 endtry | 389 endtry |
383 endif | 390 endif |
384 endif | 391 endif |
385 endif | 392 endif |
386 if exists("{a:vt}netrw_aikeep") |let &l:ai = {a:vt}netrw_aikeep |unlet {a:vt}netrw_aikeep |endif | 393 if exists("{a:vt}netrw_aikeep") |let &l:ai = {a:vt}netrw_aikeep |unlet {a:vt}netrw_aikeep |endif |
387 if exists("{a:vt}netrw_awkeep") |let &l:aw = {a:vt}netrw_awkeep |unlet {a:vt}netrw_awkeep |endif | 394 if exists("{a:vt}netrw_awkeep") |let &l:aw = {a:vt}netrw_awkeep |unlet {a:vt}netrw_awkeep |endif |
395 if exists("{a:vt}netrw_bombkeep") |let &l:bomb = {a:vt}netrw_bombkeep |unlet {a:vt}netrw_bombkeep |endif | |
388 if exists("{a:vt}netrw_cikeep") |let &l:ci = {a:vt}netrw_cikeep |unlet {a:vt}netrw_cikeep |endif | 396 if exists("{a:vt}netrw_cikeep") |let &l:ci = {a:vt}netrw_cikeep |unlet {a:vt}netrw_cikeep |endif |
389 if exists("{a:vt}netrw_cinkeep") |let &l:cin = {a:vt}netrw_cinkeep |unlet {a:vt}netrw_cinkeep |endif | 397 if exists("{a:vt}netrw_cinkeep") |let &l:cin = {a:vt}netrw_cinkeep |unlet {a:vt}netrw_cinkeep |endif |
390 if exists("{a:vt}netrw_cinokeep") |let &l:cino = {a:vt}netrw_cinokeep |unlet {a:vt}netrw_cinokeep |endif | 398 if exists("{a:vt}netrw_cinokeep") |let &l:cino = {a:vt}netrw_cinokeep |unlet {a:vt}netrw_cinokeep |endif |
391 if exists("{a:vt}netrw_comkeep") |let &l:com = {a:vt}netrw_comkeep |unlet {a:vt}netrw_comkeep |endif | 399 if exists("{a:vt}netrw_comkeep") |let &l:com = {a:vt}netrw_comkeep |unlet {a:vt}netrw_comkeep |endif |
392 if exists("{a:vt}netrw_cpokeep") |let &l:cpo = {a:vt}netrw_cpokeep |unlet {a:vt}netrw_cpokeep |endif | 400 if exists("{a:vt}netrw_cpokeep") |let &l:cpo = {a:vt}netrw_cpokeep |unlet {a:vt}netrw_cpokeep |endif |
395 if exists("{a:vt}netrw_dirkeep") |exe "keepjumps lcd ".fnameescape(dirkeep)|unlet {a:vt}netrw_dirkeep |endif | 403 if exists("{a:vt}netrw_dirkeep") |exe "keepjumps lcd ".fnameescape(dirkeep)|unlet {a:vt}netrw_dirkeep |endif |
396 endif | 404 endif |
397 if exists("{a:vt}netrw_fokeep") |let &l:fo = {a:vt}netrw_fokeep |unlet {a:vt}netrw_fokeep |endif | 405 if exists("{a:vt}netrw_fokeep") |let &l:fo = {a:vt}netrw_fokeep |unlet {a:vt}netrw_fokeep |endif |
398 if exists("{a:vt}netrw_gdkeep") |let &l:gd = {a:vt}netrw_gdkeep |unlet {a:vt}netrw_gdkeep |endif | 406 if exists("{a:vt}netrw_gdkeep") |let &l:gd = {a:vt}netrw_gdkeep |unlet {a:vt}netrw_gdkeep |endif |
399 if exists("{a:vt}netrw_hidkeep") |let &l:hidden = {a:vt}netrw_hidkeep |unlet {a:vt}netrw_hidkeep |endif | 407 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 | |
400 if exists("{a:vt}netrw_magic") |let &l:magic = {a:vt}netrw_magic |unlet {a:vt}netrw_magic |endif | 409 if exists("{a:vt}netrw_magic") |let &l:magic = {a:vt}netrw_magic |unlet {a:vt}netrw_magic |endif |
401 if exists("{a:vt}netrw_repkeep") |let &l:report = {a:vt}netrw_repkeep |unlet {a:vt}netrw_repkeep |endif | 410 if exists("{a:vt}netrw_repkeep") |let &l:report = {a:vt}netrw_repkeep |unlet {a:vt}netrw_repkeep |endif |
402 if exists("{a:vt}netrw_spellkeep")|let &l:spell = {a:vt}netrw_spellkeep |unlet {a:vt}netrw_spellkeep|endif | 411 if exists("{a:vt}netrw_spellkeep")|let &l:spell = {a:vt}netrw_spellkeep |unlet {a:vt}netrw_spellkeep|endif |
403 if exists("{a:vt}netrw_twkeep") |let &l:tw = {a:vt}netrw_twkeep |unlet {a:vt}netrw_twkeep |endif | 412 if exists("{a:vt}netrw_twkeep") |let &l:tw = {a:vt}netrw_twkeep |unlet {a:vt}netrw_twkeep |endif |
404 if exists("{a:vt}netrw_wigkeep") |let &l:wig = {a:vt}netrw_wigkeep |unlet {a:vt}netrw_wigkeep |endif | 413 if exists("{a:vt}netrw_wigkeep") |let &l:wig = {a:vt}netrw_wigkeep |unlet {a:vt}netrw_wigkeep |endif |
434 " call Decho("win#".winnr()."'s ft=".&ft) | 443 " call Decho("win#".winnr()."'s ft=".&ft) |
435 setlocal cino= | 444 setlocal cino= |
436 setlocal com= | 445 setlocal com= |
437 setlocal cpo-=aA | 446 setlocal cpo-=aA |
438 if exists("&acd") | setlocal noacd | endif | 447 if exists("&acd") | setlocal noacd | endif |
439 setlocal nocin noai noci magic nospell nohid wig= noaw | 448 setlocal nocin noai nobomb noci magic nospell nohid wig= noaw noim |
440 setlocal fo=nroql2 | 449 setlocal fo=nroql2 |
441 setlocal tw=0 | 450 setlocal tw=0 |
442 setlocal report=10000 | 451 setlocal report=10000 |
443 setlocal isk+=@ isk+=* isk+=/ | 452 setlocal isk+=@ isk+=* isk+=/ |
444 if g:netrw_use_noswf && has("win32") && !has("win95") | 453 if g:netrw_use_noswf && has("win32") && !has("win95") |
445 setlocal noswf | 454 setlocal noswf |
446 endif | 455 endif |
456 call s:NetrwCursorline() | |
447 | 457 |
448 " allow the user to override safe options | 458 " allow the user to override safe options |
449 if &ft == "netrw" | 459 if &ft == "netrw" |
460 " call Decho("do any netrw FileType autocmds") | |
450 silent keepalt keepjumps doau FileType netrw | 461 silent keepalt keepjumps doau FileType netrw |
451 endif | 462 endif |
452 | 463 |
453 " call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist")) | 464 " call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist")) |
454 " call Dret("s:NetrwSafeOptions") | 465 " call Dret("s:NetrwSafeOptions") |
524 " call Dfunc("netrw#NetRead(mode=".a:mode.",...) a:0=".a:0." ".g:loaded_netrw) | 535 " call Dfunc("netrw#NetRead(mode=".a:mode.",...) a:0=".a:0." ".g:loaded_netrw) |
525 | 536 |
526 " NetRead: save options {{{3 | 537 " NetRead: save options {{{3 |
527 call s:NetrwOptionSave("w:") | 538 call s:NetrwOptionSave("w:") |
528 call s:NetrwSafeOptions() | 539 call s:NetrwSafeOptions() |
540 call s:RestoreCursorline() | |
529 | 541 |
530 " NetRead: interpret mode into a readcmd {{{3 | 542 " NetRead: interpret mode into a readcmd {{{3 |
531 if a:mode == 0 " read remote file before current line | 543 if a:mode == 0 " read remote file before current line |
532 let readcmd = "0r" | 544 let readcmd = "0r" |
533 elseif a:mode == 1 " read file after current line | 545 elseif a:mode == 1 " read file after current line |
620 | 632 |
621 " Check if NetrwBrowse() should be handling this request | 633 " Check if NetrwBrowse() should be handling this request |
622 " call Decho("checking if NetrwBrowse() should handle choice<".choice."> with netrw_list_cmd<".g:netrw_list_cmd.">") | 634 " call Decho("checking if NetrwBrowse() should handle choice<".choice."> with netrw_list_cmd<".g:netrw_list_cmd.">") |
623 if choice =~ "^.*[\/]$" && b:netrw_method != 5 && choice !~ '^http://' | 635 if choice =~ "^.*[\/]$" && b:netrw_method != 5 && choice !~ '^http://' |
624 " call Decho("yes, choice matches '^.*[\/]$'") | 636 " call Decho("yes, choice matches '^.*[\/]$'") |
625 keepjumps call s:NetrwBrowse(0,choice) | 637 keepj call s:NetrwBrowse(0,choice) |
626 " call Dret("netrw#NetRead :3 getcwd<".getcwd().">") | 638 " call Dret("netrw#NetRead :3 getcwd<".getcwd().">") |
627 return | 639 return |
628 endif | 640 endif |
629 | 641 |
630 " ============ | 642 " ============ |
667 " call Decho("read via ftp+.netrc (method #2)") | 679 " call Decho("read via ftp+.netrc (method #2)") |
668 let netrw_fname= b:netrw_fname | 680 let netrw_fname= b:netrw_fname |
669 call s:SaveBufVars()|new|call s:RestoreBufVars() | 681 call s:SaveBufVars()|new|call s:RestoreBufVars() |
670 let filtbuf= bufnr("%") | 682 let filtbuf= bufnr("%") |
671 setlocal ff=unix | 683 setlocal ff=unix |
672 put =g:netrw_ftpmode | 684 keepj put =g:netrw_ftpmode |
673 " call Decho("filter input: ".getline(line("$"))) | 685 " call Decho("filter input: ".getline(line("$"))) |
674 if exists("g:netrw_ftpextracmd") | 686 if exists("g:netrw_ftpextracmd") |
675 put =g:netrw_ftpextracmd | 687 keepj put =g:netrw_ftpextracmd |
676 " call Decho("filter input: ".getline(line("$"))) | 688 " call Decho("filter input: ".getline(line("$"))) |
677 endif | 689 endif |
678 call setline(line("$")+1,'get "'.netrw_fname.'" '.tmpfile) | 690 call setline(line("$")+1,'get "'.netrw_fname.'" '.tmpfile) |
679 " call Decho("filter input: ".getline(line("$"))) | 691 " call Decho("filter input: ".getline(line("$"))) |
680 if exists("g:netrw_port") && g:netrw_port != "" | 692 if exists("g:netrw_port") && g:netrw_port != "" |
709 let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape) | 721 let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape) |
710 call s:SaveBufVars()|new|call s:RestoreBufVars() | 722 call s:SaveBufVars()|new|call s:RestoreBufVars() |
711 let filtbuf= bufnr("%") | 723 let filtbuf= bufnr("%") |
712 setlocal ff=unix | 724 setlocal ff=unix |
713 if exists("g:netrw_port") && g:netrw_port != "" | 725 if exists("g:netrw_port") && g:netrw_port != "" |
714 put ='open '.g:netrw_machine.' '.g:netrw_port | 726 keepj put ='open '.g:netrw_machine.' '.g:netrw_port |
715 " call Decho("filter input: ".getline('.')) | 727 " call Decho("filter input: ".getline('.')) |
716 else | 728 else |
717 put ='open '.g:netrw_machine | 729 keepj put ='open '.g:netrw_machine |
718 " call Decho("filter input: ".getline('.')) | 730 " call Decho("filter input: ".getline('.')) |
719 endif | 731 endif |
720 | 732 |
721 if exists("g:netrw_ftp") && g:netrw_ftp == 1 | 733 if exists("g:netrw_ftp") && g:netrw_ftp == 1 |
722 put =g:netrw_uid | 734 keepj put =g:netrw_uid |
723 " call Decho("filter input: ".getline('.')) | 735 " call Decho("filter input: ".getline('.')) |
724 put ='\"'.s:netrw_passwd.'\"' | 736 keepj put ='\"'.s:netrw_passwd.'\"' |
725 " call Decho("filter input: ".getline('.')) | 737 " call Decho("filter input: ".getline('.')) |
726 else | 738 else |
727 put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' | 739 keepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' |
728 " call Decho("filter input: ".getline('.')) | 740 " call Decho("filter input: ".getline('.')) |
729 endif | 741 endif |
730 | 742 |
731 if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" | 743 if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" |
732 put =g:netrw_ftpmode | 744 keepj put =g:netrw_ftpmode |
733 " call Decho("filter input: ".getline('.')) | 745 " call Decho("filter input: ".getline('.')) |
734 endif | 746 endif |
735 if exists("g:netrw_ftpextracmd") | 747 if exists("g:netrw_ftpextracmd") |
736 put =g:netrw_ftpextracmd | 748 put =g:netrw_ftpextracmd |
737 " call Decho("filter input: ".getline('.')) | 749 " call Decho("filter input: ".getline('.')) |
738 endif | 750 endif |
739 put ='get \"'.netrw_fname.'\" '.tmpfile | 751 keepj put ='get \"'.netrw_fname.'\" '.tmpfile |
740 " call Decho("filter input: ".getline('.')) | 752 " call Decho("filter input: ".getline('.')) |
741 | 753 |
742 " perform ftp: | 754 " perform ftp: |
743 " -i : turns off interactive prompting from ftp | 755 " -i : turns off interactive prompting from ftp |
744 " -n unix : DON'T use <.netrc>, even though it exists | 756 " -n unix : DON'T use <.netrc>, even though it exists |
828 " Construct execution string (four lines) which will be passed through filter | 840 " Construct execution string (four lines) which will be passed through filter |
829 let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape) | 841 let netrw_fname= escape(b:netrw_fname,g:netrw_fname_escape) |
830 new | 842 new |
831 setlocal ff=unix | 843 setlocal ff=unix |
832 if exists("g:netrw_port") && g:netrw_port != "" | 844 if exists("g:netrw_port") && g:netrw_port != "" |
833 put ='open '.g:netrw_machine.' '.g:netrw_port | 845 keepj put ='open '.g:netrw_machine.' '.g:netrw_port |
834 else | 846 else |
835 put ='open '.g:netrw_machine | 847 keepj put ='open '.g:netrw_machine |
836 endif | 848 endif |
837 put ='user '.g:netrw_uid.' '.s:netrw_passwd | 849 keepj put ='user '.g:netrw_uid.' '.s:netrw_passwd |
838 put ='get '.netrw_fname.' '.tmpfile | 850 keepj put ='get '.netrw_fname.' '.tmpfile |
839 put ='quit' | 851 keepj put ='quit' |
840 | 852 |
841 " perform cadaver operation: | 853 " perform cadaver operation: |
842 norm! 1Gdd | 854 keepj norm! 1Gdd |
843 " call Decho("executing: %!".g:netrw_dav_cmd) | 855 " call Decho("executing: %!".g:netrw_dav_cmd) |
844 exe s:netrw_silentxfer."%!".g:netrw_dav_cmd | 856 exe s:netrw_silentxfer."%!".g:netrw_dav_cmd |
845 bd! | 857 bd! |
846 endif | 858 endif |
847 let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method) | 859 let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method) |
945 if &binary | 957 if &binary |
946 " For binary writes, always write entire file. | 958 " For binary writes, always write entire file. |
947 " (line numbers don't really make sense for that). | 959 " (line numbers don't really make sense for that). |
948 " Also supports the writing of tar and zip files. | 960 " Also supports the writing of tar and zip files. |
949 " call Decho("(write entire file) silent exe w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile)) | 961 " call Decho("(write entire file) silent exe w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile)) |
950 silent exe "w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile) | 962 exe "silent keepj w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile) |
951 elseif g:netrw_cygwin | 963 elseif g:netrw_cygwin |
952 " write (selected portion of) file to temporary | 964 " write (selected portion of) file to temporary |
953 let cygtmpfile= substitute(tmpfile,'/cygdrive/\(.\)','\1:','') | 965 let cygtmpfile= substitute(tmpfile,'/cygdrive/\(.\)','\1:','') |
954 " call Decho("(write selected portion) silent exe ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(cygtmpfile)) | 966 " call Decho("(write selected portion) silent exe ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(cygtmpfile)) |
955 silent exe a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(cygtmpfile) | 967 exe "sil keepj ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(cygtmpfile) |
956 else | 968 else |
957 " write (selected portion of) file to temporary | 969 " write (selected portion of) file to temporary |
958 " call Decho("(write selected portion) silent exe ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile)) | 970 " call Decho("(write selected portion) silent exe ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile)) |
959 silent exe a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile) | 971 exe "sil keepj ".a:firstline."," . a:lastline . "w! ".fnameescape(v:cmdarg)." ".fnameescape(tmpfile) |
960 endif | 972 endif |
961 | 973 |
962 if curbufname == "" | 974 if curbufname == "" |
963 " if the file is [No Name], and one attempts to Nwrite it, the buffer takes | 975 " if the file is [No Name], and one attempts to Nwrite it, the buffer takes |
964 " on the temporary file's name. Deletion of the temporary file during | 976 " on the temporary file's name. Deletion of the temporary file during |
1070 setlocal bh=hide | 1082 setlocal bh=hide |
1071 enew | 1083 enew |
1072 | 1084 |
1073 " call Decho("filter input window#".winnr()) | 1085 " call Decho("filter input window#".winnr()) |
1074 setlocal ff=unix | 1086 setlocal ff=unix |
1075 put =g:netrw_ftpmode | 1087 keepj put =g:netrw_ftpmode |
1076 " call Decho("filter input: ".getline('$')) | 1088 " call Decho("filter input: ".getline('$')) |
1077 if exists("g:netrw_ftpextracmd") | 1089 if exists("g:netrw_ftpextracmd") |
1078 put =g:netrw_ftpextracmd | 1090 keepj put =g:netrw_ftpextracmd |
1079 " call Decho("filter input: ".getline("$")) | 1091 " call Decho("filter input: ".getline("$")) |
1080 endif | 1092 endif |
1081 call setline(line("$")+1,'put "'.tmpfile.'" "'.netrw_fname.'"') | 1093 call setline(line("$")+1,'put "'.tmpfile.'" "'.netrw_fname.'"') |
1082 " call Decho("filter input: ".getline("$")) | 1094 " call Decho("filter input: ".getline("$")) |
1083 if exists("g:netrw_port") && g:netrw_port != "" | 1095 if exists("g:netrw_port") && g:netrw_port != "" |
1117 setlocal bh=hide | 1129 setlocal bh=hide |
1118 enew | 1130 enew |
1119 setlocal ff=unix | 1131 setlocal ff=unix |
1120 | 1132 |
1121 if exists("g:netrw_port") && g:netrw_port != "" | 1133 if exists("g:netrw_port") && g:netrw_port != "" |
1122 put ='open '.g:netrw_machine.' '.g:netrw_port | 1134 keepj put ='open '.g:netrw_machine.' '.g:netrw_port |
1123 " call Decho("filter input: ".getline('.')) | 1135 " call Decho("filter input: ".getline('.')) |
1124 else | 1136 else |
1125 put ='open '.g:netrw_machine | 1137 keepj put ='open '.g:netrw_machine |
1126 " call Decho("filter input: ".getline('.')) | 1138 " call Decho("filter input: ".getline('.')) |
1127 endif | 1139 endif |
1128 if exists("g:netrw_ftp") && g:netrw_ftp == 1 | 1140 if exists("g:netrw_ftp") && g:netrw_ftp == 1 |
1129 put =g:netrw_uid | 1141 keepj put =g:netrw_uid |
1130 " call Decho("filter input: ".getline('.')) | 1142 " call Decho("filter input: ".getline('.')) |
1131 put ='\"'.s:netrw_passwd.'\"' | 1143 keepj put ='\"'.s:netrw_passwd.'\"' |
1132 " call Decho("filter input: ".getline('.')) | 1144 " call Decho("filter input: ".getline('.')) |
1133 else | 1145 else |
1134 put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' | 1146 keepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' |
1135 " call Decho("filter input: ".getline('.')) | 1147 " call Decho("filter input: ".getline('.')) |
1136 endif | 1148 endif |
1137 put =g:netrw_ftpmode | 1149 keepj put =g:netrw_ftpmode |
1138 " call Decho("filter input: ".getline('$')) | 1150 " call Decho("filter input: ".getline('$')) |
1139 if exists("g:netrw_ftpextracmd") | 1151 if exists("g:netrw_ftpextracmd") |
1140 put =g:netrw_ftpextracmd | 1152 keepj put =g:netrw_ftpextracmd |
1141 " call Decho("filter input: ".getline("$")) | 1153 " call Decho("filter input: ".getline("$")) |
1142 endif | 1154 endif |
1143 put ='put \"'.tmpfile.'\" \"'.netrw_fname.'\"' | 1155 keepj put ='put \"'.tmpfile.'\" \"'.netrw_fname.'\"' |
1144 " call Decho("filter input: ".getline('.')) | 1156 " call Decho("filter input: ".getline('.')) |
1145 " save choice/id/password for future use | 1157 " save choice/id/password for future use |
1146 let b:netrw_lastfile = choice | 1158 let b:netrw_lastfile = choice |
1147 | 1159 |
1148 " perform ftp: | 1160 " perform ftp: |
1149 " -i : turns off interactive prompting from ftp | 1161 " -i : turns off interactive prompting from ftp |
1150 " -n unix : DON'T use <.netrc>, even though it exists | 1162 " -n unix : DON'T use <.netrc>, even though it exists |
1151 " -n win32: quit being obnoxious about password | 1163 " -n win32: quit being obnoxious about password |
1152 norm! 1Gdd | 1164 keepj norm! 1Gdd |
1153 " call Decho("executing: %!".g:netrw_ftp_cmd." -i -n") | 1165 " call Decho("executing: %!".g:netrw_ftp_cmd." -i -n") |
1154 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n" | 1166 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n" |
1155 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) | 1167 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) |
1156 if getline(1) !~ "^$" | 1168 if getline(1) !~ "^$" |
1157 if !exists("g:netrw_quiet") | 1169 if !exists("g:netrw_quiet") |
1201 setlocal bh=hide | 1213 setlocal bh=hide |
1202 enew | 1214 enew |
1203 | 1215 |
1204 setlocal ff=unix | 1216 setlocal ff=unix |
1205 if exists("g:netrw_port") && g:netrw_port != "" | 1217 if exists("g:netrw_port") && g:netrw_port != "" |
1206 put ='open '.g:netrw_machine.' '.g:netrw_port | 1218 keepj put ='open '.g:netrw_machine.' '.g:netrw_port |
1207 else | 1219 else |
1208 put ='open '.g:netrw_machine | 1220 keepj put ='open '.g:netrw_machine |
1209 endif | 1221 endif |
1210 if exists("g:netrw_uid") && exists("s:netrw_passwd") | 1222 if exists("g:netrw_uid") && exists("s:netrw_passwd") |
1211 put ='user '.g:netrw_uid.' '.s:netrw_passwd | 1223 keepj put ='user '.g:netrw_uid.' '.s:netrw_passwd |
1212 endif | 1224 endif |
1213 put ='put '.tmpfile.' '.netrw_fname | 1225 keepj put ='put '.tmpfile.' '.netrw_fname |
1214 | 1226 |
1215 " perform cadaver operation: | 1227 " perform cadaver operation: |
1216 norm! 1Gdd | 1228 keepj norm! 1Gdd |
1217 " call Decho("executing: %!".g:netrw_dav_cmd) | 1229 " call Decho("executing: %!".g:netrw_dav_cmd) |
1218 exe s:netrw_silentxfer."%!".g:netrw_dav_cmd | 1230 exe s:netrw_silentxfer."%!".g:netrw_dav_cmd |
1219 | 1231 |
1220 " remove enew buffer (quietly) | 1232 " remove enew buffer (quietly) |
1221 let filtbuf= bufnr("%") | 1233 let filtbuf= bufnr("%") |
1380 e! | 1392 e! |
1381 endif | 1393 endif |
1382 | 1394 |
1383 " rename buffer back to remote filename | 1395 " rename buffer back to remote filename |
1384 " call Decho("exe silent! keepalt file ".fnameescape(rfile)) | 1396 " call Decho("exe silent! keepalt file ".fnameescape(rfile)) |
1385 exe "silent! keepalt file ".fnameescape(rfile) | 1397 exe "sil! keepalt file ".fnameescape(rfile) |
1386 filetype detect | 1398 filetype detect |
1387 " call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!") | 1399 " call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!") |
1388 let line1 = 1 | 1400 let line1 = 1 |
1389 let line2 = line("$") | 1401 let line2 = line("$") |
1390 | 1402 |
1667 endif | 1679 endif |
1668 | 1680 |
1669 if method == 3 " ftp (no <.netrc>) | 1681 if method == 3 " ftp (no <.netrc>) |
1670 let fourblanklines= line2 - 3 | 1682 let fourblanklines= line2 - 3 |
1671 if fourblanklines >= line1 | 1683 if fourblanklines >= line1 |
1672 exe "silent ".fourblanklines.",".line2."g/^\s*$/d" | 1684 exe "sil keepj ".fourblanklines.",".line2."g/^\s*$/d" |
1673 call histdel("/",-1) | 1685 call histdel("/",-1) |
1674 endif | 1686 endif |
1675 endif | 1687 endif |
1676 | 1688 |
1677 " call Dret("NetReadFixup") | 1689 " call Dret("NetReadFixup") |
1691 if !exists("g:netrw_uid") || g:netrw_uid == "" | 1703 if !exists("g:netrw_uid") || g:netrw_uid == "" |
1692 " via prompt | 1704 " via prompt |
1693 let g:netrw_uid= input('Enter username: ') | 1705 let g:netrw_uid= input('Enter username: ') |
1694 endif | 1706 endif |
1695 else " from command line | 1707 else " from command line |
1696 " call Dfunc("NetUserPass(a:1<".a:1.">) {") | 1708 " call Dfunc("NetUserPass(a:1<".a:1.">)") |
1697 let g:netrw_uid= a:1 | 1709 let g:netrw_uid= a:1 |
1698 endif | 1710 endif |
1699 | 1711 |
1700 " get password | 1712 " get password |
1701 if a:0 <= 1 " via prompt | 1713 if a:0 <= 1 " via prompt |
1761 nnoremap <buffer> <silent> u :<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr> | 1773 nnoremap <buffer> <silent> u :<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr> |
1762 nnoremap <buffer> <silent> U :<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr> | 1774 nnoremap <buffer> <silent> U :<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr> |
1763 nnoremap <buffer> <silent> v :call <SID>NetrwSplit(5)<cr> | 1775 nnoremap <buffer> <silent> v :call <SID>NetrwSplit(5)<cr> |
1764 nnoremap <buffer> <silent> x :call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr> | 1776 nnoremap <buffer> <silent> x :call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr> |
1765 nnoremap <buffer> <silent> % :call <SID>NetrwOpenFile(1)<cr> | 1777 nnoremap <buffer> <silent> % :call <SID>NetrwOpenFile(1)<cr> |
1778 inoremap <buffer> <silent> <cr> <c-o>:call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr> | |
1779 inoremap <buffer> <silent> - <c-o>:exe "norm! 0"<bar>call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,'../'))<cr> | |
1780 inoremap <buffer> <silent> a <c-o>:call <SID>NetrwHide(1)<cr> | |
1781 inoremap <buffer> <silent> mb <c-o>:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr> | |
1782 inoremap <buffer> <silent> mc <c-o>:<c-u>call <SID>NetrwMarkFileCopy(1)<cr> | |
1783 inoremap <buffer> <silent> md <c-o>:<c-u>call <SID>NetrwMarkFileDiff(1)<cr> | |
1784 inoremap <buffer> <silent> me <c-o>:<c-u>call <SID>NetrwMarkFileEdit(1)<cr> | |
1785 inoremap <buffer> <silent> mf <c-o>:<c-u>call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr> | |
1786 inoremap <buffer> <silent> mg <c-o>:<c-u>call <SID>NetrwMarkFileGrep(1)<cr> | |
1787 inoremap <buffer> <silent> mh <c-o>:<c-u>call <SID>NetrwMarkHideSfx(1)<cr> | |
1788 inoremap <buffer> <silent> mm <c-o>:<c-u>call <SID>NetrwMarkFileMove(1)<cr> | |
1789 inoremap <buffer> <silent> mp <c-o>:<c-u>call <SID>NetrwMarkFilePrint(1)<cr> | |
1790 inoremap <buffer> <silent> mr <c-o>:<c-u>call <SID>NetrwMarkFileRegexp(1)<cr> | |
1791 inoremap <buffer> <silent> ms <c-o>:<c-u>call <SID>NetrwMarkFileSource(1)<cr> | |
1792 inoremap <buffer> <silent> mT <c-o>:<c-u>call <SID>NetrwMarkFileTag(1)<cr> | |
1793 inoremap <buffer> <silent> mt <c-o>:<c-u>call <SID>NetrwMarkFileTgt(1)<cr> | |
1794 inoremap <buffer> <silent> mu <c-o>:<c-u>call <SID>NetrwUnMarkFile(1)<cr> | |
1795 inoremap <buffer> <silent> mx <c-o>:<c-u>call <SID>NetrwMarkFileExe(1)<cr> | |
1796 inoremap <buffer> <silent> mz <c-o>:<c-u>call <SID>NetrwMarkFileCompress(1)<cr> | |
1797 inoremap <buffer> <silent> gb <c-o>:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr> | |
1798 inoremap <buffer> <silent> gh <c-o>:<c-u>call <SID>NetrwHidden(1)<cr> | |
1799 inoremap <buffer> <silent> gp <c-o>:<c-u>call <SID>NetrwChgPerm(1,b:netrw_curdir)<cr> | |
1800 inoremap <buffer> <silent> c <c-o>:exe "keepjumps lcd ".fnameescape(b:netrw_curdir)<cr> | |
1801 inoremap <buffer> <silent> C <c-o>:let g:netrw_chgwin= winnr()<cr> | |
1802 inoremap <buffer> <silent> d <c-o>:call <SID>NetrwMakeDir("")<cr> | |
1803 inoremap <buffer> <silent> i <c-o>:call <SID>NetrwListStyle(1)<cr> | |
1804 inoremap <buffer> <silent> I <c-o>:call <SID>NetrwBannerCtrl(1)<cr> | |
1805 inoremap <buffer> <silent> o <c-o>:call <SID>NetrwSplit(3)<cr> | |
1806 inoremap <buffer> <silent> O <c-o>:call <SID>NetrwObtain(1)<cr> | |
1807 inoremap <buffer> <silent> p <c-o>:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr> | |
1808 inoremap <buffer> <silent> P <c-o>:call <SID>NetrwPrevWinOpen(1)<cr> | |
1809 inoremap <buffer> <silent> qb <c-o>:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr> | |
1810 inoremap <buffer> <silent> mB <c-o>:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr> | |
1811 inoremap <buffer> <silent> qf <c-o>:<c-u>call <SID>NetrwFileInfo(1,<SID>NetrwGetWord())<cr> | |
1812 inoremap <buffer> <silent> r <c-o>:let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,'./'))<cr> | |
1813 inoremap <buffer> <silent> s <c-o>:call <SID>NetrwSortStyle(1)<cr> | |
1814 inoremap <buffer> <silent> S <c-o>:call <SID>NetSortSequence(1)<cr> | |
1815 inoremap <buffer> <silent> t <c-o>:call <SID>NetrwSplit(4)<cr> | |
1816 inoremap <buffer> <silent> T <c-o>:call <SID>NetrwSplit(4)<bar>norm! gT<cr> | |
1817 inoremap <buffer> <silent> u <c-o>:<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr> | |
1818 inoremap <buffer> <silent> U <c-o>:<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr> | |
1819 inoremap <buffer> <silent> v <c-o>:call <SID>NetrwSplit(5)<cr> | |
1820 inoremap <buffer> <silent> x <c-o>:call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr> | |
1821 inoremap <buffer> <silent> % <c-o>:call <SID>NetrwOpenFile(1)<cr> | |
1766 if !hasmapto('<Plug>NetrwHideEdit') | 1822 if !hasmapto('<Plug>NetrwHideEdit') |
1767 nmap <buffer> <unique> <c-h> <Plug>NetrwHideEdit | 1823 nmap <buffer> <unique> <c-h> <Plug>NetrwHideEdit |
1824 imap <buffer> <unique> <c-h> <Plug>NetrwHideEdit | |
1768 endif | 1825 endif |
1769 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(1)<cr> | 1826 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(1)<cr> |
1770 if !hasmapto('<Plug>NetrwRefresh') | 1827 if !hasmapto('<Plug>NetrwRefresh') |
1771 nmap <buffer> <unique> <c-l> <Plug>NetrwRefresh | 1828 nmap <buffer> <unique> <c-l> <Plug>NetrwRefresh |
1829 imap <buffer> <unique> <c-l> <Plug>NetrwRefresh | |
1772 endif | 1830 endif |
1773 nnoremap <buffer> <silent> <Plug>NetrwRefresh :call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,'./'))<cr> | 1831 nnoremap <buffer> <silent> <Plug>NetrwRefresh :call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,'./'))<cr> |
1774 if s:didstarstar || !mapcheck("<s-down>","n") | 1832 if s:didstarstar || !mapcheck("<s-down>","n") |
1775 nnoremap <buffer> <silent> <s-down> :Nexplore<cr> | 1833 nnoremap <buffer> <silent> <s-down> :Nexplore<cr> |
1834 inoremap <buffer> <silent> <s-down> :Nexplore<cr> | |
1776 endif | 1835 endif |
1777 if s:didstarstar || !mapcheck("<s-up>","n") | 1836 if s:didstarstar || !mapcheck("<s-up>","n") |
1778 nnoremap <buffer> <silent> <s-up> :Pexplore<cr> | 1837 nnoremap <buffer> <silent> <s-up> :Pexplore<cr> |
1838 inoremap <buffer> <silent> <s-up> :Pexplore<cr> | |
1779 endif | 1839 endif |
1780 let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape) | 1840 let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape) |
1781 if g:netrw_mousemaps == 1 | 1841 if g:netrw_mousemaps == 1 |
1782 nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call <SID>NetrwLeftmouse(1)<cr> | 1842 nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call <SID>NetrwLeftmouse(1)<cr> |
1783 nnoremap <buffer> <silent> <middlemouse> <leftmouse>:call <SID>NetrwPrevWinOpen(1)<cr> | 1843 nnoremap <buffer> <silent> <middlemouse> <leftmouse>:call <SID>NetrwPrevWinOpen(1)<cr> |
1784 nnoremap <buffer> <silent> <s-leftmouse> <leftmouse>:call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr> | 1844 nnoremap <buffer> <silent> <s-leftmouse> <leftmouse>:call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr> |
1785 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 1845 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
1786 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 1846 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
1847 inoremap <buffer> <silent> <leftmouse> <c-o><leftmouse><c-o>:call <SID>NetrwLeftmouse(1)<cr> | |
1848 inoremap <buffer> <silent> <middlemouse> <c-o><leftmouse><c-o>:call <SID>NetrwPrevWinOpen(1)<cr> | |
1849 inoremap <buffer> <silent> <s-leftmouse> <c-o><leftmouse><c-o>:call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr> | |
1850 exe 'inoremap <buffer> <silent> <rightmouse> <c-o><leftmouse><c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | |
1787 endif | 1851 endif |
1788 exe 'nnoremap <buffer> <silent> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 1852 exe 'nnoremap <buffer> <silent> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
1853 exe 'nnoremap <buffer> <silent> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | |
1854 exe 'nnoremap <buffer> <silent> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' | |
1855 exe 'nnoremap <buffer> <silent> <Leader>m :call <SID>NetrwMakeDir("")<cr>' | |
1789 exe 'vnoremap <buffer> <silent> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 1856 exe 'vnoremap <buffer> <silent> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
1790 exe 'nnoremap <buffer> <silent> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | |
1791 exe 'vnoremap <buffer> <silent> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 1857 exe 'vnoremap <buffer> <silent> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
1792 exe 'nnoremap <buffer> <silent> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' | |
1793 exe 'vnoremap <buffer> <silent> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' | 1858 exe 'vnoremap <buffer> <silent> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' |
1794 exe 'nnoremap <buffer> <silent> <Leader>m :call <SID>NetrwMakeDir("")<cr>' | 1859 exe 'inoremap <buffer> <silent> <del> <c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
1860 exe 'inoremap <buffer> <silent> D <c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | |
1861 exe 'inoremap <buffer> <silent> R <c-o>:call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' | |
1862 exe 'inoremap <buffer> <silent> <Leader>m <c-o>:call <SID>NetrwMakeDir("")<cr>' | |
1795 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> | 1863 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> |
1796 | 1864 |
1797 else " remote | 1865 else " remote |
1798 " call Decho("make remote maps") | 1866 " call Decho("make remote maps") |
1799 call s:RemotePathAnalysis(b:netrw_curdir) | 1867 call s:RemotePathAnalysis(b:netrw_curdir) |
1838 nnoremap <buffer> <silent> u :<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr> | 1906 nnoremap <buffer> <silent> u :<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr> |
1839 nnoremap <buffer> <silent> U :<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr> | 1907 nnoremap <buffer> <silent> U :<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr> |
1840 nnoremap <buffer> <silent> v :call <SID>NetrwSplit(2)<cr> | 1908 nnoremap <buffer> <silent> v :call <SID>NetrwSplit(2)<cr> |
1841 nnoremap <buffer> <silent> x :call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr> | 1909 nnoremap <buffer> <silent> x :call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr> |
1842 nnoremap <buffer> <silent> % :call <SID>NetrwOpenFile(0)<cr> | 1910 nnoremap <buffer> <silent> % :call <SID>NetrwOpenFile(0)<cr> |
1911 inoremap <buffer> <silent> <cr> <c-o>:call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()))<cr> | |
1912 inoremap <buffer> <silent> <c-l> <c-o>:call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr> | |
1913 inoremap <buffer> <silent> - <c-o>:exe "norm! 0"<bar>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,'../'))<cr> | |
1914 inoremap <buffer> <silent> a <c-o>:call <SID>NetrwHide(0)<cr> | |
1915 inoremap <buffer> <silent> mb <c-o>:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr> | |
1916 inoremap <buffer> <silent> mc <c-o>:<c-u>call <SID>NetrwMarkFileCopy(0)<cr> | |
1917 inoremap <buffer> <silent> md <c-o>:<c-u>call <SID>NetrwMarkFileDiff(0)<cr> | |
1918 inoremap <buffer> <silent> me <c-o>:<c-u>call <SID>NetrwMarkFileEdit(0)<cr> | |
1919 inoremap <buffer> <silent> mf <c-o>:<c-u>call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr> | |
1920 inoremap <buffer> <silent> mg <c-o>:<c-u>call <SID>NetrwMarkFileGrep(0)<cr> | |
1921 inoremap <buffer> <silent> mh <c-o>:<c-u>call <SID>NetrwMarkHideSfx(0)<cr> | |
1922 inoremap <buffer> <silent> mm <c-o>:<c-u>call <SID>NetrwMarkFileMove(0)<cr> | |
1923 inoremap <buffer> <silent> mp <c-o>:<c-u>call <SID>NetrwMarkFilePrint(0)<cr> | |
1924 inoremap <buffer> <silent> mr <c-o>:<c-u>call <SID>NetrwMarkFileRegexp(0)<cr> | |
1925 inoremap <buffer> <silent> ms <c-o>:<c-u>call <SID>NetrwMarkFileSource(0)<cr> | |
1926 inoremap <buffer> <silent> mT <c-o>:<c-u>call <SID>NetrwMarkFileTag(0)<cr> | |
1927 inoremap <buffer> <silent> mt <c-o>:<c-u>call <SID>NetrwMarkFileTgt(0)<cr> | |
1928 inoremap <buffer> <silent> mu <c-o>:<c-u>call <SID>NetrwUnMarkFile(0)<cr> | |
1929 inoremap <buffer> <silent> mx <c-o>:<c-u>call <SID>NetrwMarkFileExe(0)<cr> | |
1930 inoremap <buffer> <silent> mz <c-o>:<c-u>call <SID>NetrwMarkFileCompress(0)<cr> | |
1931 inoremap <buffer> <silent> gb <c-o>:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_cur)<cr> | |
1932 inoremap <buffer> <silent> gh <c-o>:<c-u>call <SID>NetrwHidden(0)<cr> | |
1933 inoremap <buffer> <silent> gp <c-o>:<c-u>call <SID>NetrwChgPerm(0,b:netrw_curdir)<cr> | |
1934 inoremap <buffer> <silent> C <c-o>:let g:netrw_chgwin= winnr()<cr> | |
1935 inoremap <buffer> <silent> i <c-o>:call <SID>NetrwListStyle(0)<cr> | |
1936 inoremap <buffer> <silent> I <c-o>:call <SID>NetrwBannerCtrl(1)<cr> | |
1937 inoremap <buffer> <silent> o <c-o>:call <SID>NetrwSplit(0)<cr> | |
1938 inoremap <buffer> <silent> O <c-o>:call <SID>NetrwObtain(0)<cr> | |
1939 inoremap <buffer> <silent> p <c-o>:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr> | |
1940 inoremap <buffer> <silent> P <c-o>:call <SID>NetrwPrevWinOpen(0)<cr> | |
1941 inoremap <buffer> <silent> qb <c-o>:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr> | |
1942 inoremap <buffer> <silent> mB <c-o>:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr> | |
1943 inoremap <buffer> <silent> qf <c-o>:<c-u>call <SID>NetrwFileInfo(0,<SID>NetrwGetWord())<cr> | |
1944 inoremap <buffer> <silent> r <c-o>:let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,'./'))<cr> | |
1945 inoremap <buffer> <silent> s <c-o>:call <SID>NetrwSortStyle(0)<cr> | |
1946 inoremap <buffer> <silent> S <c-o>:call <SID>NetSortSequence(0)<cr> | |
1947 inoremap <buffer> <silent> t <c-o>:call <SID>NetrwSplit(1)<cr> | |
1948 inoremap <buffer> <silent> T <c-o>:call <SID>NetrwSplit(1)<bar>norm! gT<cr> | |
1949 inoremap <buffer> <silent> u <c-o>:<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr> | |
1950 inoremap <buffer> <silent> U <c-o>:<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr> | |
1951 inoremap <buffer> <silent> v <c-o>:call <SID>NetrwSplit(2)<cr> | |
1952 inoremap <buffer> <silent> x <c-o>:call netrw#NetrwBrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr> | |
1953 inoremap <buffer> <silent> % <c-o>:call <SID>NetrwOpenFile(0)<cr> | |
1843 if !hasmapto('<Plug>NetrwHideEdit') | 1954 if !hasmapto('<Plug>NetrwHideEdit') |
1844 nmap <buffer> <c-h> <Plug>NetrwHideEdit | 1955 nmap <buffer> <c-h> <Plug>NetrwHideEdit |
1956 imap <buffer> <c-h> <Plug>NetrwHideEdit | |
1845 endif | 1957 endif |
1846 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(0)<cr> | 1958 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(0)<cr> |
1847 if !hasmapto('<Plug>NetrwRefresh') | 1959 if !hasmapto('<Plug>NetrwRefresh') |
1848 nmap <buffer> <c-l> <Plug>NetrwRefresh | 1960 nmap <buffer> <c-l> <Plug>NetrwRefresh |
1961 imap <buffer> <c-l> <Plug>NetrwRefresh | |
1849 endif | 1962 endif |
1850 | 1963 |
1851 let mapsafepath = escape(s:path, s:netrw_map_escape) | 1964 let mapsafepath = escape(s:path, s:netrw_map_escape) |
1852 let mapsafeusermach = escape(s:user.s:machine, s:netrw_map_escape) | 1965 let mapsafeusermach = escape(s:user.s:machine, s:netrw_map_escape) |
1853 | 1966 |
1856 nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call <SID>NetrwLeftmouse(0)<cr> | 1969 nnoremap <buffer> <silent> <leftmouse> <leftmouse>:call <SID>NetrwLeftmouse(0)<cr> |
1857 nnoremap <buffer> <silent> <middlemouse> <leftmouse>:call <SID>NetrwPrevWinOpen(0)<cr> | 1970 nnoremap <buffer> <silent> <middlemouse> <leftmouse>:call <SID>NetrwPrevWinOpen(0)<cr> |
1858 nnoremap <buffer> <silent> <s-leftmouse> <leftmouse>:call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr> | 1971 nnoremap <buffer> <silent> <s-leftmouse> <leftmouse>:call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr> |
1859 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1972 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1860 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1973 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1974 inoremap <buffer> <silent> <leftmouse> <c-o><leftmouse><c-o>:call <SID>NetrwLeftmouse(0)<cr> | |
1975 inoremap <buffer> <silent> <middlemouse> <c-o><leftmouse><c-o>:call <SID>NetrwPrevWinOpen(0)<cr> | |
1976 inoremap <buffer> <silent> <s-leftmouse> <c-o><leftmouse><c-o>:call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr> | |
1977 exe 'inoremap <buffer> <silent> <rightmouse> <c-o><leftmouse><c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
1861 endif | 1978 endif |
1862 exe 'nnoremap <buffer> <silent> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1979 exe 'nnoremap <buffer> <silent> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1980 exe 'nnoremap <buffer> <silent> d :call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>' | |
1981 exe 'nnoremap <buffer> <silent> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
1982 exe 'nnoremap <buffer> <silent> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
1863 exe 'vnoremap <buffer> <silent> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1983 exe 'vnoremap <buffer> <silent> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1864 exe 'nnoremap <buffer> <silent> d :call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>' | 1984 exe 'vnoremap <buffer> <silent> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1865 exe 'nnoremap <buffer> <silent> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1985 exe 'vnoremap <buffer> <silent> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1866 exe 'vnoremap <buffer> <silent> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1986 exe 'inoremap <buffer> <silent> <del> <c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1867 exe 'nnoremap <buffer> <silent> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1987 exe 'inoremap <buffer> <silent> d <c-o>:call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>' |
1868 exe 'vnoremap <buffer> <silent> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 1988 exe 'inoremap <buffer> <silent> D <c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
1989 exe 'inoremap <buffer> <silent> R <c-o>:call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
1869 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> | 1990 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> |
1991 inoremap <buffer> <F1> <c-o>:he netrw-quickhelp<cr> | |
1870 endif | 1992 endif |
1871 call s:SetRexDir(a:islocal,b:netrw_curdir) | 1993 call s:SetRexDir(a:islocal,b:netrw_curdir) |
1872 " call Dret("s:BrowserMaps") | 1994 " call Dret("s:BrowserMaps") |
1873 endfun | 1995 endfun |
1874 | 1996 |
1893 " 3: (browsing) record current directory history | 2015 " 3: (browsing) record current directory history |
1894 " 4: (user: <u>) go up (previous) bookmark | 2016 " 4: (user: <u>) go up (previous) bookmark |
1895 " 5: (user: <U>) go down (next) bookmark | 2017 " 5: (user: <U>) go down (next) bookmark |
1896 " 6: (user: <mB>) delete bookmark | 2018 " 6: (user: <mB>) delete bookmark |
1897 fun! s:NetrwBookHistHandler(chg,curdir) | 2019 fun! s:NetrwBookHistHandler(chg,curdir) |
1898 " call Dfunc("NetrwBookHistHandler(chg=".a:chg." curdir<".a:curdir.">) cnt=".v:count." histcnt=".g:netrw_dirhist_cnt." histmax=".g:netrw_dirhistmax) | 2020 " call Dfunc("s:NetrwBookHistHandler(chg=".a:chg." curdir<".a:curdir.">) cnt=".v:count." histcnt=".g:netrw_dirhist_cnt." histmax=".g:netrw_dirhistmax) |
1899 | 2021 |
1900 if a:chg == 0 | 2022 if a:chg == 0 |
1901 " bookmark the current directory | 2023 " bookmark the current directory |
1902 " call Decho("(user: <b>) bookmark the current directory") | 2024 " call Decho("(user: <b>) bookmark the current directory") |
1903 if !exists("g:netrw_bookmarklist") | 2025 if !exists("g:netrw_bookmarklist") |
1976 if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}") | 2098 if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}") |
1977 " call Decho("changedir u#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">") | 2099 " call Decho("changedir u#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">") |
1978 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir") | 2100 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir") |
1979 setlocal ma noro | 2101 setlocal ma noro |
1980 " call Decho("setlocal ma noro") | 2102 " call Decho("setlocal ma noro") |
1981 %d | 2103 keepj %d |
1982 setlocal nomod | 2104 setlocal nomod |
1983 " call Decho("setlocal nomod") | 2105 " call Decho("setlocal nomod") |
1984 endif | 2106 endif |
1985 " " call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})) | 2107 " " call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})) |
1986 exe "e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}) | 2108 exe "keepj e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}) |
1987 else | 2109 else |
1988 let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt + 1 ) % g:netrw_dirhistmax | 2110 let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt + 1 ) % g:netrw_dirhistmax |
1989 echo "Sorry, no predecessor directory exists yet" | 2111 echo "Sorry, no predecessor directory exists yet" |
1990 endif | 2112 endif |
1991 | 2113 |
1996 if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}") | 2118 if exists("g:netrw_dirhist_{g:netrw_dirhist_cnt}") |
1997 " call Decho("changedir U#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">") | 2119 " call Decho("changedir U#".g:netrw_dirhist_cnt."<".g:netrw_dirhist_{g:netrw_dirhist_cnt}.">") |
1998 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir") | 2120 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir") |
1999 setlocal ma noro | 2121 setlocal ma noro |
2000 " call Decho("setlocal ma noro") | 2122 " call Decho("setlocal ma noro") |
2001 %d | 2123 keepj %d |
2002 " call Decho("removed all lines from buffer (%d)") | 2124 " call Decho("removed all lines from buffer (%d)") |
2003 setlocal nomod | 2125 setlocal nomod |
2004 " call Decho("setlocal nomod") | 2126 " call Decho("setlocal nomod") |
2005 endif | 2127 endif |
2006 " call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})) | 2128 " call Decho("exe e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt})) |
2007 exe "e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}) | 2129 exe "keepj e! ".fnameescape(g:netrw_dirhist_{g:netrw_dirhist_cnt}) |
2008 else | 2130 else |
2009 let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt - 1 ) % g:netrw_dirhistmax | 2131 let g:netrw_dirhist_cnt= ( g:netrw_dirhist_cnt - 1 ) % g:netrw_dirhistmax |
2010 if g:netrw_dirhist_cnt < 0 | 2132 if g:netrw_dirhist_cnt < 0 |
2011 let g:netrw_dirhist_cnt= g:netrw_dirhist_cnt + g:netrw_dirhistmax | 2133 let g:netrw_dirhist_cnt= g:netrw_dirhist_cnt + g:netrw_dirhistmax |
2012 endif | 2134 endif |
2022 call delete(savefile) | 2144 call delete(savefile) |
2023 endif | 2145 endif |
2024 call remove(g:netrw_bookmarklist,v:count-1) | 2146 call remove(g:netrw_bookmarklist,v:count-1) |
2025 endif | 2147 endif |
2026 call s:NetrwBookmarkMenu() | 2148 call s:NetrwBookmarkMenu() |
2027 " call Dret("NetrwBookHistHandler") | 2149 " call Dret("s:NetrwBookHistHandler") |
2028 endfun | 2150 endfun |
2029 | 2151 |
2030 " --------------------------------------------------------------------- | 2152 " --------------------------------------------------------------------- |
2031 " s:NetrwBookHistRead: this function reads bookmarks and history {{{2 | 2153 " s:NetrwBookHistRead: this function reads bookmarks and history {{{2 |
2032 " Sister function: s:NetrwBookHistSave() | 2154 " Sister function: s:NetrwBookHistSave() |
2075 let cnt = 1 | 2197 let cnt = 1 |
2076 while cnt <= g:netrw_dirhist_cnt | 2198 while cnt <= g:netrw_dirhist_cnt |
2077 call setline((cnt+lastline),'let g:netrw_dirhist_'.cnt."='".g:netrw_dirhist_{cnt}."'") | 2199 call setline((cnt+lastline),'let g:netrw_dirhist_'.cnt."='".g:netrw_dirhist_{cnt}."'") |
2078 let cnt= cnt + 1 | 2200 let cnt= cnt + 1 |
2079 endwhile | 2201 endwhile |
2080 exe "silent! w! ".savefile | 2202 exe "sil! w! ".savefile |
2081 | 2203 |
2082 silent %d | 2204 sil keepj %d |
2083 if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != [] | 2205 if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != [] |
2084 " merge and write .netrwbook | 2206 " merge and write .netrwbook |
2085 let savefile= s:NetrwHome()."/.netrwbook" | 2207 let savefile= s:NetrwHome()."/.netrwbook" |
2086 | 2208 |
2087 if filereadable(savefile) | 2209 if filereadable(savefile) |
2088 let booklist= deepcopy(g:netrw_bookmarklist) | 2210 let booklist= deepcopy(g:netrw_bookmarklist) |
2089 exe "silent so ".savefile | 2211 exe "sil keepj so ".savefile |
2090 for bdm in booklist | 2212 for bdm in booklist |
2091 if index(g:netrw_bookmarklist,bdm) == -1 | 2213 if index(g:netrw_bookmarklist,bdm) == -1 |
2092 call add(g:netrw_bookmarklist,bdm) | 2214 call add(g:netrw_bookmarklist,bdm) |
2093 endif | 2215 endif |
2094 endfor | 2216 endfor |
2095 call sort(g:netrw_bookmarklist) | 2217 call sort(g:netrw_bookmarklist) |
2096 exe "silent! w! ".savefile | 2218 exe "sil! w! ".savefile |
2097 endif | 2219 endif |
2098 | 2220 |
2099 " construct and save .netrwbook | 2221 " construct and save .netrwbook |
2100 call setline(1,"let g:netrw_bookmarklist= ".string(g:netrw_bookmarklist)) | 2222 call setline(1,"let g:netrw_bookmarklist= ".string(g:netrw_bookmarklist)) |
2101 exe "silent! w! ".savefile | 2223 exe "sil! w! ".savefile |
2102 endif | 2224 endif |
2103 let bgone= bufnr("%") | 2225 let bgone= bufnr("%") |
2104 q! | 2226 q! |
2105 exe bgone."bwipe!" | 2227 exe bgone."bwipe!" |
2106 | 2228 |
2112 " list of the contents of a local or remote directory. It is assumed that the | 2234 " list of the contents of a local or remote directory. It is assumed that the |
2113 " g:netrw_list_cmd has a string, USEPORT HOSTNAME, that needs to be substituted | 2235 " g:netrw_list_cmd has a string, USEPORT HOSTNAME, that needs to be substituted |
2114 " with the requested remote hostname first. | 2236 " with the requested remote hostname first. |
2115 fun! s:NetrwBrowse(islocal,dirname) | 2237 fun! s:NetrwBrowse(islocal,dirname) |
2116 if !exists("w:netrw_liststyle")|let w:netrw_liststyle= g:netrw_liststyle|endif | 2238 if !exists("w:netrw_liststyle")|let w:netrw_liststyle= g:netrw_liststyle|endif |
2117 " call Dfunc("s:NetrwBrowse(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".w:netrw_liststyle." ".g:loaded_netrw." buf#".bufnr("%")."<".bufname("%").">") | 2239 " call Dfunc("s:NetrwBrowse(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".w:netrw_liststyle." ".g:loaded_netrw." buf#".bufnr("%")."<".bufname("%")."> win#".winnr()) |
2118 " call Decho("tab#".tabpagenr()." win#".winnr()) | 2240 " call Decho("tab#".tabpagenr()." win#".winnr()) |
2119 " call Dredir("ls!") | 2241 " call Dredir("ls!") |
2120 if !exists("s:netrw_initbookhist") | 2242 if !exists("s:netrw_initbookhist") |
2121 call s:NetrwBookHistRead() | 2243 call s:NetrwBookHistRead() |
2122 endif | 2244 endif |
2123 " call FOTEST(7) | 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)).">") | |
2124 | 2247 |
2125 " simplify the dirname (especially for ".."s in dirnames) | 2248 " simplify the dirname (especially for ".."s in dirnames) |
2126 if a:dirname !~ '^\a\+://' | 2249 if a:dirname !~ '^\a\+://' |
2127 let dirname= simplify(a:dirname) | 2250 let dirname= simplify(a:dirname) |
2128 else | 2251 else |
2129 let dirname= a:dirname | 2252 let dirname= a:dirname |
2130 endif | 2253 endif |
2131 " call FOTEST(8) | 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)).">") | |
2132 | 2256 |
2133 if exists("s:netrw_skipbrowse") | 2257 if exists("s:netrw_skipbrowse") |
2134 unlet s:netrw_skipbrowse | 2258 unlet s:netrw_skipbrowse |
2135 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) | 2259 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) |
2136 " call Dret("s:NetrwBrowse : s:netrw_skipbrowse=".s:netrw_skipbrowse) | 2260 " call Dret("s:NetrwBrowse : s:netrw_skipbrowse=".s:netrw_skipbrowse) |
2147 return | 2271 return |
2148 endif | 2272 endif |
2149 | 2273 |
2150 call s:NetrwOptionSave("w:") | 2274 call s:NetrwOptionSave("w:") |
2151 " call FOTEST(9) | 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)).">") | |
2152 | 2277 |
2153 " re-instate any marked files | 2278 " re-instate any marked files |
2154 if exists("s:netrwmarkfilelist_{bufnr('%')}") | 2279 if exists("s:netrwmarkfilelist_{bufnr('%')}") |
2155 " call Decho("clearing marked files") | 2280 " call Decho("clearing marked files") |
2156 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" | 2281 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" |
2157 endif | 2282 endif |
2158 " call FOTEST(10) | 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)).">") | |
2159 | 2285 |
2160 if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep | 2286 if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep |
2161 " call Decho("handle w:netrw_acdkeep:") | 2287 " call Decho("handle w:netrw_acdkeep:") |
2162 " call Decho("keepjumps lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")") | 2288 " call Decho("keepjumps lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")") |
2163 exe 'keepjumps lcd '.fnameescape(dirname) | 2289 exe 'keepj lcd '.fnameescape(dirname) |
2164 call s:NetrwSafeOptions() | 2290 call s:NetrwSafeOptions() |
2165 " call Decho("getcwd<".getcwd().">") | 2291 " call Decho("getcwd<".getcwd().">") |
2166 | 2292 |
2167 elseif !a:islocal && dirname !~ '[\/]$' && dirname !~ '^"' | 2293 elseif !a:islocal && dirname !~ '[\/]$' && dirname !~ '^"' |
2168 " looks like a regular file, attempt transfer | 2294 " looks like a regular file, attempt transfer |
2174 let path= substitute(dirname,'[*=@|]\r\=$','','e') | 2300 let path= substitute(dirname,'[*=@|]\r\=$','','e') |
2175 " call Decho("new path<".path.">") | 2301 " call Decho("new path<".path.">") |
2176 call s:RemotePathAnalysis(dirname) | 2302 call s:RemotePathAnalysis(dirname) |
2177 | 2303 |
2178 " remote-read the requested file into current buffer {{{3 | 2304 " remote-read the requested file into current buffer {{{3 |
2179 mark ' | 2305 keepj mark ' |
2180 call s:NetrwEnew(dirname) | 2306 call s:NetrwEnew(dirname) |
2181 call s:NetrwSafeOptions() | 2307 call s:NetrwSafeOptions() |
2182 setlocal ma noro | 2308 setlocal ma noro |
2183 " call Decho("setlocal ma noro") | 2309 " call Decho("setlocal ma noro") |
2184 let b:netrw_curdir= dirname | 2310 let b:netrw_curdir= dirname |
2185 " call Decho("exe silent! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)." (bt=".&bt.")") | 2311 " call Decho("exe silent! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)." (bt=".&bt.")") |
2186 exe "silent! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path) | 2312 exe "sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path) |
2187 exe "silent keepalt doau BufReadPre ".fnameescape(s:fname) | 2313 exe "sil keepalt doau BufReadPre ".fnameescape(s:fname) |
2188 silent call netrw#NetRead(2,s:method."://".s:user.s:machine."/".s:path) | 2314 silent call netrw#NetRead(2,s:method."://".s:user.s:machine."/".s:path) |
2189 if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz' | 2315 if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz' |
2190 " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error | 2316 " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error |
2191 exe "silent keepalt doau BufReadPost ".fnameescape(s:fname) | 2317 exe "sil keepalt doau BufReadPost ".fnameescape(s:fname) |
2192 endif | 2318 endif |
2193 | 2319 |
2194 " save certain window-oriented variables into buffer-oriented variables {{{3 | 2320 " save certain window-oriented variables into buffer-oriented variables {{{3 |
2195 call s:SetBufWinVars() | 2321 call s:SetBufWinVars() |
2196 call s:NetrwOptionRestore("w:") | 2322 call s:NetrwOptionRestore("w:") |
2199 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) | 2325 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) |
2200 " call Dret("s:NetrwBrowse : file<".s:fname.">") | 2326 " call Dret("s:NetrwBrowse : file<".s:fname.">") |
2201 return | 2327 return |
2202 endif | 2328 endif |
2203 " call FOTEST(11) | 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)).">") | |
2204 | 2331 |
2205 " use buffer-oriented WinVars if buffer ones exist but window ones don't {{{3 | 2332 " use buffer-oriented WinVars if buffer ones exist but window ones don't {{{3 |
2206 call s:UseBufWinVars() | 2333 call s:UseBufWinVars() |
2207 | 2334 |
2208 " set up some variables {{{3 | 2335 " set up some variables {{{3 |
2211 let s:last_sort_by = g:netrw_sort_by | 2338 let s:last_sort_by = g:netrw_sort_by |
2212 | 2339 |
2213 " set up menu {{{3 | 2340 " set up menu {{{3 |
2214 call s:NetrwMenu(1) | 2341 call s:NetrwMenu(1) |
2215 " call FOTEST(12) | 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)).">") | |
2216 | 2344 |
2217 " set up buffer {{{3 | 2345 " set up buffer {{{3 |
2218 let reusing= s:NetrwGetBuffer(a:islocal,dirname) | 2346 let reusing= s:NetrwGetBuffer(a:islocal,dirname) |
2219 " maintain markfile highlighting | 2347 " maintain markfile highlighting |
2220 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != "" | 2348 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != "" |
2231 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) | 2359 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap) |
2232 " call Dret("s:NetrwBrowse : re-using buffer") | 2360 " call Dret("s:NetrwBrowse : re-using buffer") |
2233 return | 2361 return |
2234 endif | 2362 endif |
2235 "" call FOTEST(13) " PROBLEM WITH LISTING | 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)).">") | |
2236 | 2365 |
2237 " set b:netrw_curdir to the new directory name {{{3 | 2366 " set b:netrw_curdir to the new directory name {{{3 |
2238 " call Decho("set b:netrw_curdir to the new directory name:") | 2367 " call Decho("set b:netrw_curdir to the new directory name: (buf#".bufnr("%").")") |
2239 let b:netrw_curdir= dirname | 2368 let b:netrw_curdir= dirname |
2240 if b:netrw_curdir =~ '[/\\]$' | 2369 if b:netrw_curdir =~ '[/\\]$' |
2241 let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e') | 2370 let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e') |
2242 endif | 2371 endif |
2243 if b:netrw_curdir == '' | 2372 if b:netrw_curdir == '' |
2253 if !a:islocal && b:netrw_curdir !~ '/$' | 2382 if !a:islocal && b:netrw_curdir !~ '/$' |
2254 let b:netrw_curdir= b:netrw_curdir.'/' | 2383 let b:netrw_curdir= b:netrw_curdir.'/' |
2255 endif | 2384 endif |
2256 " call Decho("b:netrw_curdir<".b:netrw_curdir.">") | 2385 " call Decho("b:netrw_curdir<".b:netrw_curdir.">") |
2257 "" call FOTEST(14) " PROBLEM WITH LISTING | 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)).">") | |
2258 | 2388 |
2259 " ------------ | 2389 " ------------ |
2260 " (local only) {{{3 | 2390 " (local only) {{{3 |
2261 " ------------ | 2391 " ------------ |
2262 if a:islocal | 2392 if a:islocal |
2270 " call Decho("handle g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd) | 2400 " call Decho("handle g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd) |
2271 " call Decho("l:acd".(exists("&l:acd")? "=".&l:acd : " doesn't exist")) | 2401 " call Decho("l:acd".(exists("&l:acd")? "=".&l:acd : " doesn't exist")) |
2272 if !exists("&l:acd") || !&l:acd | 2402 if !exists("&l:acd") || !&l:acd |
2273 " call Decho('exe keepjumps lcd '.fnameescape(b:netrw_curdir)) | 2403 " call Decho('exe keepjumps lcd '.fnameescape(b:netrw_curdir)) |
2274 try | 2404 try |
2275 exe 'keepjumps lcd '.fnameescape(b:netrw_curdir) | 2405 exe 'keepj lcd '.fnameescape(b:netrw_curdir) |
2276 catch /^Vim\%((\a\+)\)\=:E472/ | 2406 catch /^Vim\%((\a\+)\)\=:E472/ |
2277 call netrw#ErrorMsg(s:ERROR,"unable to change directory to <".b:netrw_curdir."> (permissions?)",61) | 2407 call netrw#ErrorMsg(s:ERROR,"unable to change directory to <".b:netrw_curdir."> (permissions?)",61) |
2278 if exists("w:netrw_prvdir") | 2408 if exists("w:netrw_prvdir") |
2279 let b:netrw_curdir= w:netrw_prvdir | 2409 let b:netrw_curdir= w:netrw_prvdir |
2280 else | 2410 else |
2325 endif | 2455 endif |
2326 let b:netrw_curdir= dirname | 2456 let b:netrw_curdir= dirname |
2327 " call Decho("b:netrw_curdir<".b:netrw_curdir."> (remote)") | 2457 " call Decho("b:netrw_curdir<".b:netrw_curdir."> (remote)") |
2328 endif " (additional remote handling) | 2458 endif " (additional remote handling) |
2329 "" call FOTEST(15) " PROBLEM WITH LISTING | 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)).">") | |
2330 | 2461 |
2331 " ----------------------- | 2462 " ----------------------- |
2332 " Directory Listing: {{{3 | 2463 " Directory Listing: {{{3 |
2333 " ----------------------- | 2464 " ----------------------- |
2334 call s:BrowserMaps(a:islocal) | 2465 call s:BrowserMaps(a:islocal) |
2335 "" call FOTEST(16) " PROBLEM WITH LISTING | 2466 "" call FOTEST(16) " PROBLEM WITH LISTING |
2336 call s:PerformListing(a:islocal) | 2467 call s:PerformListing(a:islocal) |
2337 " call FOTEST(17) | 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)).">") | |
2338 | 2470 |
2339 " The s:LocalBrowseShellCmdRefresh() function is called by an autocmd | 2471 " The s:LocalBrowseShellCmdRefresh() function is called by an autocmd |
2340 " installed by s:LocalFastBrowser() when g:netrw_fastbrowse <= 1 (ie. slow, medium speed). | 2472 " installed by s:LocalFastBrowser() when g:netrw_fastbrowse <= 1 (ie. slow, medium speed). |
2341 " However, s:NetrwBrowse() causes the ShellCmdPost event itself to fire once; setting | 2473 " However, s:NetrwBrowse() causes the ShellCmdPost event itself to fire once; setting |
2342 " the variable below avoids that second refresh of the screen. The s:LocalBrowseShellCmdRefresh() | 2474 " the variable below avoids that second refresh of the screen. The s:LocalBrowseShellCmdRefresh() |
2443 if bufnum > 0 && bufname(bufnum) != dirname && bufname(bufnum) != '.' | 2575 if bufnum > 0 && bufname(bufnum) != dirname && bufname(bufnum) != '.' |
2444 " handle approximate matches | 2576 " handle approximate matches |
2445 " call Decho(" handling approx match: bufnum#".bufnum."<".bufname(bufnum)."> approx-dirname<".dirname.">") | 2577 " call Decho(" handling approx match: bufnum#".bufnum."<".bufname(bufnum)."> approx-dirname<".dirname.">") |
2446 let ibuf = 1 | 2578 let ibuf = 1 |
2447 let buflast = bufnr("$") | 2579 let buflast = bufnr("$") |
2448 " call Decho(" findbuf2: buflast=".buflast) | 2580 " call Decho(" findbuf2: buflast=bufnr($)=".buflast) |
2449 while ibuf <= buflast | 2581 while ibuf <= buflast |
2450 let bname= substitute(bufname(ibuf),'\\','/','g') | 2582 let bname= substitute(bufname(ibuf),'\\','/','g') |
2451 let bname= substitute(bname,'.\zs/$','','') | 2583 let bname= substitute(bname,'.\zs/$','','') |
2452 " call Decho(" findbuf3: while [ibuf=",ibuf."]<=[buflast=".buflast."]: dirname<".dirname."> bufname(".ibuf.")<".bname.">") | 2584 " call Decho(" findbuf3: while [ibuf=",ibuf."]<=[buflast=".buflast."]: dirname<".dirname."> bname=bufname(".ibuf.")<".bname.">") |
2453 if bname != '' && dirname =~ '/'.bname.'/\=$' && dirname !~ '^/' | 2585 if bname != '' && dirname =~ '/'.bname.'/\=$' && dirname !~ '^/' |
2454 " call Decho(" findbuf3: passes test 1 : dirname<".dirname.'> =~ /'.bname.'/\=$ && dirname !~ ^/') | 2586 " bname is not empty |
2587 " dirname ends with bname, | |
2588 " dirname doesn't start with /, so its not a absolute path | |
2589 " call Decho(" findbuf3a: passes test 1 : dirname<".dirname.'> =~ /'.bname.'/\=$ && dirname !~ ^/') | |
2455 break | 2590 break |
2456 endif | 2591 endif |
2457 if bname =~ '^'.dirname.'/\=$' | 2592 if bname =~ '^'.dirname.'/\=$' |
2458 " call Decho(' findbuf3: passes test 2 : bname<'.bname.'>=~^'.dirname.'/\=$') | 2593 " bname begins with dirname |
2594 " call Decho(' findbuf3b: passes test 2 : bname<'.bname.'>=~^'.dirname.'/\=$') | |
2459 break | 2595 break |
2460 endif | 2596 endif |
2461 if dirname =~ '^'.bname.'/$' | 2597 if dirname =~ '^'.bname.'/$' |
2462 " call Decho(' findbuf3: passes test 3 : dirname<'.dirname.'>=~^'.bname.'/$') | 2598 " call Decho(' findbuf3c: passes test 3 : dirname<'.dirname.'>=~^'.bname.'/$') |
2599 break | |
2600 endif | |
2601 if bname != '' && dirname =~ '/'.bname.'$' && bname == bufname("%") && line("$") == 1 | |
2602 " call Decho(' findbuf3d: passes test 4 : dirname<'.dirname.'>=~ /'.bname.'$') | |
2463 break | 2603 break |
2464 endif | 2604 endif |
2465 let ibuf= ibuf + 1 | 2605 let ibuf= ibuf + 1 |
2466 endwhile | 2606 endwhile |
2467 if ibuf > buflast | 2607 if ibuf > buflast |
2472 " call Decho(" findbuf4: bufnum=".bufnum." (ibuf=".ibuf." buflast=".buflast.")") | 2612 " call Decho(" findbuf4: bufnum=".bufnum." (ibuf=".ibuf." buflast=".buflast.")") |
2473 endif | 2613 endif |
2474 endif | 2614 endif |
2475 | 2615 |
2476 " get enew buffer and name it -or- re-use buffer {{{3 | 2616 " get enew buffer and name it -or- re-use buffer {{{3 |
2477 " call Decho("--get enew buffer and name it OR re-use buffer-- (bufnum=".bufnum.")") | 2617 keepj mark ' |
2478 mark ' | |
2479 if bufnum < 0 || !bufexists(bufnum) | 2618 if bufnum < 0 || !bufexists(bufnum) |
2619 " call Decho("--get enew buffer and name it (bufexists([bufnum=".bufnum."])=".bufexists(bufnum).")") | |
2480 call s:NetrwEnew(dirname) | 2620 call s:NetrwEnew(dirname) |
2481 " call Decho(" got enew buffer#".bufnr("%")." (altbuf<".expand("#").">)") | 2621 " call Decho(" got enew buffer#".bufnr("%")." (altbuf<".expand("#").">)") |
2482 " name the buffer | 2622 " name the buffer |
2483 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST | 2623 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST |
2484 " Got enew buffer; transform into a NetrwTreeListing | 2624 " Got enew buffer; transform into a NetrwTreeListing |
2488 else | 2628 else |
2489 let s:netrw_treelistnum= s:netrw_treelistnum + 1 | 2629 let s:netrw_treelistnum= s:netrw_treelistnum + 1 |
2490 endif | 2630 endif |
2491 let w:netrw_treebufnr= bufnr("%") | 2631 let w:netrw_treebufnr= bufnr("%") |
2492 " call Decho(" exe silent! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum)) | 2632 " call Decho(" exe silent! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum)) |
2493 exe 'silent! keepalt file NetrwTreeListing\ '.fnameescape(s:netrw_treelistnum) | 2633 exe 'sil! keepalt file NetrwTreeListing\ '.fnameescape(s:netrw_treelistnum) |
2634 set bt=nofile noswf | |
2494 nnoremap <silent> <buffer> [ :silent call <SID>TreeListMove('[')<cr> | 2635 nnoremap <silent> <buffer> [ :silent call <SID>TreeListMove('[')<cr> |
2495 nnoremap <silent> <buffer> ] :silent call <SID>TreeListMove(']')<cr> | 2636 nnoremap <silent> <buffer> ] :silent call <SID>TreeListMove(']')<cr> |
2496 nnoremap <silent> <buffer> [[ :silent call <SID>TreeListMove('[')<cr> | 2637 nnoremap <silent> <buffer> [[ :silent call <SID>TreeListMove('[')<cr> |
2497 nnoremap <silent> <buffer> ]] :silent call <SID>TreeListMove(']')<cr> | 2638 nnoremap <silent> <buffer> ]] :silent call <SID>TreeListMove(']')<cr> |
2498 " call Decho(" tree listing#".s:netrw_treelistnum." bufnr=".w:netrw_treebufnr) | 2639 " call Decho(" tree listing#".s:netrw_treelistnum." bufnr=".w:netrw_treebufnr) |
2499 else | 2640 else |
2500 " let v:errmsg= "" " Decho | 2641 " let v:errmsg= "" " Decho |
2501 let escdirname= fnameescape(dirname) | 2642 let escdirname= fnameescape(dirname) |
2643 " call Decho(" errmsg<".v:errmsg."> bufnr(escdirname<".escdirname.">)=".bufnr(escdirname)." bufname()<".bufname(bufnr(escdirname)).">") | |
2644 " call Decho(' exe silent! keepalt file '.escdirname) | |
2645 " let v:errmsg= "" " Decho | |
2646 exe 'sil! keepalt file '.escdirname | |
2502 " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") | 2647 " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") |
2503 " call Decho(' exe silent! keepalt file '.escdirname) | |
2504 exe 'silent! keepalt file '.escdirname | |
2505 " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">") | |
2506 endif | 2648 endif |
2507 " call Decho(" named enew buffer#".bufnr("%")."<".bufname("%").">") | 2649 " call Decho(" named enew buffer#".bufnr("%")."<".bufname("%").">") |
2508 | 2650 |
2509 else " Re-use the buffer | 2651 else " Re-use the buffer |
2510 " call Decho("--re-use buffer#".bufnum.": --") | 2652 " call Decho("--re-use buffer#".bufnum." (bufexists([bufnum=".bufnum."])=".bufexists(bufnum).")") |
2511 let eikeep= &ei | 2653 let eikeep= &ei |
2512 set ei=all | 2654 set ei=all |
2513 if getline(2) =~ '^" Netrw Directory Listing' | 2655 if getline(2) =~ '^" Netrw Directory Listing' |
2514 " call Decho(" re-use buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: keepalt b ".bufnum) | 2656 " call Decho(" re-use buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: keepalt b ".bufnum) |
2515 exe "keepalt b ".bufnum | 2657 exe "keepalt b ".bufnum |
2517 " call Decho(" reusing buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: b ".bufnum) | 2659 " call Decho(" reusing buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: b ".bufnum) |
2518 exe "b ".bufnum | 2660 exe "b ".bufnum |
2519 endif | 2661 endif |
2520 if bufname("%") == '.' | 2662 if bufname("%") == '.' |
2521 " call Decho("exe silent! keepalt file ".fnameescape(getcwd())) | 2663 " call Decho("exe silent! keepalt file ".fnameescape(getcwd())) |
2522 exe "silent! keepalt file ".fnameescape(getcwd()) | 2664 exe "sil! keepalt file ".fnameescape(getcwd()) |
2523 endif | 2665 endif |
2524 let &ei= eikeep | 2666 let &ei= eikeep |
2525 if line("$") <= 1 | 2667 if line("$") <= 1 |
2526 call s:NetrwListSettings(a:islocal) | 2668 call s:NetrwListSettings(a:islocal) |
2527 " call Dret("s:NetrwGetBuffer 0 : re-using buffer#".bufnr("%").", but its empty, so refresh it") | 2669 " call Dret("s:NetrwGetBuffer 0 : re-using buffer#".bufnr("%").", but its empty, so refresh it") |
2528 return 0 | 2670 return 0 |
2529 elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST | 2671 elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST |
2530 " call Decho("--re-use tree listing--") | 2672 " call Decho("--re-use tree listing--") |
2531 " call Decho(" clear buffer<".expand("%")."> with :%d") | 2673 " call Decho(" clear buffer<".expand("%")."> with :%d") |
2532 silent %d | 2674 sil keepj %d |
2533 call s:NetrwListSettings(a:islocal) | 2675 call s:NetrwListSettings(a:islocal) |
2534 " call Dret("s:NetrwGetBuffer 0 : re-using buffer#".bufnr("%").", but treelist mode always needs a refresh") | 2676 " call Dret("s:NetrwGetBuffer 0 : re-using buffer#".bufnr("%").", but treelist mode always needs a refresh") |
2535 return 0 | 2677 return 0 |
2536 else | 2678 else |
2537 " call Dret("s:NetrwGetBuffer 1 : buf#".bufnr("%")) | 2679 " call Dret("s:NetrwGetBuffer 1 : buf#".bufnr("%")) |
2542 " do netrw settings: make this buffer not-a-file, modifiable, not line-numbered, etc {{{3 | 2684 " do netrw settings: make this buffer not-a-file, modifiable, not line-numbered, etc {{{3 |
2543 " fastbrowse Local Remote Hiding a buffer implies it may be re-used (fast) | 2685 " fastbrowse Local Remote Hiding a buffer implies it may be re-used (fast) |
2544 " slow 0 D D Deleting a buffer implies it will not be re-used (slow) | 2686 " slow 0 D D Deleting a buffer implies it will not be re-used (slow) |
2545 " med 1 D H | 2687 " med 1 D H |
2546 " fast 2 H H | 2688 " fast 2 H H |
2547 " call Decho("--do netrw settings: make this buffer not-a-file, modifiable, not line-numbered, etc--") | 2689 " call Decho("--do netrw settings: make this buffer#".bufnr("%")." not-a-file, modifiable, not line-numbered, etc--") |
2548 let fname= expand("%") | 2690 let fname= expand("%") |
2549 call s:NetrwListSettings(a:islocal) | 2691 call s:NetrwListSettings(a:islocal) |
2550 " call Decho("exe keepalt file ".fnameescape(fname)) | 2692 " call Decho("exe keepalt file ".fnameescape(fname)) |
2551 exe "keepalt file ".fnameescape(fname) | 2693 exe "keepalt file ".fnameescape(fname) |
2552 | 2694 |
2553 " delete all lines from buffer {{{3 | 2695 " delete all lines from buffer {{{3 |
2554 " call Decho("--delete all lines from buffer--") | 2696 " call Decho("--delete all lines from buffer--") |
2555 " call Decho(" clear buffer<".expand("%")."> with :%d") | 2697 " call Decho(" clear buffer<".expand("%")."> with :%d") |
2556 keepalt silent! %d | 2698 sil! keepalt keepj %d |
2557 | 2699 |
2558 " call Dret("s:NetrwGetBuffer 0 : buf#".bufnr("%")) | 2700 " call Dret("s:NetrwGetBuffer 0 : buf#".bufnr("%")) |
2559 return 0 | 2701 return 0 |
2560 endfun | 2702 endfun |
2561 | 2703 |
2593 endif | 2735 endif |
2594 | 2736 |
2595 if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt | 2737 if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt |
2596 " Active Banner support | 2738 " Active Banner support |
2597 " call Decho("active banner handling") | 2739 " call Decho("active banner handling") |
2598 norm! 0 | 2740 keepj norm! 0 |
2599 let dirname= "./" | 2741 let dirname= "./" |
2600 let curline= getline('.') | 2742 let curline= getline('.') |
2601 | 2743 |
2602 if curline =~ '"\s*Sorted by\s' | 2744 if curline =~ '"\s*Sorted by\s' |
2603 norm s | 2745 keepj norm s |
2604 let s:netrw_skipbrowse= 1 | 2746 let s:netrw_skipbrowse= 1 |
2605 echo 'Pressing "s" also works' | 2747 echo 'Pressing "s" also works' |
2606 | 2748 |
2607 elseif curline =~ '"\s*Sort sequence:' | 2749 elseif curline =~ '"\s*Sort sequence:' |
2608 let s:netrw_skipbrowse= 1 | 2750 let s:netrw_skipbrowse= 1 |
2609 echo 'Press "S" to edit sorting sequence' | 2751 echo 'Press "S" to edit sorting sequence' |
2610 | 2752 |
2611 elseif curline =~ '"\s*Quick Help:' | 2753 elseif curline =~ '"\s*Quick Help:' |
2612 norm ? | 2754 keepj norm ? |
2613 let s:netrw_skipbrowse= 1 | 2755 let s:netrw_skipbrowse= 1 |
2614 echo 'Pressing "?" also works' | 2756 echo 'Pressing "?" also works' |
2615 | 2757 |
2616 elseif curline =~ '"\s*\%(Hiding\|Showing\):' | 2758 elseif curline =~ '"\s*\%(Hiding\|Showing\):' |
2617 norm a | 2759 keepj norm a |
2618 let s:netrw_skipbrowse= 1 | 2760 let s:netrw_skipbrowse= 1 |
2619 echo 'Pressing "a" also works' | 2761 echo 'Pressing "a" also works' |
2620 | 2762 |
2621 elseif line("$") > w:netrw_bannercnt | 2763 elseif line("$") > w:netrw_bannercnt |
2622 exe 'silent keepjumps '.w:netrw_bannercnt | 2764 exe 'sil keepj '.w:netrw_bannercnt |
2623 endif | 2765 endif |
2624 | 2766 |
2625 elseif w:netrw_liststyle == s:THINLIST | 2767 elseif w:netrw_liststyle == s:THINLIST |
2626 " call Decho("thin column handling") | 2768 " call Decho("thin column handling") |
2627 norm! 0 | 2769 keepj norm! 0 |
2628 let dirname= getline('.') | 2770 let dirname= getline('.') |
2629 | 2771 |
2630 elseif w:netrw_liststyle == s:LONGLIST | 2772 elseif w:netrw_liststyle == s:LONGLIST |
2631 " call Decho("long column handling") | 2773 " call Decho("long column handling") |
2632 norm! 0 | 2774 keepj norm! 0 |
2633 let dirname= substitute(getline('.'),'^\(\%(\S\+ \)*\S\+\).\{-}$','\1','e') | 2775 let dirname= substitute(getline('.'),'^\(\%(\S\+ \)*\S\+\).\{-}$','\1','e') |
2634 | 2776 |
2635 elseif w:netrw_liststyle == s:TREELIST | 2777 elseif w:netrw_liststyle == s:TREELIST |
2636 " call Decho("treelist handling") | 2778 " call Decho("treelist handling") |
2637 let dirname= substitute(getline('.'),'^\(| \)*','','e') | 2779 let dirname= substitute(getline('.'),'^\(| \)*','','e') |
2650 " call Decho("buf#".bufnr("%")."<".bufname("%").">") | 2792 " call Decho("buf#".bufnr("%")."<".bufname("%").">") |
2651 let filestart = (virtcol(".")/b:netrw_cpf)*b:netrw_cpf | 2793 let filestart = (virtcol(".")/b:netrw_cpf)*b:netrw_cpf |
2652 " call Decho("filestart= ([virtcol=".virtcol(".")."]/[b:netrw_cpf=".b:netrw_cpf."])*b:netrw_cpf=".filestart." bannercnt=".w:netrw_bannercnt) | 2794 " call Decho("filestart= ([virtcol=".virtcol(".")."]/[b:netrw_cpf=".b:netrw_cpf."])*b:netrw_cpf=".filestart." bannercnt=".w:netrw_bannercnt) |
2653 " call Decho("1: dirname<".dirname.">") | 2795 " call Decho("1: dirname<".dirname.">") |
2654 if filestart == 0 | 2796 if filestart == 0 |
2655 norm! 0ma | 2797 keepj norm! 0ma |
2656 else | 2798 else |
2657 call cursor(line("."),filestart+1) | 2799 call cursor(line("."),filestart+1) |
2658 norm! ma | 2800 keepj norm! ma |
2659 endif | 2801 endif |
2660 let rega= @a | 2802 let rega= @a |
2661 let eofname= filestart + b:netrw_cpf + 1 | 2803 let eofname= filestart + b:netrw_cpf + 1 |
2662 if eofname <= col("$") | 2804 if eofname <= col("$") |
2663 call cursor(line("."),filestart+b:netrw_cpf+1) | 2805 call cursor(line("."),filestart+b:netrw_cpf+1) |
2664 norm! "ay`a | 2806 keepj norm! "ay`a |
2665 else | 2807 else |
2666 norm! "ay$ | 2808 keepj norm! "ay$ |
2667 endif | 2809 endif |
2668 let dirname = @a | 2810 let dirname = @a |
2669 let @a = rega | 2811 let @a = rega |
2670 " call Decho("2: dirname<".dirname.">") | 2812 " call Decho("2: dirname<".dirname.">") |
2671 let dirname= substitute(dirname,'\s\+$','','e') | 2813 let dirname= substitute(dirname,'\s\+$','','e') |
2681 " call Dret("s:NetrwGetWord <".dirname.">") | 2823 " call Dret("s:NetrwGetWord <".dirname.">") |
2682 return dirname | 2824 return dirname |
2683 endfun | 2825 endfun |
2684 | 2826 |
2685 " --------------------------------------------------------------------- | 2827 " --------------------------------------------------------------------- |
2686 " s:NetrwListSettings: {{{2 | 2828 " s:NetrwListSettings: make standard settings for a netrw listing {{{2 |
2687 fun! s:NetrwListSettings(islocal) | 2829 fun! s:NetrwListSettings(islocal) |
2688 " call Dfunc("s:NetrwListSettings(islocal=".a:islocal.")") | 2830 " call Dfunc("s:NetrwListSettings(islocal=".a:islocal.")") |
2689 let fname= bufname("%") | 2831 let fname= bufname("%") |
2690 " call Decho("setlocal bt=nofile nobl ma nonu nowrap noro") | 2832 " call Decho("setlocal bt=nofile nobl ma nonu nowrap noro") |
2691 setlocal bt=nofile nobl ma nonu nowrap noro | 2833 setlocal bt=nofile nobl ma nonu nowrap noro |
2747 setlocal ma noro | 2889 setlocal ma noro |
2748 " call Decho("setlocal ma noro") | 2890 " call Decho("setlocal ma noro") |
2749 | 2891 |
2750 " clear buffer - this will cause NetrwBrowse/LocalBrowseCheck to do a refresh | 2892 " clear buffer - this will cause NetrwBrowse/LocalBrowseCheck to do a refresh |
2751 " call Decho("clear buffer<".expand("%")."> with :%d") | 2893 " call Decho("clear buffer<".expand("%")."> with :%d") |
2752 %d | 2894 keepj %d |
2895 " following prevents tree listing buffer from being marked "modified" | |
2896 setlocal nomod | |
2897 | |
2898 " refresh the listing | |
2899 " call Decho("refresh the listing") | |
2900 let svpos= netrw#NetrwSavePosn() | |
2901 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | |
2902 call netrw#NetrwRestorePosn(svpos) | |
2903 call s:NetrwCursorline() | |
2904 | |
2905 " keep cursor on the filename | |
2906 sil keepj $ | |
2907 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')) | |
2909 if result <= 0 && exists("w:netrw_bannercnt") | |
2910 exe "keepj ".w:netrw_bannercnt | |
2911 endif | |
2912 | |
2913 " call Dret("NetrwListStyle".(exists("w:netrw_liststyle")? ' : w:netrw_liststyle='.w:netrw_liststyle : "")) | |
2914 endfun | |
2915 | |
2916 " --------------------------------------------------------------------- | |
2917 " s:NetrwBannerCtrl: toggles the display of the banner {{{2 | |
2918 fun! s:NetrwBannerCtrl(islocal) | |
2919 " call Dfunc("s:NetrwBannerCtrl(islocal=".a:islocal.") g:netrw_banner=".g:netrw_banner) | |
2920 | |
2921 " toggle the banner (enable/suppress) | |
2922 let g:netrw_banner= !g:netrw_banner | |
2753 | 2923 |
2754 " refresh the listing | 2924 " refresh the listing |
2755 let svpos= netrw#NetrwSavePosn() | 2925 let svpos= netrw#NetrwSavePosn() |
2756 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | 2926 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) |
2757 call netrw#NetrwRestorePosn(svpos) | |
2758 if w:netrw_liststyle != s:WIDELIST | |
2759 if g:netrw_cursorline == 2 | |
2760 setlocal cursorline | |
2761 let &cursorcolumn= s:netrw_usercuc | |
2762 elseif g:netrw_cursorline | |
2763 setlocal cursorline | |
2764 " call Decho("setlocal cursorline") | |
2765 endif | |
2766 else | |
2767 if g:netrw_cursorline == 2 | |
2768 setlocal cursorline cursorcolumn | |
2769 " call Decho("setlocal cursorline cursorcolumn") | |
2770 elseif g:netrw_cursorline | |
2771 let &cursorline= s:netrw_usercul | |
2772 endif | |
2773 endif | |
2774 | 2927 |
2775 " keep cursor on the filename | 2928 " keep cursor on the filename |
2776 silent keepjumps $ | 2929 let fname= s:NetrwGetWord() |
2930 sil keepj $ | |
2777 let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc') | 2931 let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc') |
2778 " call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A')) | 2932 " call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A')) |
2779 if result <= 0 && exists("w:netrw_bannercnt") | 2933 if result <= 0 && exists("w:netrw_bannercnt") |
2780 exe "keepjumps ".w:netrw_bannercnt | 2934 exe "keepj ".w:netrw_bannercnt |
2781 endif | |
2782 | |
2783 " call Dret("NetrwListStyle".(exists("w:netrw_liststyle")? ' : w:netrw_liststyle='.w:netrw_liststyle : "")) | |
2784 endfun | |
2785 | |
2786 " --------------------------------------------------------------------- | |
2787 " s:NetrwBannerCtrl: toggles the display of the banner {{{2 | |
2788 fun! s:NetrwBannerCtrl(islocal) | |
2789 " call Dfunc("s:NetrwBannerCtrl(islocal=".a:islocal.") g:netrw_banner=".g:netrw_banner) | |
2790 | |
2791 " toggle the banner (enable/suppress) | |
2792 let g:netrw_banner= !g:netrw_banner | |
2793 | |
2794 " refresh the listing | |
2795 let svpos= netrw#NetrwSavePosn() | |
2796 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | |
2797 | |
2798 " keep cursor on the filename | |
2799 let fname= s:NetrwGetWord() | |
2800 silent keepjumps $ | |
2801 let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc') | |
2802 " call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A')) | |
2803 if result <= 0 && exists("w:netrw_bannercnt") | |
2804 exe "keepjumps ".w:netrw_bannercnt | |
2805 endif | 2935 endif |
2806 " call Dret("s:NetrwBannerCtrl : g:netrw_banner=".g:netrw_banner) | 2936 " call Dret("s:NetrwBannerCtrl : g:netrw_banner=".g:netrw_banner) |
2807 endfun | 2937 endfun |
2808 | 2938 |
2809 " --------------------------------------------------------------------- | 2939 " --------------------------------------------------------------------- |
2819 | 2949 |
2820 " the following test assures that gvim is running, has menus available, and has menus enabled. | 2950 " the following test assures that gvim is running, has menus available, and has menus enabled. |
2821 if has("gui") && has("menu") && has("gui_running") && &go =~ 'm' && g:netrw_menu | 2951 if has("gui") && has("menu") && has("gui_running") && &go =~ 'm' && g:netrw_menu |
2822 if exists("g:NetrwTopLvlMenu") | 2952 if exists("g:NetrwTopLvlMenu") |
2823 " call Decho("removing ".g:NetrwTopLvlMenu."Bookmarks menu item(s)") | 2953 " call Decho("removing ".g:NetrwTopLvlMenu."Bookmarks menu item(s)") |
2824 exe 'silent! unmenu '.g:NetrwTopLvlMenu.'Bookmarks' | 2954 exe 'sil! unmenu '.g:NetrwTopLvlMenu.'Bookmarks' |
2825 exe 'silent! unmenu '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete' | 2955 exe 'sil! unmenu '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete' |
2826 endif | 2956 endif |
2827 if !exists("s:netrw_initbookhist") | 2957 if !exists("s:netrw_initbookhist") |
2828 call s:NetrwBookHistRead() | 2958 call s:NetrwBookHistRead() |
2829 endif | 2959 endif |
2830 | 2960 |
2831 " show bookmarked places | 2961 " show bookmarked places |
2832 if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != [] | 2962 if exists("g:netrw_bookmarklist") && g:netrw_bookmarklist != [] |
2833 let cnt= 1 | 2963 let cnt= 1 |
2834 for bmd in g:netrw_bookmarklist | 2964 for bmd in g:netrw_bookmarklist |
2835 " call Decho('silent! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmark.'.bmd.' :e '.bmd) | 2965 " call Decho('silent! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmark.'.bmd.' :e '.bmd) |
2836 let bmd= escape(bmd,'. ') | 2966 let bmd= escape(bmd,g:netrw_menu_escape) |
2837 | 2967 |
2838 " show bookmarks for goto menu | 2968 " show bookmarks for goto menu |
2839 exe 'silent! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks.'.bmd.' :e '.bmd."\<cr>" | 2969 exe 'sil! menu '.g:NetrwMenuPriority.".2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks.'.bmd.' :e '.bmd."\<cr>" |
2840 | 2970 |
2841 " show bookmarks for deletion menu | 2971 " show bookmarks for deletion menu |
2842 exe 'silent! menu '.g:NetrwMenuPriority.".8.2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete.'.bmd.' '.cnt."mB" | 2972 exe 'sil! menu '.g:NetrwMenuPriority.".8.2.".cnt." ".g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Delete.'.bmd.' '.cnt."mB" |
2843 let cnt= cnt + 1 | 2973 let cnt= cnt + 1 |
2844 endfor | 2974 endfor |
2845 | 2975 |
2846 endif | 2976 endif |
2847 | 2977 |
2851 let histcnt = 0 | 2981 let histcnt = 0 |
2852 while ( first || cnt != g:netrw_dirhist_cnt ) | 2982 while ( first || cnt != g:netrw_dirhist_cnt ) |
2853 let histcnt = histcnt + 1 | 2983 let histcnt = histcnt + 1 |
2854 let priority = g:netrw_dirhist_cnt + histcnt | 2984 let priority = g:netrw_dirhist_cnt + histcnt |
2855 if exists("g:netrw_dirhist_{cnt}") | 2985 if exists("g:netrw_dirhist_{cnt}") |
2856 let histdir= escape(g:netrw_dirhist_{cnt},'./&? ') | 2986 let histdir= escape(g:netrw_dirhist_{cnt},g:netrw_menu_escape) |
2857 " call Decho('silent! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.' :e '.histdir) | 2987 " call Decho('silent! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.' :e '.histdir) |
2858 exe 'silent! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.' :e '.histdir."\<cr>" | 2988 exe 'sil! menu '.g:NetrwMenuPriority.".3.".priority." ".g:NetrwTopLvlMenu.'History.'.histdir.' :e '.histdir."\<cr>" |
2859 endif | 2989 endif |
2860 let first = 0 | 2990 let first = 0 |
2861 let cnt = ( cnt - 1 ) % g:netrw_dirhistmax | 2991 let cnt = ( cnt - 1 ) % g:netrw_dirhistmax |
2862 if cnt < 0 | 2992 if cnt < 0 |
2863 let cnt= cnt + g:netrw_dirhistmax | 2993 let cnt= cnt + g:netrw_dirhistmax |
2884 " call Dredir("ls!") | 3014 " call Dredir("ls!") |
2885 " call Dret("s:NetrwBrowseChgDir") | 3015 " call Dret("s:NetrwBrowseChgDir") |
2886 return | 3016 return |
2887 endif | 3017 endif |
2888 | 3018 |
2889 " check if the status bar was clicked on instead of a file/directory name | |
2890 call feedkeys("\<LeftMouse>") | |
2891 let c= getchar() | |
2892 let mouse_lnum = v:mouse_lnum | |
2893 let wlastline = line('w$') | |
2894 let lastline = line('$') | |
2895 " call Decho("v:mouse_lnum=".mouse_lnum." line(w$)=".wlastline." line($)=".lastline) | |
2896 if mouse_lnum == wlastline + 1 || v:mouse_win != winnr() | |
2897 " call Decho("appears to be a status bar leftmouse click") | |
2898 " appears to be a status bar leftmouse click | |
2899 return | |
2900 endif | |
2901 | |
2902 call s:NetrwOptionSave("s:") | 3019 call s:NetrwOptionSave("s:") |
2903 call s:NetrwSafeOptions() | 3020 call s:NetrwSafeOptions() |
2904 let nbcd_curpos = netrw#NetrwSavePosn() | 3021 let nbcd_curpos = netrw#NetrwSavePosn() |
2905 let s:nbcd_curpos_{bufnr('%')} = nbcd_curpos | 3022 let s:nbcd_curpos_{bufnr('%')} = nbcd_curpos |
2906 let dirname = substitute(b:netrw_curdir,'\\','/','ge') | 3023 if (has("win32") || has("win95") || has("win64") || has("win16")) |
2907 let newdir = a:newdir | 3024 let dirname = substitute(b:netrw_curdir,'\\','/','ge') |
2908 let dolockout = 0 | 3025 else |
3026 let dirname= b:netrw_curdir | |
3027 endif | |
3028 let newdir = a:newdir | |
3029 let dolockout = 0 | |
2909 | 3030 |
2910 " set up o/s-dependent directory recognition pattern | 3031 " set up o/s-dependent directory recognition pattern |
2911 if has("amiga") | 3032 if has("amiga") |
2912 let dirpat= '[\/:]$' | 3033 let dirpat= '[\/:]$' |
2913 else | 3034 else |
3026 if w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") | 3147 if w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") |
3027 " force a refresh | 3148 " force a refresh |
3028 " call Decho("clear buffer<".expand("%")."> with :%d") | 3149 " call Decho("clear buffer<".expand("%")."> with :%d") |
3029 setlocal noro ma | 3150 setlocal noro ma |
3030 " call Decho("setlocal noro ma") | 3151 " call Decho("setlocal noro ma") |
3031 keepjumps %d | 3152 keepj %d |
3032 endif | 3153 endif |
3033 | 3154 |
3034 if has("amiga") | 3155 if has("amiga") |
3035 " amiga | 3156 " amiga |
3036 " call Decho('case "go up one directory": newdir == "../" and amiga') | 3157 " call Decho('case "go up one directory": newdir == "../" and amiga') |
3062 " force a refresh (for TREELIST, wait for NetrwTreeDir() to force the refresh) | 3183 " force a refresh (for TREELIST, wait for NetrwTreeDir() to force the refresh) |
3063 setlocal noro ma | 3184 setlocal noro ma |
3064 " call Decho("setlocal noro ma") | 3185 " call Decho("setlocal noro ma") |
3065 if !(exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")) | 3186 if !(exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("b:netrw_curdir")) |
3066 " call Decho("clear buffer<".expand("%")."> with :%d") | 3187 " call Decho("clear buffer<".expand("%")."> with :%d") |
3067 keepjumps %d | 3188 keepj %d |
3068 endif | 3189 endif |
3069 let treedir = s:NetrwTreeDir() | 3190 let treedir = s:NetrwTreeDir() |
3070 let s:treecurpos = nbcd_curpos | 3191 let s:treecurpos = nbcd_curpos |
3071 let haskey= 0 | 3192 let haskey= 0 |
3072 " call Decho("w:netrw_treedict<".string(w:netrw_treedict).">") | 3193 " call Decho("w:netrw_treedict<".string(w:netrw_treedict).">") |
3105 " close tree listing for selected subdirectory | 3226 " close tree listing for selected subdirectory |
3106 " call Decho("closing selected subdirectory<".dirname.">") | 3227 " call Decho("closing selected subdirectory<".dirname.">") |
3107 call remove(w:netrw_treedict,treedir) | 3228 call remove(w:netrw_treedict,treedir) |
3108 " call Decho("removed entry<".treedir."> from treedict") | 3229 " call Decho("removed entry<".treedir."> from treedict") |
3109 " call Decho("yielding treedict<".string(w:netrw_treedict).">") | 3230 " call Decho("yielding treedict<".string(w:netrw_treedict).">") |
3110 let dirname = w:netrw_treetop | 3231 let dirname= w:netrw_treetop |
3111 else | 3232 else |
3112 " go down one directory | 3233 " go down one directory |
3113 let dirname= substitute(treedir,'/*$','/','') | 3234 let dirname= substitute(treedir,'/*$','/','') |
3114 " call Decho("go down one dir: treedir<".treedir.">") | 3235 " call Decho("go down one dir: treedir<".treedir.">") |
3115 endif | 3236 endif |
3202 " renaming failed | 3323 " renaming failed |
3203 let fname= s:netrw_tmpfile | 3324 let fname= s:netrw_tmpfile |
3204 endif | 3325 endif |
3205 else | 3326 else |
3206 let fname= a:fname | 3327 let fname= a:fname |
3328 " special ~ handler for local | |
3329 if fname =~ '^\~' && expand("$HOME") != "" | |
3330 " call Decho('invoking special ~ handler') | |
3331 let fname= substitute(fname,'^\~',expand("$HOME"),'') | |
3332 endif | |
3207 endif | 3333 endif |
3208 " call Decho("fname<".fname.">") | 3334 " call Decho("fname<".fname.">") |
3209 " call Decho("exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten)) | 3335 " call Decho("exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten)) |
3210 | 3336 |
3211 " set up redirection | 3337 " set up redirection |
3268 call inputsave()|call input("Press <cr> to continue")|call inputrestore() | 3394 call inputsave()|call input("Press <cr> to continue")|call inputrestore() |
3269 let ret= v:shell_error | 3395 let ret= v:shell_error |
3270 | 3396 |
3271 elseif has("unix") && executable("gnome-open") && !s:haskdeinit | 3397 elseif has("unix") && executable("gnome-open") && !s:haskdeinit |
3272 " call Decho("exe silent !gnome-open ".shellescape(fname,1)." ".redir) | 3398 " call Decho("exe silent !gnome-open ".shellescape(fname,1)." ".redir) |
3273 exe "silent !gnome-open ".shellescape(fname,1).redir | 3399 exe "sil !gnome-open ".shellescape(fname,1).redir |
3274 let ret= v:shell_error | 3400 let ret= v:shell_error |
3275 | 3401 |
3276 elseif has("unix") && executable("kfmclient") && s:haskdeinit | 3402 elseif has("unix") && executable("kfmclient") && s:haskdeinit |
3277 " call Decho("exe silent !kfmclient exec ".shellescape(fname,1)." ".redir) | 3403 " call Decho("exe silent !kfmclient exec ".shellescape(fname,1)." ".redir) |
3278 exe "silent !kfmclient exec ".shellescape(fname,1)." ".redir | 3404 exe "sil !kfmclient exec ".shellescape(fname,1)." ".redir |
3279 let ret= v:shell_error | 3405 let ret= v:shell_error |
3280 | 3406 |
3281 elseif has("macunix") && executable("open") | 3407 elseif has("macunix") && executable("open") |
3282 " call Decho("exe silent !open ".shellescape(fname,1)." ".redir) | 3408 " call Decho("exe silent !open ".shellescape(fname,1)." ".redir) |
3283 exe "silent !open ".shellescape(fname,1)." ".redir | 3409 exe "sil !open ".shellescape(fname,1)." ".redir |
3284 let ret= v:shell_error | 3410 let ret= v:shell_error |
3285 | 3411 |
3286 else | 3412 else |
3287 " netrwFileHandlers#Invoke() always returns 0 | 3413 " netrwFileHandlers#Invoke() always returns 0 |
3288 let ret= netrwFileHandlers#Invoke(exten,fname) | 3414 let ret= netrwFileHandlers#Invoke(exten,fname) |
3309 if a:remote == 1 | 3435 if a:remote == 1 |
3310 setlocal bh=delete bt=nofile | 3436 setlocal bh=delete bt=nofile |
3311 if g:netrw_use_noswf | 3437 if g:netrw_use_noswf |
3312 setlocal noswf | 3438 setlocal noswf |
3313 endif | 3439 endif |
3314 exe "norm! \<c-o>" | 3440 exe "keepj norm! \<c-o>" |
3315 " redraw! | 3441 " redraw! |
3316 endif | 3442 endif |
3317 | 3443 |
3318 " call Dret("NetrwBrowseX") | 3444 " call Dret("NetrwBrowseX") |
3319 endfun | 3445 endfun |
3379 " call Dfunc("netrw#Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.",a:1<".a:1.">) &modified=".&modified." a:0=".a:0) | 3505 " call Dfunc("netrw#Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.",a:1<".a:1.">) &modified=".&modified." a:0=".a:0) |
3380 if !exists("b:netrw_curdir") | 3506 if !exists("b:netrw_curdir") |
3381 let b:netrw_curdir= getcwd() | 3507 let b:netrw_curdir= getcwd() |
3382 " call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)") | 3508 " call Decho("set b:netrw_curdir<".b:netrw_curdir."> (used getcwd)") |
3383 endif | 3509 endif |
3384 let curdir = b:netrw_curdir | 3510 let curdir = simplify(b:netrw_curdir) |
3385 let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e') | 3511 let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e') |
3386 " call Decho("curdir<".curdir."> curfiledir<".curfiledir.">") | 3512 " call Decho("curdir<".curdir."> curfiledir<".curfiledir.">") |
3387 " call FOTEST(1) | 3513 " call FOTEST(1) |
3388 | 3514 |
3389 " save registers | 3515 " save registers |
3390 silent! let keepregstar = @* | 3516 sil! let keepregstar = @* |
3391 silent! let keepregplus = @+ | 3517 sil! let keepregplus = @+ |
3392 silent! let keepregslash= @/ | 3518 sil! let keepregslash= @/ |
3393 | 3519 |
3394 " if dosplit or file has been modified | 3520 " if dosplit or file has been modified |
3395 if a:dosplit || &modified || a:style == 6 | 3521 if a:dosplit || &modified || a:style == 6 |
3396 " call Decho("case: dosplit=".a:dosplit." modified=".&modified." a:style=".a:style) | 3522 " call Decho("case dosplit=".a:dosplit." modified=".&modified." a:style=".a:style.": dosplit or file has been modified") |
3397 call s:SaveWinVars() | 3523 call s:SaveWinVars() |
3398 let winsize= g:netrw_winsize | 3524 let winsize= g:netrw_winsize |
3399 if a:indx > 0 | 3525 if a:indx > 0 |
3400 let winsize= a:indx | 3526 let winsize= a:indx |
3401 endif | 3527 endif |
3429 " call Decho("style = 6: Texplore") | 3555 " call Decho("style = 6: Texplore") |
3430 tabnew | 3556 tabnew |
3431 call s:RestoreBufVars() | 3557 call s:RestoreBufVars() |
3432 endif | 3558 endif |
3433 call s:RestoreWinVars() | 3559 call s:RestoreWinVars() |
3434 endif | 3560 " else " Decho |
3435 norm! 0 | 3561 " call Decho("case a:dosplit=".a:dosplit." AND modified=".&modified." AND a:style=".a:style." is not 6") |
3562 endif | |
3563 keepj norm! 0 | |
3436 " call FOTEST(2) | 3564 " call FOTEST(2) |
3437 | 3565 |
3438 if a:0 > 0 | 3566 if a:0 > 0 |
3439 " call Decho("case [a:0=".a:0."]>0: a:1<".a:1.">") | 3567 " call Decho("case [a:0=".a:0."] > 0: a:1<".a:1.">") |
3440 if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)) | 3568 if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)) |
3441 let dirname= substitute(a:1,'\~',expand("$HOME"),'') | 3569 " call Decho("case a:1: ~ and unix or cygwin") |
3570 let dirname= simplify(substitute(a:1,'\~',expand("$HOME"),'')) | |
3442 " call Decho("using dirname<".dirname."> (case: ~ && unix||cygwin)") | 3571 " call Decho("using dirname<".dirname."> (case: ~ && unix||cygwin)") |
3443 elseif a:1 == '.' | 3572 elseif a:1 == '.' |
3444 let dirname= exists("b:netrw_curdir")? b:netrw_curdir : getcwd() | 3573 " call Decho("case a:1: .") |
3574 let dirname= simplify(exists("b:netrw_curdir")? b:netrw_curdir : getcwd()) | |
3445 if dirname !~ '/$' | 3575 if dirname !~ '/$' |
3446 let dirname= dirname."/" | 3576 let dirname= dirname."/" |
3447 endif | 3577 endif |
3448 " call Decho("using dirname<".dirname."> (case: ".(exists("b:netrw_curdir")? "b:netrw_curdir" : "getcwd()").")") | 3578 " call Decho("using dirname<".dirname."> (case: ".(exists("b:netrw_curdir")? "b:netrw_curdir" : "getcwd()").")") |
3449 elseif a:1 =~ '\$' | 3579 elseif a:1 =~ '\$' |
3450 let dirname= expand(a:1) | 3580 " call Decho("case a:1: $") |
3581 let dirname= simplify(expand(a:1)) | |
3451 " call Decho("using user-specified dirname<".dirname."> with $env-var") | 3582 " call Decho("using user-specified dirname<".dirname."> with $env-var") |
3583 elseif a:1 !~ '^\*/' | |
3584 " call Decho("case a:1: other, not pattern or filepattern") | |
3585 let dirname= simplify(a:1) | |
3586 " call Decho("using user-specified dirname<".dirname.">") | |
3452 else | 3587 else |
3588 " call Decho("case a:1: pattern or filepattern") | |
3453 let dirname= a:1 | 3589 let dirname= a:1 |
3454 " call Decho("using user-specified dirname<".dirname.">") | |
3455 endif | 3590 endif |
3456 else | 3591 else |
3457 " clear explore | 3592 " clear explore |
3593 " call Decho("case a:0=".a:0.": clearing Explore list") | |
3458 call s:NetrwClearExplore() | 3594 call s:NetrwClearExplore() |
3459 " call Dret("netrw#Explore : cleared list") | 3595 " call Dret("netrw#Explore : cleared list") |
3460 return | 3596 return |
3461 endif | 3597 endif |
3598 | |
3462 " call FOTEST(3) | 3599 " call FOTEST(3) |
3600 " call Decho("dirname<".dirname.">") | |
3601 if dirname =~ '\.\./\=$' | |
3602 let dirname= simplify(fnamemodify(dirname,':p:h')) | |
3603 elseif dirname =~ '\.\.' || dirname == '.' | |
3604 let dirname= simplify(fnamemodify(dirname,':p')) | |
3605 endif | |
3606 " call Decho("dirname<".dirname."> (after simplify)") | |
3463 | 3607 |
3464 if dirname =~ '/\*\*/' | 3608 if dirname =~ '/\*\*/' |
3465 " handle .../**/.../filepat | 3609 " handle .../**/.../filepat |
3466 " call Decho("case Explore .../**/.../filepat") | 3610 " call Decho("case Explore .../**/.../filepat") |
3467 let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','') | 3611 let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','') |
3522 call netrw#LocalBrowseCheck(dirname) | 3666 call netrw#LocalBrowseCheck(dirname) |
3523 endif | 3667 endif |
3524 | 3668 |
3525 " call Decho("curdir<".curdir.">") | 3669 " call Decho("curdir<".curdir.">") |
3526 if has("win32") || has("win95") || has("win64") || has("win16") | 3670 if has("win32") || has("win95") || has("win64") || has("win16") |
3527 call search('\<'.substitute(curdir,'^.*[/\\]','','e').'\>','cW') | 3671 keepj call search('\<'.substitute(curdir,'^.*[/\\]','','e').'\>','cW') |
3528 else | 3672 else |
3529 call search('\<'.substitute(curdir,'^.*/','','e').'\>','cW') | 3673 keepj call search('\<'.substitute(curdir,'^.*/','','e').'\>','cW') |
3530 endif | 3674 endif |
3531 | 3675 |
3532 " starpat=1: Explore *//pattern (current directory only search for files containing pattern) | 3676 " starpat=1: Explore *//pattern (current directory only search for files containing pattern) |
3533 " starpat=2: Explore **//pattern (recursive descent search for files containing pattern) | 3677 " starpat=2: Explore **//pattern (recursive descent search for files containing pattern) |
3534 " starpat=3: Explore */filepat (search in current directory for filenames matching filepat) | 3678 " starpat=3: Explore */filepat (search in current directory for filenames matching filepat) |
3555 if indx == -1 | 3699 if indx == -1 |
3556 " Nexplore | 3700 " Nexplore |
3557 " call Decho("case Nexplore with starpat=".starpat.": (indx=".indx.")") | 3701 " call Decho("case Nexplore with starpat=".starpat.": (indx=".indx.")") |
3558 if !exists("w:netrw_explore_list") " sanity check | 3702 if !exists("w:netrw_explore_list") " sanity check |
3559 call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) | 3703 call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) |
3560 silent! let @* = keepregstar | 3704 sil! let @* = keepregstar |
3561 silent! let @+ = keepregstar | 3705 sil! let @+ = keepregstar |
3562 silent! let @/ = keepregslash | 3706 sil! let @/ = keepregslash |
3563 " call Dret("netrw#Explore") | 3707 " call Dret("netrw#Explore") |
3564 return | 3708 return |
3565 endif | 3709 endif |
3566 let indx= w:netrw_explore_indx | 3710 let indx= w:netrw_explore_indx |
3567 if indx < 0 | let indx= 0 | endif | 3711 if indx < 0 | let indx= 0 | endif |
3578 elseif indx == -2 | 3722 elseif indx == -2 |
3579 " Pexplore | 3723 " Pexplore |
3580 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")") | 3724 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")") |
3581 if !exists("w:netrw_explore_list") " sanity check | 3725 if !exists("w:netrw_explore_list") " sanity check |
3582 call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) | 3726 call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) |
3583 silent! let @* = keepregstar | 3727 sil! let @* = keepregstar |
3584 silent! let @+ = keepregstar | 3728 sil! let @+ = keepregstar |
3585 silent! let @/ = keepregslash | 3729 sil! let @/ = keepregslash |
3586 " call Dret("netrw#Explore") | 3730 " call Dret("netrw#Explore") |
3587 return | 3731 return |
3588 endif | 3732 endif |
3589 let indx= w:netrw_explore_indx | 3733 let indx= w:netrw_explore_indx |
3590 if indx < 0 | let indx= 0 | endif | 3734 if indx < 0 | let indx= 0 | endif |
3613 if starpat == 1 | 3757 if starpat == 1 |
3614 " starpat=1: Explore *//pattern (current directory only search for files containing pattern) | 3758 " starpat=1: Explore *//pattern (current directory only search for files containing pattern) |
3615 " call Decho("starpat=".starpat.": build *//pattern list") | 3759 " call Decho("starpat=".starpat.": build *//pattern list") |
3616 " call Decho("pattern<".pattern.">") | 3760 " call Decho("pattern<".pattern.">") |
3617 try | 3761 try |
3618 exe "noautocmd vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*" | 3762 exe "keepj noautocmd vimgrep /".pattern."/gj ".fnameescape(b:netrw_curdir)."/*" |
3619 catch /^Vim\%((\a\+)\)\=:E480/ | 3763 catch /^Vim\%((\a\+)\)\=:E480/ |
3620 call netrw#ErrorMsg(s:WARNING,"no match with pattern<".pattern.">",76) | 3764 call netrw#ErrorMsg(s:WARNING,"no match with pattern<".pattern.">",76) |
3621 " call Dret("netrw#Explore : unable to find pattern<".pattern.">") | 3765 " call Dret("netrw#Explore : unable to find pattern<".pattern.">") |
3622 return | 3766 return |
3623 endtry | 3767 endtry |
3626 | 3770 |
3627 elseif starpat == 2 | 3771 elseif starpat == 2 |
3628 " starpat=2: Explore **//pattern (recursive descent search for files containing pattern) | 3772 " starpat=2: Explore **//pattern (recursive descent search for files containing pattern) |
3629 " call Decho("starpat=".starpat.": build **//pattern list") | 3773 " call Decho("starpat=".starpat.": build **//pattern list") |
3630 try | 3774 try |
3631 exe "silent noautocmd vimgrep /".pattern."/gj "."**/*" | 3775 exe "sil keepj noautocmd vimgrep /".pattern."/gj "."**/*" |
3632 catch /^Vim\%((\a\+)\)\=:E480/ | 3776 catch /^Vim\%((\a\+)\)\=:E480/ |
3633 call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) | 3777 call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) |
3634 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif | 3778 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif |
3635 silent! let @* = keepregstar | 3779 silent! let @* = keepregstar |
3636 silent! let @+ = keepregstar | 3780 silent! let @+ = keepregstar |
3663 " call Decho("w:netrw_explore_list<".string(w:netrw_explore_list).">") | 3807 " call Decho("w:netrw_explore_list<".string(w:netrw_explore_list).">") |
3664 " call Decho("w:netrw_explore_listlen=".w:netrw_explore_listlen) | 3808 " call Decho("w:netrw_explore_listlen=".w:netrw_explore_listlen) |
3665 | 3809 |
3666 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') | 3810 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') |
3667 call netrw#ErrorMsg(s:WARNING,"no files matched",42) | 3811 call netrw#ErrorMsg(s:WARNING,"no files matched",42) |
3668 silent! let @* = keepregstar | 3812 sil! let @* = keepregstar |
3669 silent! let @+ = keepregstar | 3813 sil! let @+ = keepregstar |
3670 silent! let @/ = keepregslash | 3814 sil! let @/ = keepregslash |
3671 " call Dret("netrw#Explore : no files matched") | 3815 " call Dret("netrw#Explore : no files matched") |
3672 return | 3816 return |
3673 endif | 3817 endif |
3674 endif " if indx ... endif | 3818 endif " if indx ... endif |
3675 | 3819 |
3694 call netrw#LocalBrowseCheck(newdir) | 3838 call netrw#LocalBrowseCheck(newdir) |
3695 if !exists("w:netrw_liststyle") | 3839 if !exists("w:netrw_liststyle") |
3696 let w:netrw_liststyle= g:netrw_liststyle | 3840 let w:netrw_liststyle= g:netrw_liststyle |
3697 endif | 3841 endif |
3698 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:LONGLIST | 3842 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:LONGLIST |
3699 call search('^'.substitute(dirfile,"^.*/","","").'\>',"W") | 3843 keepj call search('^'.substitute(dirfile,"^.*/","","").'\>',"W") |
3700 else | 3844 else |
3701 call search('\<'.substitute(dirfile,"^.*/","","").'\>',"w") | 3845 keepj call search('\<'.substitute(dirfile,"^.*/","","").'\>',"w") |
3702 endif | 3846 endif |
3703 let w:netrw_explore_mtchcnt = indx + 1 | 3847 let w:netrw_explore_mtchcnt = indx + 1 |
3704 let w:netrw_explore_bufnr = bufnr("%") | 3848 let w:netrw_explore_bufnr = bufnr("%") |
3705 let w:netrw_explore_line = line(".") | 3849 let w:netrw_explore_line = line(".") |
3706 call s:SetupNetrwStatusLine('%f %h%m%r%=%9*%{NetrwStatusLine()}') | 3850 call s:SetupNetrwStatusLine('%f %h%m%r%=%9*%{NetrwStatusLine()}') |
3709 else | 3853 else |
3710 " call Decho("your vim does not have +path_extra") | 3854 " call Decho("your vim does not have +path_extra") |
3711 if !exists("g:netrw_quiet") | 3855 if !exists("g:netrw_quiet") |
3712 call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) | 3856 call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) |
3713 endif | 3857 endif |
3714 silent! let @* = keepregstar | 3858 sil! let @* = keepregstar |
3715 silent! let @+ = keepregstar | 3859 sil! let @+ = keepregstar |
3716 silent! let @/ = keepregslash | 3860 sil! let @/ = keepregslash |
3717 " call Dret("netrw#Explore : missing +path_extra") | 3861 " call Dret("netrw#Explore : missing +path_extra") |
3718 return | 3862 return |
3719 endif | 3863 endif |
3720 | 3864 |
3721 else | 3865 else |
3722 " call Decho("default case: Explore newdir<".dirname.">") | 3866 " call Decho("default case: Explore newdir<".dirname.">") |
3723 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && dirname =~ '/' | 3867 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && dirname =~ '/' |
3724 silent! unlet w:netrw_treedict | 3868 sil! unlet w:netrw_treedict |
3725 silent! unlet w:netrw_treetop | 3869 sil! unlet w:netrw_treetop |
3726 endif | 3870 endif |
3727 let newdir= dirname | 3871 let newdir= dirname |
3728 if !exists("b:netrw_curdir") | 3872 if !exists("b:netrw_curdir") |
3729 call netrw#LocalBrowseCheck(getcwd()) | 3873 call netrw#LocalBrowseCheck(getcwd()) |
3730 else | 3874 else |
3776 echo " " | 3920 echo " " |
3777 " call Decho("cleared explore match list") | 3921 " call Decho("cleared explore match list") |
3778 endif | 3922 endif |
3779 " call FOTEST(6) | 3923 " call FOTEST(6) |
3780 | 3924 |
3781 silent! let @* = keepregstar | 3925 sil! let @* = keepregstar |
3782 silent! let @+ = keepregstar | 3926 sil! let @+ = keepregstar |
3783 silent! let @/ = keepregslash | 3927 sil! let @/ = keepregslash |
3784 " call Dret("netrw#Explore : @/<".@/.">") | 3928 " call Dret("netrw#Explore : @/<".@/.">") |
3785 endfun | 3929 endfun |
3786 | 3930 |
3787 " --------------------------------------------------------------------- | 3931 " --------------------------------------------------------------------- |
3788 " s:NetrwExploreListUniq: {{{2 | 3932 " s:NetrwExploreListUniq: {{{2 |
3841 | 3985 |
3842 else | 3986 else |
3843 | 3987 |
3844 " switch between show-all/show-not-hidden/show-hidden | 3988 " switch between show-all/show-not-hidden/show-hidden |
3845 let g:netrw_hide=(g:netrw_hide+1)%3 | 3989 let g:netrw_hide=(g:netrw_hide+1)%3 |
3846 exe "norm! 0" | 3990 exe "keepj norm! 0" |
3847 if g:netrw_hide && g:netrw_list_hide == "" | 3991 if g:netrw_hide && g:netrw_list_hide == "" |
3848 call netrw#ErrorMsg(s:WARNING,"your hiding list is empty!",49) | 3992 call netrw#ErrorMsg(s:WARNING,"your hiding list is empty!",49) |
3849 " call Dret("NetrwHide") | 3993 " call Dret("NetrwHide") |
3850 return | 3994 return |
3851 endif | 3995 endif |
3915 | 4059 |
3916 " --------------------------------------------------------------------- | 4060 " --------------------------------------------------------------------- |
3917 " s:NetrwLeftmouse: handles the <leftmouse> when in a netrw browsing window {{{2 | 4061 " s:NetrwLeftmouse: handles the <leftmouse> when in a netrw browsing window {{{2 |
3918 fun! s:NetrwLeftmouse(islocal) | 4062 fun! s:NetrwLeftmouse(islocal) |
3919 " call Dfunc("s:NetrwLeftmouse(islocal=".a:islocal.")") | 4063 " call Dfunc("s:NetrwLeftmouse(islocal=".a:islocal.")") |
4064 | |
4065 " check if the status bar was clicked on instead of a file/directory name | |
4066 call feedkeys("\<LeftMouse>") | |
4067 let c= getchar() | |
4068 let mouse_lnum = v:mouse_lnum | |
4069 let wlastline = line('w$') | |
4070 let lastline = line('$') | |
4071 " call Decho("v:mouse_lnum=".mouse_lnum." line(w$)=".wlastline." line($)=".lastline." v:mouse_win=".v:mouse_win." winnr#".winnr()) | |
4072 " call Decho("v:mouse_col =".v:mouse_col." col=".col(".")." wincol =".wincol()." winwidth =".winwidth(0)) | |
4073 if mouse_lnum >= wlastline + 1 || v:mouse_win != winnr() | |
4074 " appears to be a status bar leftmouse click | |
4075 " call Dret("s:NetrwLeftmouse : detected a status bar leftmouse click") | |
4076 return | |
4077 endif | |
4078 if v:mouse_col != col('.') | |
4079 " call Dret("s:NetrwLeftmouse : detected a vertical separator bar leftmouse click") | |
4080 return | |
4081 endif | |
4082 | |
3920 if a:islocal | 4083 if a:islocal |
3921 if exists("b:netrw_curdir") | 4084 if exists("b:netrw_curdir") |
3922 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,s:NetrwGetWord())) | 4085 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,s:NetrwGetWord())) |
3923 endif | 4086 endif |
3924 else | 4087 else |
3953 endif | 4116 endif |
3954 | 4117 |
3955 " Prune the list by hiding any files which match | 4118 " Prune the list by hiding any files which match |
3956 if g:netrw_hide == 1 | 4119 if g:netrw_hide == 1 |
3957 " call Decho("hiding<".hide."> listhide<".listhide.">") | 4120 " call Decho("hiding<".hide."> listhide<".listhide.">") |
3958 exe 'silent keepjumps '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d' | 4121 exe 'sil keepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d' |
3959 elseif g:netrw_hide == 2 | 4122 elseif g:netrw_hide == 2 |
3960 " call Decho("showing<".hide."> listhide<".listhide.">") | 4123 " call Decho("showing<".hide."> listhide<".listhide.">") |
3961 exe 'silent keepjumps '.w:netrw_bannercnt.',$g'.sep.hide.sep.'s@^@ /-KEEP-/ @' | 4124 exe 'sil keepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'s@^@ /-KEEP-/ @' |
3962 endif | 4125 endif |
3963 endwhile | 4126 endwhile |
3964 if g:netrw_hide == 2 | 4127 if g:netrw_hide == 2 |
3965 exe 'silent keepjumps '.w:netrw_bannercnt.',$v@^ /-KEEP-/ @d' | 4128 exe 'sil keepj '.w:netrw_bannercnt.',$v@^ /-KEEP-/ @d' |
3966 exe 'silent keepjumps '.w:netrw_bannercnt.',$s@^\%( /-KEEP-/ \)\+@@e' | 4129 exe 'sil keepj '.w:netrw_bannercnt.',$s@^\%( /-KEEP-/ \)\+@@e' |
3967 endif | 4130 endif |
3968 | 4131 |
3969 " call Dret("NetrwListHide") | 4132 " call Dret("NetrwListHide") |
3970 endfun | 4133 endfun |
3971 | 4134 |
3983 call inputrestore() | 4146 call inputrestore() |
3984 let g:netrw_list_hide= newhide | 4147 let g:netrw_list_hide= newhide |
3985 " call Decho("new g:netrw_list_hide<".g:netrw_list_hide.">") | 4148 " call Decho("new g:netrw_list_hide<".g:netrw_list_hide.">") |
3986 | 4149 |
3987 " refresh the listing | 4150 " refresh the listing |
3988 silent call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,"./")) | 4151 silent keepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,"./")) |
3989 | 4152 |
3990 " restore cursor position | 4153 " restore cursor position |
3991 call netrw#NetrwRestorePosn(svpos) | 4154 call netrw#NetrwRestorePosn(svpos) |
3992 | 4155 |
3993 " call Dret("NetrwHideEdit") | 4156 " call Dret("NetrwHideEdit") |
4055 " directory, so make it! | 4218 " directory, so make it! |
4056 if exists("*mkdir") | 4219 if exists("*mkdir") |
4057 call mkdir(fullnewdir,"p") | 4220 call mkdir(fullnewdir,"p") |
4058 else | 4221 else |
4059 let netrw_origdir= s:NetrwGetcwd(1) | 4222 let netrw_origdir= s:NetrwGetcwd(1) |
4060 exe 'keepjumps lcd '.fnameescape(b:netrw_curdir) | 4223 exe 'keepj lcd '.fnameescape(b:netrw_curdir) |
4061 " call Decho("netrw_origdir<".netrw_origdir.">: lcd b:netrw_curdir<".fnameescape(b:netrw_curdir).">") | 4224 " call Decho("netrw_origdir<".netrw_origdir.">: lcd b:netrw_curdir<".fnameescape(b:netrw_curdir).">") |
4062 " call Decho("exe silent! !".g:netrw_local_mkdir.' '.shellescape(newdirname,1)) | 4225 " call Decho("exe silent! !".g:netrw_local_mkdir.' '.shellescape(newdirname,1)) |
4063 exe "silent! !".g:netrw_local_mkdir.' '.shellescape(newdirname,1) | 4226 exe "sil! !".g:netrw_local_mkdir.' '.shellescape(newdirname,1) |
4064 if !g:netrw_keepdir | 4227 if !g:netrw_keepdir |
4065 exe 'keepjumps lcd '.fnameescape(netrw_origdir) | 4228 exe 'keepj lcd '.fnameescape(netrw_origdir) |
4066 " call Decho("netrw_keepdir=".g:netrw_keepdir.": keepjumps lcd ".fnameescape(netrw_origdir)." getcwd<".getcwd().">") | 4229 " call Decho("netrw_keepdir=".g:netrw_keepdir.": keepjumps lcd ".fnameescape(netrw_origdir)." getcwd<".getcwd().">") |
4067 endif | 4230 endif |
4068 endif | 4231 endif |
4069 | 4232 |
4070 if v:shell_error == 0 | 4233 if v:shell_error == 0 |
4082 " Remote mkdir: | 4245 " Remote mkdir: |
4083 " call Decho("remote mkdir") | 4246 " call Decho("remote mkdir") |
4084 let mkdircmd = s:MakeSshCmd(g:netrw_mkdir_cmd) | 4247 let mkdircmd = s:MakeSshCmd(g:netrw_mkdir_cmd) |
4085 let newdirname= substitute(b:netrw_curdir,'^\%(.\{-}/\)\{3}\(.*\)$','\1','').newdirname | 4248 let newdirname= substitute(b:netrw_curdir,'^\%(.\{-}/\)\{3}\(.*\)$','\1','').newdirname |
4086 " call Decho("exe silent! !".mkdircmd." ".shellescape(newdirname,1)) | 4249 " call Decho("exe silent! !".mkdircmd." ".shellescape(newdirname,1)) |
4087 exe "silent! !".mkdircmd." ".shellescape(newdirname,1) | 4250 exe "sil! !".mkdircmd." ".shellescape(newdirname,1) |
4088 if v:shell_error == 0 | 4251 if v:shell_error == 0 |
4089 " refresh listing | 4252 " refresh listing |
4090 let svpos= netrw#NetrwSavePosn() | 4253 let svpos= netrw#NetrwSavePosn() |
4091 call s:NetrwRefresh(0,s:NetrwBrowseChgDir(0,'./')) | 4254 call s:NetrwRefresh(0,s:NetrwBrowseChgDir(0,'./')) |
4092 call netrw#NetrwRestorePosn(svpos) | 4255 call netrw#NetrwRestorePosn(svpos) |
4328 let tmpdir= curdir."/".tmpdir | 4491 let tmpdir= curdir."/".tmpdir |
4329 endif | 4492 endif |
4330 if exists("*mkdir") | 4493 if exists("*mkdir") |
4331 call mkdir(tmpdir) | 4494 call mkdir(tmpdir) |
4332 else | 4495 else |
4333 exe "silent! !".g:netrw_local_mkdir.' '.shellescape(tmpdir,1) | 4496 exe "sil! !".g:netrw_local_mkdir.' '.shellescape(tmpdir,1) |
4334 endif | 4497 endif |
4335 if isdirectory(tmpdir) | 4498 if isdirectory(tmpdir) |
4336 exe "keepjumps lcd ".fnameescape(tmpdir) | 4499 exe "keepj lcd ".fnameescape(tmpdir) |
4337 call netrw#NetrwObtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir) | 4500 call netrw#NetrwObtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir) |
4338 let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') | 4501 let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') |
4339 call s:NetrwUpload(localfiles,s:netrwmftgt) | 4502 call s:NetrwUpload(localfiles,s:netrwmftgt) |
4340 if getcwd() == tmpdir | 4503 if getcwd() == tmpdir |
4341 for fname in s:netrwmarkfilelist_{bufnr('%')} | 4504 for fname in s:netrwmarkfilelist_{bufnr('%')} |
4342 call s:NetrwDelete(fname) | 4505 call s:NetrwDelete(fname) |
4343 endfor | 4506 endfor |
4344 exe "keepjumps lcd ".fnameescape(curdir) | 4507 exe "keepj lcd ".fnameescape(curdir) |
4345 exe "silent !".g:netrw_local_rmdir." ".shellescape(tmpdir,1) | 4508 exe "sil !".g:netrw_local_rmdir." ".shellescape(tmpdir,1) |
4346 else | 4509 else |
4347 exe "keepjumps lcd ".fnameescape(curdir) | 4510 exe "keepj lcd ".fnameescape(curdir) |
4348 endif | 4511 endif |
4349 endif | 4512 endif |
4350 endif | 4513 endif |
4351 | 4514 |
4352 " ------- | 4515 " ------- |
4568 endif | 4731 endif |
4569 | 4732 |
4570 " use vimgrep for both local and remote | 4733 " use vimgrep for both local and remote |
4571 " call Decho("exe vimgrep".pat." ".netrwmarkfilelist) | 4734 " call Decho("exe vimgrep".pat." ".netrwmarkfilelist) |
4572 try | 4735 try |
4573 exe "noautocmd vimgrep".pat." ".netrwmarkfilelist | 4736 exe "keepj noautocmd vimgrep".pat." ".netrwmarkfilelist |
4574 catch /^Vim\%((\a\+)\)\=:E480/ | 4737 catch /^Vim\%((\a\+)\)\=:E480/ |
4575 call netrw#ErrorMsg(s:WARNING,"no match with pattern<".pattern.">",76) | 4738 call netrw#ErrorMsg(s:WARNING,"no match with pattern<".pattern.">",76) |
4576 " call Dret("s:NetrwMarkFileGrep : unable to find pattern<".pattern.">") | 4739 " call Dret("s:NetrwMarkFileGrep : unable to find pattern<".pattern.">") |
4577 return | 4740 return |
4578 endtry | 4741 endtry |
4748 " call Decho("handle remote regexp") | 4911 " call Decho("handle remote regexp") |
4749 | 4912 |
4750 " convert displayed listing into a filelist | 4913 " convert displayed listing into a filelist |
4751 let eikeep = &ei | 4914 let eikeep = &ei |
4752 let areg = @a | 4915 let areg = @a |
4753 silent %y a | 4916 sil keepj %y a |
4754 set ei=all ma | 4917 set ei=all ma |
4755 " call Decho("set ei=all ma") | 4918 " call Decho("set ei=all ma") |
4756 1split | 4919 1split |
4757 call s:NetrwEnew() | 4920 call s:NetrwEnew() |
4758 call s:NetrwSafeOptions() | 4921 call s:NetrwSafeOptions() |
4759 silent norm! "ap | 4922 sil keepj norm! "ap |
4760 2 | 4923 keepj 2 |
4761 let bannercnt= search('^" =====','W') | 4924 let bannercnt= search('^" =====','W') |
4762 exe "silent 1,".bannercnt."d" | 4925 exe "sil keepj 1,".bannercnt."d" |
4763 set bt=nofile | 4926 set bt=nofile |
4764 if g:netrw_liststyle == s:LONGLIST | 4927 if g:netrw_liststyle == s:LONGLIST |
4765 silent %s/\s\{2,}\S.*$//e | 4928 sil keepj %s/\s\{2,}\S.*$//e |
4766 call histdel("/",-1) | 4929 call histdel("/",-1) |
4767 elseif g:netrw_liststyle == s:WIDELIST | 4930 elseif g:netrw_liststyle == s:WIDELIST |
4768 silent %s/\s\{2,}/\r/ge | 4931 sil keepj %s/\s\{2,}/\r/ge |
4769 call histdel("/",-1) | 4932 call histdel("/",-1) |
4770 elseif g:netrw_liststyle == s:TREELIST | 4933 elseif g:netrw_liststyle == s:TREELIST |
4771 silent %s/^| //e | 4934 sil keepj %s/^| //e |
4772 silent! g/^ .*$/d | 4935 sil! keepj g/^ .*$/d |
4773 call histdel("/",-1) | 4936 call histdel("/",-1) |
4774 call histdel("/",-1) | 4937 call histdel("/",-1) |
4775 endif | 4938 endif |
4776 " convert regexp into the more usual glob-style format | 4939 " convert regexp into the more usual glob-style format |
4777 let regexp= substitute(regexp,'\*','.*','g') | 4940 let regexp= substitute(regexp,'\*','.*','g') |
4778 " call Decho("regexp<".regexp.">") | 4941 " call Decho("regexp<".regexp.">") |
4779 exe "silent! v/".escape(regexp,'/')."/d" | 4942 exe "sil! keepj v/".escape(regexp,'/')."/d" |
4780 call histdel("/",-1) | 4943 call histdel("/",-1) |
4781 let filelist= getline(1,line("$")) | 4944 let filelist= getline(1,line("$")) |
4782 q! | 4945 q! |
4783 for filename in filelist | 4946 for filename in filelist |
4784 call s:NetrwMarkFile(a:islocal,substitute(filename,'^.*/','','')) | 4947 call s:NetrwMarkFile(a:islocal,substitute(filename,'^.*/','','')) |
4845 let curdir= b:netrw_curdir | 5008 let curdir= b:netrw_curdir |
4846 1split | 5009 1split |
4847 e tags | 5010 e tags |
4848 let path= substitute(curdir,'^\(.*\)/[^/]*$','\1/','') | 5011 let path= substitute(curdir,'^\(.*\)/[^/]*$','\1/','') |
4849 " call Decho("curdir<".curdir."> path<".path.">") | 5012 " call Decho("curdir<".curdir."> path<".path.">") |
4850 exe '%s/\t\(\S\+\)\t/\t'.escape(path,"/\n\r\\").'\1\t/e' | 5013 exe 'keepj %s/\t\(\S\+\)\t/\t'.escape(path,"/\n\r\\").'\1\t/e' |
4851 call histdel("/",-1) | 5014 call histdel("/",-1) |
4852 wq! | 5015 wq! |
4853 endif | 5016 endif |
4854 2match none | 5017 2match none |
4855 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | 5018 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) |
4912 call s:LocalBrowseShellCmdRefresh() | 5075 call s:LocalBrowseShellCmdRefresh() |
4913 endif | 5076 endif |
4914 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | 5077 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) |
4915 call netrw#NetrwRestorePosn(svpos) | 5078 call netrw#NetrwRestorePosn(svpos) |
4916 if !hadtgt | 5079 if !hadtgt |
4917 norm! j | 5080 sil! keepj norm! j |
4918 endif | 5081 endif |
4919 | 5082 |
4920 " call Dret("s:NetrwMarkFileTgt : netrwmftgt<".(exists("s:netrwmftgt")? s:netrwmftgt : "").">") | 5083 " call Dret("s:NetrwMarkFileTgt : netrwmftgt<".(exists("s:netrwmftgt")? s:netrwmftgt : "").">") |
4921 endfun | 5084 endfun |
4922 | 5085 |
5040 " call Dfunc("NetrwMenu(domenu=".a:domenu.")") | 5203 " call Dfunc("NetrwMenu(domenu=".a:domenu.")") |
5041 | 5204 |
5042 if !exists("s:netrw_menu_enabled") && a:domenu | 5205 if !exists("s:netrw_menu_enabled") && a:domenu |
5043 " call Decho("initialize menu") | 5206 " call Decho("initialize menu") |
5044 let s:netrw_menu_enabled= 1 | 5207 let s:netrw_menu_enabled= 1 |
5045 exe 'silent! menu '.g:NetrwMenuPriority.'.1 '.g:NetrwTopLvlMenu.'Help<tab><F1> <F1>' | 5208 exe 'sil! menu '.g:NetrwMenuPriority.'.1 '.g:NetrwTopLvlMenu.'Help<tab><F1> <F1>' |
5046 exe 'silent! menu '.g:NetrwMenuPriority.'.5 '.g:NetrwTopLvlMenu.'-Sep1- :' | 5209 exe 'sil! menu '.g:NetrwMenuPriority.'.5 '.g:NetrwTopLvlMenu.'-Sep1- :' |
5047 exe 'silent! menu '.g:NetrwMenuPriority.'.6 '.g:NetrwTopLvlMenu.'Go\ Up\ Directory<tab>- -' | 5210 exe 'sil! menu '.g:NetrwMenuPriority.'.6 '.g:NetrwTopLvlMenu.'Go\ Up\ Directory<tab>- -' |
5048 exe 'silent! menu '.g:NetrwMenuPriority.'.7 '.g:NetrwTopLvlMenu.'Apply\ Special\ Viewer<tab>x x' | 5211 exe 'sil! menu '.g:NetrwMenuPriority.'.7 '.g:NetrwTopLvlMenu.'Apply\ Special\ Viewer<tab>x x' |
5049 exe 'silent! menu '.g:NetrwMenuPriority.'.8.1 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Current\ Directory<tab>mb mb' | 5212 exe 'sil! menu '.g:NetrwMenuPriority.'.8.1 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Bookmark\ Current\ Directory<tab>mb mb' |
5050 exe 'silent! menu '.g:NetrwMenuPriority.'.8.4 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Prev\ Dir\ (History)<tab>u u' | 5213 exe 'sil! menu '.g:NetrwMenuPriority.'.8.4 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Prev\ Dir\ (History)<tab>u u' |
5051 exe 'silent! menu '.g:NetrwMenuPriority.'.8.5 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Next\ Dir\ (History)<tab>U U' | 5214 exe 'sil! menu '.g:NetrwMenuPriority.'.8.5 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.Goto\ Next\ Dir\ (History)<tab>U U' |
5052 exe 'silent! menu '.g:NetrwMenuPriority.'.8.6 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.List<tab>qb qb' | 5215 exe 'sil! menu '.g:NetrwMenuPriority.'.8.6 '.g:NetrwTopLvlMenu.'Bookmarks\ and\ History.List<tab>qb qb' |
5053 exe 'silent! menu '.g:NetrwMenuPriority.'.9.1 '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ File\ Hiding\ List<tab><ctrl-h>'." \<c-h>'" | 5216 exe 'sil! menu '.g:NetrwMenuPriority.'.9.1 '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ File\ Hiding\ List<tab><ctrl-h>'." \<c-h>'" |
5054 exe 'silent! menu '.g:NetrwMenuPriority.'.9.2 '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ Sorting\ Sequence<tab>S S' | 5217 exe 'sil! menu '.g:NetrwMenuPriority.'.9.2 '.g:NetrwTopLvlMenu.'Browsing\ Control.Edit\ Sorting\ Sequence<tab>S S' |
5055 exe 'silent! menu '.g:NetrwMenuPriority.'.9.3 '.g:NetrwTopLvlMenu.'Browsing\ Control.Quick\ Hide/Unhide\ Dot\ Files<tab>'."gh gh" | 5218 exe 'sil! menu '.g:NetrwMenuPriority.'.9.3 '.g:NetrwTopLvlMenu.'Browsing\ Control.Quick\ Hide/Unhide\ Dot\ Files<tab>'."gh gh" |
5056 exe 'silent! menu '.g:NetrwMenuPriority.'.9.4 '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l> \<c-l>" | 5219 exe 'sil! menu '.g:NetrwMenuPriority.'.9.4 '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l> \<c-l>" |
5057 exe 'silent! menu '.g:NetrwMenuPriority.'.9.5 '.g:NetrwTopLvlMenu.'Browsing\ Control.Settings/Options<tab>:NetrwSettings '.":NetrwSettings\<cr>" | 5220 exe 'sil! menu '.g:NetrwMenuPriority.'.9.5 '.g:NetrwTopLvlMenu.'Browsing\ Control.Settings/Options<tab>:NetrwSettings '.":NetrwSettings\<cr>" |
5058 exe 'silent! menu '.g:NetrwMenuPriority.'.10 '.g:NetrwTopLvlMenu.'Delete\ File/Directory<tab>D D' | 5221 exe 'sil! menu '.g:NetrwMenuPriority.'.10 '.g:NetrwTopLvlMenu.'Delete\ File/Directory<tab>D D' |
5059 exe 'silent! menu '.g:NetrwMenuPriority.'.11.1 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Current\ Window<tab><cr> '."\<cr>" | 5222 exe 'sil! menu '.g:NetrwMenuPriority.'.11.1 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Current\ Window<tab><cr> '."\<cr>" |
5060 exe 'silent! menu '.g:NetrwMenuPriority.'.11.2 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Preview\ File/Directory<tab>p p' | 5223 exe 'sil! menu '.g:NetrwMenuPriority.'.11.2 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Preview\ File/Directory<tab>p p' |
5061 exe 'silent! menu '.g:NetrwMenuPriority.'.11.3 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Previous\ Window<tab>P P' | 5224 exe 'sil! menu '.g:NetrwMenuPriority.'.11.3 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Previous\ Window<tab>P P' |
5062 exe 'silent! menu '.g:NetrwMenuPriority.'.11.4 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Window<tab>o o' | 5225 exe 'sil! menu '.g:NetrwMenuPriority.'.11.4 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Window<tab>o o' |
5063 exe 'silent! menu '.g:NetrwMenuPriority.'.11.5 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Vertical\ Window<tab>v v' | 5226 exe 'sil! menu '.g:NetrwMenuPriority.'.11.5 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ New\ Vertical\ Window<tab>v v' |
5064 exe 'silent! menu '.g:NetrwMenuPriority.'.12.1 '.g:NetrwTopLvlMenu.'Explore.Directory\ Name :Explore ' | 5227 exe 'sil! menu '.g:NetrwMenuPriority.'.12.1 '.g:NetrwTopLvlMenu.'Explore.Directory\ Name :Explore ' |
5065 exe 'silent! menu '.g:NetrwMenuPriority.'.12.2 '.g:NetrwTopLvlMenu.'Explore.Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */ :Explore */' | 5228 exe 'sil! menu '.g:NetrwMenuPriority.'.12.2 '.g:NetrwTopLvlMenu.'Explore.Filenames\ Matching\ Pattern\ (curdir\ only)<tab>:Explore\ */ :Explore */' |
5066 exe 'silent! menu '.g:NetrwMenuPriority.'.12.2 '.g:NetrwTopLvlMenu.'Explore.Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/ :Explore **/' | 5229 exe 'sil! menu '.g:NetrwMenuPriority.'.12.2 '.g:NetrwTopLvlMenu.'Explore.Filenames\ Matching\ Pattern\ (+subdirs)<tab>:Explore\ **/ :Explore **/' |
5067 exe 'silent! menu '.g:NetrwMenuPriority.'.12.3 '.g:NetrwTopLvlMenu.'Explore.Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *// :Explore *//' | 5230 exe 'sil! menu '.g:NetrwMenuPriority.'.12.3 '.g:NetrwTopLvlMenu.'Explore.Files\ Containing\ String\ Pattern\ (curdir\ only)<tab>:Explore\ *// :Explore *//' |
5068 exe 'silent! menu '.g:NetrwMenuPriority.'.12.4 '.g:NetrwTopLvlMenu.'Explore.Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **// :Explore **//' | 5231 exe 'sil! menu '.g:NetrwMenuPriority.'.12.4 '.g:NetrwTopLvlMenu.'Explore.Files\ Containing\ String\ Pattern\ (+subdirs)<tab>:Explore\ **// :Explore **//' |
5069 exe 'silent! menu '.g:NetrwMenuPriority.'.12.4 '.g:NetrwTopLvlMenu.'Explore.Next\ Match<tab>:Nexplore :Nexplore<cr>' | 5232 exe 'sil! menu '.g:NetrwMenuPriority.'.12.4 '.g:NetrwTopLvlMenu.'Explore.Next\ Match<tab>:Nexplore :Nexplore<cr>' |
5070 exe 'silent! menu '.g:NetrwMenuPriority.'.12.4 '.g:NetrwTopLvlMenu.'Explore.Prev\ Match<tab>:Pexplore :Pexplore<cr>' | 5233 exe 'sil! menu '.g:NetrwMenuPriority.'.12.4 '.g:NetrwTopLvlMenu.'Explore.Prev\ Match<tab>:Pexplore :Pexplore<cr>' |
5071 exe 'silent! menu '.g:NetrwMenuPriority.'.13 '.g:NetrwTopLvlMenu.'Make\ Subdirectory<tab>d d' | 5234 exe 'sil! menu '.g:NetrwMenuPriority.'.13 '.g:NetrwTopLvlMenu.'Make\ Subdirectory<tab>d d' |
5072 exe 'silent! menu '.g:NetrwMenuPriority.'.14.1 '.g:NetrwTopLvlMenu.'Marked\ Files.Mark\ File<tab>mf mf' | 5235 exe 'sil! menu '.g:NetrwMenuPriority.'.14.1 '.g:NetrwTopLvlMenu.'Marked\ Files.Mark\ File<tab>mf mf' |
5073 exe 'silent! menu '.g:NetrwMenuPriority.'.14.2 '.g:NetrwTopLvlMenu.'Marked\ Files.Mark\ Files\ by\ Regexp<tab>mr mr' | 5236 exe 'sil! menu '.g:NetrwMenuPriority.'.14.2 '.g:NetrwTopLvlMenu.'Marked\ Files.Mark\ Files\ by\ Regexp<tab>mr mr' |
5074 exe 'silent! menu '.g:NetrwMenuPriority.'.14.3 '.g:NetrwTopLvlMenu.'Marked\ Files.Hide-Show-List\ Control<tab>a a' | 5237 exe 'sil! menu '.g:NetrwMenuPriority.'.14.3 '.g:NetrwTopLvlMenu.'Marked\ Files.Hide-Show-List\ Control<tab>a a' |
5075 exe 'silent! menu '.g:NetrwMenuPriority.'.14.4 '.g:NetrwTopLvlMenu.'Marked\ Files.Copy\ To\ Target<tab>mc mc' | 5238 exe 'sil! menu '.g:NetrwMenuPriority.'.14.4 '.g:NetrwTopLvlMenu.'Marked\ Files.Copy\ To\ Target<tab>mc mc' |
5076 exe 'silent! menu '.g:NetrwMenuPriority.'.14.5 '.g:NetrwTopLvlMenu.'Marked\ Files.Delete<tab>D D' | 5239 exe 'sil! menu '.g:NetrwMenuPriority.'.14.5 '.g:NetrwTopLvlMenu.'Marked\ Files.Delete<tab>D D' |
5077 exe 'silent! menu '.g:NetrwMenuPriority.'.14.6 '.g:NetrwTopLvlMenu.'Marked\ Files.Diff<tab>md md' | 5240 exe 'sil! menu '.g:NetrwMenuPriority.'.14.6 '.g:NetrwTopLvlMenu.'Marked\ Files.Diff<tab>md md' |
5078 exe 'silent! menu '.g:NetrwMenuPriority.'.14.7 '.g:NetrwTopLvlMenu.'Marked\ Files.Edit<tab>me me' | 5241 exe 'sil! menu '.g:NetrwMenuPriority.'.14.7 '.g:NetrwTopLvlMenu.'Marked\ Files.Edit<tab>me me' |
5079 exe 'silent! menu '.g:NetrwMenuPriority.'.14.8 '.g:NetrwTopLvlMenu.'Marked\ Files.Exe\ Cmd<tab>mx mx' | 5242 exe 'sil! menu '.g:NetrwMenuPriority.'.14.8 '.g:NetrwTopLvlMenu.'Marked\ Files.Exe\ Cmd<tab>mx mx' |
5080 exe 'silent! menu '.g:NetrwMenuPriority.'.14.9 '.g:NetrwTopLvlMenu.'Marked\ Files.Move\ To\ Target<tab>mm mm' | 5243 exe 'sil! menu '.g:NetrwMenuPriority.'.14.9 '.g:NetrwTopLvlMenu.'Marked\ Files.Move\ To\ Target<tab>mm mm' |
5081 exe 'silent! menu '.g:NetrwMenuPriority.'.14.10 '.g:NetrwTopLvlMenu.'Marked\ Files.Obtain<tab>O O' | 5244 exe 'sil! menu '.g:NetrwMenuPriority.'.14.10 '.g:NetrwTopLvlMenu.'Marked\ Files.Obtain<tab>O O' |
5082 exe 'silent! menu '.g:NetrwMenuPriority.'.14.11 '.g:NetrwTopLvlMenu.'Marked\ Files.Print<tab>mp mp' | 5245 exe 'sil! menu '.g:NetrwMenuPriority.'.14.11 '.g:NetrwTopLvlMenu.'Marked\ Files.Print<tab>mp mp' |
5083 exe 'silent! menu '.g:NetrwMenuPriority.'.14.12 '.g:NetrwTopLvlMenu.'Marked\ Files.Replace<tab>R R' | 5246 exe 'sil! menu '.g:NetrwMenuPriority.'.14.12 '.g:NetrwTopLvlMenu.'Marked\ Files.Replace<tab>R R' |
5084 exe 'silent! menu '.g:NetrwMenuPriority.'.14.13 '.g:NetrwTopLvlMenu.'Marked\ Files.Set\ Target<tab>mt mt' | 5247 exe 'sil! menu '.g:NetrwMenuPriority.'.14.13 '.g:NetrwTopLvlMenu.'Marked\ Files.Set\ Target<tab>mt mt' |
5085 exe 'silent! menu '.g:NetrwMenuPriority.'.14.14 '.g:NetrwTopLvlMenu.'Marked\ Files.Tag<tab>mT mT' | 5248 exe 'sil! menu '.g:NetrwMenuPriority.'.14.14 '.g:NetrwTopLvlMenu.'Marked\ Files.Tag<tab>mT mT' |
5086 exe 'silent! menu '.g:NetrwMenuPriority.'.14.15 '.g:NetrwTopLvlMenu.'Marked\ Files.Zip/Unzip/Compress/Uncompress<tab>mz mz' | 5249 exe 'sil! menu '.g:NetrwMenuPriority.'.14.15 '.g:NetrwTopLvlMenu.'Marked\ Files.Zip/Unzip/Compress/Uncompress<tab>mz mz' |
5087 exe 'silent! menu '.g:NetrwMenuPriority.'.15 '.g:NetrwTopLvlMenu.'Obtain\ File<tab>O O' | 5250 exe 'sil! menu '.g:NetrwMenuPriority.'.15 '.g:NetrwTopLvlMenu.'Obtain\ File<tab>O O' |
5088 exe 'silent! menu '.g:NetrwMenuPriority.'.16.1 '.g:NetrwTopLvlMenu.'Style.Listing\ Style\ (thin-long-wide-tree)<tab>i i' | 5251 exe 'sil! menu '.g:NetrwMenuPriority.'.16.1 '.g:NetrwTopLvlMenu.'Style.Listing\ Style\ (thin-long-wide-tree)<tab>i i' |
5089 exe 'silent! menu '.g:NetrwMenuPriority.'.16.2 '.g:NetrwTopLvlMenu.'Style.Normal-Hide-Show<tab>a a' | 5252 exe 'sil! menu '.g:NetrwMenuPriority.'.16.2 '.g:NetrwTopLvlMenu.'Style.Normal-Hide-Show<tab>a a' |
5090 exe 'silent! menu '.g:NetrwMenuPriority.'.16.3 '.g:NetrwTopLvlMenu.'Style.Reverse\ Sorting\ Order<tab>'."r r" | 5253 exe 'sil! menu '.g:NetrwMenuPriority.'.16.3 '.g:NetrwTopLvlMenu.'Style.Reverse\ Sorting\ Order<tab>'."r r" |
5091 exe 'silent! menu '.g:NetrwMenuPriority.'.16.4 '.g:NetrwTopLvlMenu.'Style.Sorting\ Method\ (name-time-size)<tab>s s' | 5254 exe 'sil! menu '.g:NetrwMenuPriority.'.16.4 '.g:NetrwTopLvlMenu.'Style.Sorting\ Method\ (name-time-size)<tab>s s' |
5092 exe 'silent! menu '.g:NetrwMenuPriority.'.17 '.g:NetrwTopLvlMenu.'Rename\ File/Directory<tab>R R' | 5255 exe 'sil! menu '.g:NetrwMenuPriority.'.17 '.g:NetrwTopLvlMenu.'Rename\ File/Directory<tab>R R' |
5093 exe 'silent! menu '.g:NetrwMenuPriority.'.18 '.g:NetrwTopLvlMenu.'Set\ Current\ Directory<tab>c c' | 5256 exe 'sil! menu '.g:NetrwMenuPriority.'.18 '.g:NetrwTopLvlMenu.'Set\ Current\ Directory<tab>c c' |
5094 call s:NetrwBookmarkMenu() " provide some history! uses priorities 2,3, reserves 4, 8.2.x | 5257 call s:NetrwBookmarkMenu() " provide some history! uses priorities 2,3, reserves 4, 8.2.x |
5095 let s:netrw_menucnt= 28 | 5258 let s:netrw_menucnt= 28 |
5096 | 5259 |
5097 elseif !a:domenu | 5260 elseif !a:domenu |
5098 let s:netrwcnt = 0 | 5261 let s:netrwcnt = 0 |
5100 windo if getline(2) =~ "Netrw" | let s:netrwcnt= s:netrwcnt + 1 | endif | 5263 windo if getline(2) =~ "Netrw" | let s:netrwcnt= s:netrwcnt + 1 | endif |
5101 exe curwin."wincmd w" | 5264 exe curwin."wincmd w" |
5102 | 5265 |
5103 if s:netrwcnt <= 1 | 5266 if s:netrwcnt <= 1 |
5104 " call Decho("clear menus") | 5267 " call Decho("clear menus") |
5105 exe 'silent! unmenu '.g:NetrwTopLvlMenu | 5268 exe 'sil! unmenu '.g:NetrwTopLvlMenu |
5106 " call Decho('exe silent! unmenu '.g:NetrwTopLvlMenu.'*') | 5269 " call Decho('exe silent! unmenu '.g:NetrwTopLvlMenu.'*') |
5107 silent! unlet s:netrw_menu_enabled | 5270 sil! unlet s:netrw_menu_enabled |
5108 endif | 5271 endif |
5109 endif | 5272 endif |
5110 " call Dret("NetrwMenu") | 5273 " call Dret("NetrwMenu") |
5111 endif | 5274 endif |
5112 | 5275 |
5212 " call Decho("obtain via ftp+.netrc (method #2)") | 5375 " call Decho("obtain via ftp+.netrc (method #2)") |
5213 call s:SaveBufVars()|silent keepjumps new|call s:RestoreBufVars() | 5376 call s:SaveBufVars()|silent keepjumps new|call s:RestoreBufVars() |
5214 let tmpbufnr= bufnr("%") | 5377 let tmpbufnr= bufnr("%") |
5215 setlocal ff=unix | 5378 setlocal ff=unix |
5216 if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" | 5379 if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" |
5217 put =g:netrw_ftpmode | 5380 keepj put =g:netrw_ftpmode |
5218 " call Decho("filter input: ".getline('$')) | 5381 " call Decho("filter input: ".getline('$')) |
5219 endif | 5382 endif |
5220 | 5383 |
5221 if exists("b:netrw_fname") && b:netrw_fname != "" | 5384 if exists("b:netrw_fname") && b:netrw_fname != "" |
5222 call setline(line("$")+1,'cd "'.b:netrw_fname.'"') | 5385 call setline(line("$")+1,'cd "'.b:netrw_fname.'"') |
5223 " call Decho("filter input: ".getline('$')) | 5386 " call Decho("filter input: ".getline('$')) |
5224 endif | 5387 endif |
5225 | 5388 |
5226 if exists("g:netrw_ftpextracmd") | 5389 if exists("g:netrw_ftpextracmd") |
5227 put =g:netrw_ftpextracmd | 5390 keepj put =g:netrw_ftpextracmd |
5228 " call Decho("filter input: ".getline('$')) | 5391 " call Decho("filter input: ".getline('$')) |
5229 endif | 5392 endif |
5230 for fname in fnamelist | 5393 for fname in fnamelist |
5231 call setline(line("$")+1,'get "'.fname.'"') | 5394 call setline(line("$")+1,'get "'.fname.'"') |
5232 " call Decho("filter input: ".getline('$')) | 5395 " call Decho("filter input: ".getline('$')) |
5252 call s:SaveBufVars()|silent keepjumps new|call s:RestoreBufVars() | 5415 call s:SaveBufVars()|silent keepjumps new|call s:RestoreBufVars() |
5253 let tmpbufnr= bufnr("%") | 5416 let tmpbufnr= bufnr("%") |
5254 setlocal ff=unix | 5417 setlocal ff=unix |
5255 | 5418 |
5256 if exists("g:netrw_port") && g:netrw_port != "" | 5419 if exists("g:netrw_port") && g:netrw_port != "" |
5257 put ='open '.g:netrw_machine.' '.g:netrw_port | 5420 keepj put ='open '.g:netrw_machine.' '.g:netrw_port |
5258 " call Decho("filter input: ".getline('$')) | 5421 " call Decho("filter input: ".getline('$')) |
5259 else | 5422 else |
5260 put ='open '.g:netrw_machine | 5423 keepj put ='open '.g:netrw_machine |
5261 " call Decho("filter input: ".getline('$')) | 5424 " call Decho("filter input: ".getline('$')) |
5262 endif | 5425 endif |
5263 | 5426 |
5264 if exists("g:netrw_ftp") && g:netrw_ftp == 1 | 5427 if exists("g:netrw_ftp") && g:netrw_ftp == 1 |
5265 put =g:netrw_uid | 5428 keepj put =g:netrw_uid |
5266 " call Decho("filter input: ".getline('$')) | 5429 " call Decho("filter input: ".getline('$')) |
5267 put ='\"'.s:netrw_passwd.'\"' | 5430 keepj put ='\"'.s:netrw_passwd.'\"' |
5268 " call Decho("filter input: ".getline('$')) | 5431 " call Decho("filter input: ".getline('$')) |
5269 else | 5432 else |
5270 put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' | 5433 keepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' |
5271 " call Decho("filter input: ".getline('$')) | 5434 " call Decho("filter input: ".getline('$')) |
5272 endif | 5435 endif |
5273 | 5436 |
5274 if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" | 5437 if exists("g:netrw_ftpmode") && g:netrw_ftpmode != "" |
5275 put =g:netrw_ftpmode | 5438 keepj put =g:netrw_ftpmode |
5276 " call Decho("filter input: ".getline('$')) | 5439 " call Decho("filter input: ".getline('$')) |
5277 endif | 5440 endif |
5278 | 5441 |
5279 if exists("b:netrw_fname") && b:netrw_fname != "" | 5442 if exists("b:netrw_fname") && b:netrw_fname != "" |
5280 call setline(line("$")+1,'cd "'.b:netrw_fname.'"') | 5443 keepj call setline(line("$")+1,'cd "'.b:netrw_fname.'"') |
5281 " call Decho("filter input: ".getline('$')) | 5444 " call Decho("filter input: ".getline('$')) |
5282 endif | 5445 endif |
5283 | 5446 |
5284 if exists("g:netrw_ftpextracmd") | 5447 if exists("g:netrw_ftpextracmd") |
5285 put =g:netrw_ftpextracmd | 5448 keepj put =g:netrw_ftpextracmd |
5286 " call Decho("filter input: ".getline('$')) | 5449 " call Decho("filter input: ".getline('$')) |
5287 endif | 5450 endif |
5288 | 5451 |
5289 if exists("g:netrw_ftpextracmd") | 5452 if exists("g:netrw_ftpextracmd") |
5290 put =g:netrw_ftpextracmd | 5453 keepj put =g:netrw_ftpextracmd |
5291 " call Decho("filter input: ".getline('$')) | 5454 " call Decho("filter input: ".getline('$')) |
5292 endif | 5455 endif |
5293 for fname in fnamelist | 5456 for fname in fnamelist |
5294 call setline(line("$")+1,'get "'.fname.'"') | 5457 keepj call setline(line("$")+1,'get "'.fname.'"') |
5295 endfor | 5458 endfor |
5296 " call Decho("filter input: ".getline('$')) | 5459 " call Decho("filter input: ".getline('$')) |
5297 | 5460 |
5298 " perform ftp: | 5461 " perform ftp: |
5299 " -i : turns off interactive prompting from ftp | 5462 " -i : turns off interactive prompting from ftp |
5300 " -n unix : DON'T use <.netrc>, even though it exists | 5463 " -n unix : DON'T use <.netrc>, even though it exists |
5301 " -n win32: quit being obnoxious about password | 5464 " -n win32: quit being obnoxious about password |
5302 norm! 1Gdd | 5465 keepj norm! 1Gdd |
5303 " call Decho("executing: %!".g:netrw_ftp_cmd." -i -n") | 5466 " call Decho("executing: %!".g:netrw_ftp_cmd." -i -n") |
5304 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n" | 5467 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n" |
5305 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) | 5468 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) |
5306 if getline(1) !~ "^$" | 5469 if getline(1) !~ "^$" |
5307 " call Decho("error<".getline(1).">") | 5470 " call Decho("error<".getline(1).">") |
5500 call s:NetrwMethod(a:tgt) | 5663 call s:NetrwMethod(a:tgt) |
5501 | 5664 |
5502 if b:netrw_method == 2 | 5665 if b:netrw_method == 2 |
5503 " handle uploading a list of files via ftp+.netrc | 5666 " handle uploading a list of files via ftp+.netrc |
5504 let netrw_fname = b:netrw_fname | 5667 let netrw_fname = b:netrw_fname |
5505 silent keepjumps new | 5668 sil keepj new |
5506 " call Decho("filter input window#".winnr()) | 5669 " call Decho("filter input window#".winnr()) |
5507 | 5670 |
5508 put =g:netrw_ftpmode | 5671 keepj put =g:netrw_ftpmode |
5509 " call Decho("filter input: ".getline('$')) | 5672 " call Decho("filter input: ".getline('$')) |
5510 | 5673 |
5511 if exists("g:netrw_ftpextracmd") | 5674 if exists("g:netrw_ftpextracmd") |
5512 put =g:netrw_ftpextracmd | 5675 keepj put =g:netrw_ftpextracmd |
5513 " call Decho("filter input: ".getline('$')) | 5676 " call Decho("filter input: ".getline('$')) |
5514 endif | 5677 endif |
5515 | 5678 |
5516 call setline(line("$")+1,'lcd "'.fromdir.'"') | 5679 keepj call setline(line("$")+1,'lcd "'.fromdir.'"') |
5517 " call Decho("filter input: ".getline('$')) | 5680 " call Decho("filter input: ".getline('$')) |
5518 | 5681 |
5519 call setline(line("$")+1,'cd "'.tgtdir.'"') | 5682 keepj call setline(line("$")+1,'cd "'.tgtdir.'"') |
5520 " call Decho("filter input: ".getline('$')) | 5683 " call Decho("filter input: ".getline('$')) |
5521 | 5684 |
5522 for fname in a:fname | 5685 for fname in a:fname |
5523 call setline(line("$")+1,'put "'.fname.'"') | 5686 keepj call setline(line("$")+1,'put "'.fname.'"') |
5524 " call Decho("filter input: ".getline('$')) | 5687 " call Decho("filter input: ".getline('$')) |
5525 endfor | 5688 endfor |
5526 | 5689 |
5527 if exists("g:netrw_port") && g:netrw_port != "" | 5690 if exists("g:netrw_port") && g:netrw_port != "" |
5528 " call Decho("executing: ".s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1)) | 5691 " call Decho("executing: ".s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)." ".shellescape(g:netrw_port,1)) |
5531 " call Decho("filter input window#".winnr()) | 5694 " call Decho("filter input window#".winnr()) |
5532 " call Decho("executing: ".s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)) | 5695 " call Decho("executing: ".s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1)) |
5533 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1) | 5696 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".shellescape(g:netrw_machine,1) |
5534 endif | 5697 endif |
5535 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) | 5698 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) |
5536 silent g/Local directory now/d | 5699 sil keepj g/Local directory now/d |
5537 call histdel("/",-1) | 5700 call histdel("/",-1) |
5538 if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying ' | 5701 if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying ' |
5539 call netrw#ErrorMsg(s:ERROR,getline(1),14) | 5702 call netrw#ErrorMsg(s:ERROR,getline(1),14) |
5540 else | 5703 else |
5541 bw!|q | 5704 bw!|q |
5547 call s:SaveBufVars()|silent keepjumps new|call s:RestoreBufVars() | 5710 call s:SaveBufVars()|silent keepjumps new|call s:RestoreBufVars() |
5548 let tmpbufnr= bufnr("%") | 5711 let tmpbufnr= bufnr("%") |
5549 setlocal ff=unix | 5712 setlocal ff=unix |
5550 | 5713 |
5551 if exists("g:netrw_port") && g:netrw_port != "" | 5714 if exists("g:netrw_port") && g:netrw_port != "" |
5552 put ='open '.g:netrw_machine.' '.g:netrw_port | 5715 keepj put ='open '.g:netrw_machine.' '.g:netrw_port |
5553 " call Decho("filter input: ".getline('$')) | 5716 " call Decho("filter input: ".getline('$')) |
5554 else | 5717 else |
5555 put ='open '.g:netrw_machine | 5718 keepj put ='open '.g:netrw_machine |
5556 " call Decho("filter input: ".getline('$')) | 5719 " call Decho("filter input: ".getline('$')) |
5557 endif | 5720 endif |
5558 | 5721 |
5559 if exists("g:netrw_ftp") && g:netrw_ftp == 1 | 5722 if exists("g:netrw_ftp") && g:netrw_ftp == 1 |
5560 put =g:netrw_uid | 5723 keepj put =g:netrw_uid |
5561 " call Decho("filter input: ".getline('$')) | 5724 " call Decho("filter input: ".getline('$')) |
5562 call setline(line("$")+1,'"'.s:netrw_passwd.'"') | 5725 keepj call setline(line("$")+1,'"'.s:netrw_passwd.'"') |
5563 " call Decho("filter input: ".getline('$')) | 5726 " call Decho("filter input: ".getline('$')) |
5564 else | 5727 else |
5565 put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' | 5728 keepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' |
5566 " call Decho("filter input: ".getline('$')) | 5729 " call Decho("filter input: ".getline('$')) |
5567 endif | 5730 endif |
5568 | 5731 |
5569 call setline(line("$")+1,'lcd "'.fromdir.'"') | 5732 keepj call setline(line("$")+1,'lcd "'.fromdir.'"') |
5570 " call Decho("filter input: ".getline('$')) | 5733 " call Decho("filter input: ".getline('$')) |
5571 | 5734 |
5572 if exists("b:netrw_fname") && b:netrw_fname != "" | 5735 if exists("b:netrw_fname") && b:netrw_fname != "" |
5573 call setline(line("$")+1,'cd "'.b:netrw_fname.'"') | 5736 keepj call setline(line("$")+1,'cd "'.b:netrw_fname.'"') |
5574 " call Decho("filter input: ".getline('$')) | 5737 " call Decho("filter input: ".getline('$')) |
5575 endif | 5738 endif |
5576 | 5739 |
5577 if exists("g:netrw_ftpextracmd") | 5740 if exists("g:netrw_ftpextracmd") |
5578 put =g:netrw_ftpextracmd | 5741 keepj put =g:netrw_ftpextracmd |
5579 " call Decho("filter input: ".getline('$')) | 5742 " call Decho("filter input: ".getline('$')) |
5580 endif | 5743 endif |
5581 | 5744 |
5582 for fname in a:fname | 5745 for fname in a:fname |
5583 call setline(line("$")+1,'put "'.fname.'"') | 5746 keepj call setline(line("$")+1,'put "'.fname.'"') |
5584 " call Decho("filter input: ".getline('$')) | 5747 " call Decho("filter input: ".getline('$')) |
5585 endfor | 5748 endfor |
5586 | 5749 |
5587 " perform ftp: | 5750 " perform ftp: |
5588 " -i : turns off interactive prompting from ftp | 5751 " -i : turns off interactive prompting from ftp |
5589 " -n unix : DON'T use <.netrc>, even though it exists | 5752 " -n unix : DON'T use <.netrc>, even though it exists |
5590 " -n win32: quit being obnoxious about password | 5753 " -n win32: quit being obnoxious about password |
5591 norm! 1Gdd | 5754 keepj norm! 1Gdd |
5592 " call Decho("executing: ".s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n") | 5755 " call Decho("executing: ".s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n") |
5593 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n" | 5756 exe s:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n" |
5594 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) | 5757 " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar) |
5595 silent g/Local directory now/d | 5758 sil keepj g/Local directory now/d |
5596 call histdel("/",-1) | 5759 call histdel("/",-1) |
5597 if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying ' | 5760 if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying ' |
5598 let debugkeep= &debug | 5761 let debugkeep= &debug |
5599 setlocal debug=msg | 5762 setlocal debug=msg |
5600 call netrw#ErrorMsg(s:ERROR,getline(1),15) | 5763 call netrw#ErrorMsg(s:ERROR,getline(1),15) |
5621 " call Dfunc("NetrwPreview(path<".a:path.">)") | 5784 " call Dfunc("NetrwPreview(path<".a:path.">)") |
5622 call s:NetrwOptionSave("s:") | 5785 call s:NetrwOptionSave("s:") |
5623 call s:NetrwSafeOptions() | 5786 call s:NetrwSafeOptions() |
5624 if has("quickfix") | 5787 if has("quickfix") |
5625 if !isdirectory(a:path) | 5788 if !isdirectory(a:path) |
5626 exe (g:netrw_preview? "vert " : "")."pedit ".fnameescape(a:path) | 5789 if g:netrw_preview && !g:netrw_alto |
5790 let pvhkeep= &pvh | |
5791 let &pvh = winwidth(0) - g:netrw_winsize | |
5792 endif | |
5793 exe (g:netrw_alto? "top " : "bot ").(g:netrw_preview? "vert " : "")."pedit ".fnameescape(a:path) | |
5794 if exists("pvhkeep") | |
5795 let &pvh= pvhkeep | |
5796 endif | |
5627 elseif !exists("g:netrw_quiet") | 5797 elseif !exists("g:netrw_quiet") |
5628 call netrw#ErrorMsg(s:WARNING,"sorry, cannot preview a directory such as <".a:path.">",38) | 5798 call netrw#ErrorMsg(s:WARNING,"sorry, cannot preview a directory such as <".a:path.">",38) |
5629 endif | 5799 endif |
5630 elseif !exists("g:netrw_quiet") | 5800 elseif !exists("g:netrw_quiet") |
5631 call netrw#ErrorMsg(s:WARNING,"sorry, to preview your vim needs the quickfix feature compiled in",39) | 5801 call netrw#ErrorMsg(s:WARNING,"sorry, to preview your vim needs the quickfix feature compiled in",39) |
5642 " NetrwBrowseChgDir() may clear the display; hence a NetrwSavePosn() may not work if its placed here. | 5812 " NetrwBrowseChgDir() may clear the display; hence a NetrwSavePosn() may not work if its placed here. |
5643 " Also, NetrwBrowseChgDir() now does a NetrwSavePosn() itself. | 5813 " Also, NetrwBrowseChgDir() now does a NetrwSavePosn() itself. |
5644 setlocal ma noro | 5814 setlocal ma noro |
5645 " call Decho("setlocal ma noro") | 5815 " call Decho("setlocal ma noro") |
5646 " call Decho("clear buffer<".expand("%")."> with :%d") | 5816 " call Decho("clear buffer<".expand("%")."> with :%d") |
5647 %d | 5817 keepj %d |
5648 if a:islocal | 5818 if a:islocal |
5649 call netrw#LocalBrowseCheck(a:dirname) | 5819 call netrw#LocalBrowseCheck(a:dirname) |
5650 else | 5820 else |
5651 call s:NetrwBrowse(a:islocal,a:dirname) | 5821 call s:NetrwBrowse(a:islocal,a:dirname) |
5652 endif | 5822 endif |
5742 return | 5912 return |
5743 endif | 5913 endif |
5744 if seq == '*' | 5914 if seq == '*' |
5745 let starpriority= spriority | 5915 let starpriority= spriority |
5746 else | 5916 else |
5747 exe 'silent keepjumps '.w:netrw_bannercnt.',$g/'.seq.'/s/^/'.spriority.'/' | 5917 exe 'sil keepj '.w:netrw_bannercnt.',$g/'.seq.'/s/^/'.spriority.'/' |
5748 call histdel("/",-1) | 5918 call histdel("/",-1) |
5749 " sometimes multiple sorting patterns will match the same file or directory. | 5919 " sometimes multiple sorting patterns will match the same file or directory. |
5750 " The following substitute is intended to remove the excess matches. | 5920 " The following substitute is intended to remove the excess matches. |
5751 exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^\d\{3}'.g:netrw_sepchr.'\d\{3}\//s/^\d\{3}'.g:netrw_sepchr.'\(\d\{3}\/\).\@=/\1/e' | 5921 exe 'sil keepj '.w:netrw_bannercnt.',$g/^\d\{3}'.g:netrw_sepchr.'\d\{3}\//s/^\d\{3}'.g:netrw_sepchr.'\(\d\{3}\/\).\@=/\1/e' |
5752 call histdel("/",-1) | 5922 call histdel("/",-1) |
5753 endif | 5923 endif |
5754 let priority = priority + 1 | 5924 let priority = priority + 1 |
5755 endwhile | 5925 endwhile |
5756 if exists("starpriority") | 5926 if exists("starpriority") |
5757 exe 'silent keepjumps '.w:netrw_bannercnt.',$v/^\d\{3}'.g:netrw_sepchr.'/s/^/'.starpriority.'/' | 5927 exe 'sil keepj '.w:netrw_bannercnt.',$v/^\d\{3}'.g:netrw_sepchr.'/s/^/'.starpriority.'/' |
5758 call histdel("/",-1) | 5928 call histdel("/",-1) |
5759 endif | 5929 endif |
5760 | 5930 |
5761 " Following line associated with priority -- items that satisfy a priority | 5931 " Following line associated with priority -- items that satisfy a priority |
5762 " pattern get prefixed by ###/ which permits easy sorting by priority. | 5932 " pattern get prefixed by ###/ which permits easy sorting by priority. |
5763 " Sometimes files can satisfy multiple priority patterns -- only the latest | 5933 " Sometimes files can satisfy multiple priority patterns -- only the latest |
5764 " priority pattern needs to be retained. So, at this point, these excess | 5934 " priority pattern needs to be retained. So, at this point, these excess |
5765 " priority prefixes need to be removed, but not directories that happen to | 5935 " priority prefixes need to be removed, but not directories that happen to |
5766 " be just digits themselves. | 5936 " be just digits themselves. |
5767 exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\d\{3}'.g:netrw_sepchr.'\)\%(\d\{3}'.g:netrw_sepchr.'\)\+\ze./\1/e' | 5937 exe 'sil keepj '.w:netrw_bannercnt.',$s/^\(\d\{3}'.g:netrw_sepchr.'\)\%(\d\{3}'.g:netrw_sepchr.'\)\+\ze./\1/e' |
5768 call histdel("/",-1) | 5938 call histdel("/",-1) |
5769 | 5939 |
5770 " call Dret("SetSort") | 5940 " call Dret("SetSort") |
5771 endfun | 5941 endfun |
5772 | 5942 |
5776 " call Dfunc("s:NetrwSortStyle(islocal=".a:islocal.") netrw_sort_by<".g:netrw_sort_by.">") | 5946 " call Dfunc("s:NetrwSortStyle(islocal=".a:islocal.") netrw_sort_by<".g:netrw_sort_by.">") |
5777 call s:NetrwSaveWordPosn() | 5947 call s:NetrwSaveWordPosn() |
5778 let svpos= netrw#NetrwSavePosn() | 5948 let svpos= netrw#NetrwSavePosn() |
5779 | 5949 |
5780 let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name' | 5950 let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name' |
5781 norm! 0 | 5951 keepj norm! 0 |
5782 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | 5952 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) |
5783 call netrw#NetrwRestorePosn(svpos) | 5953 call netrw#NetrwRestorePosn(svpos) |
5784 | 5954 |
5785 " call Dret("s:NetrwSortStyle : netrw_sort_by<".g:netrw_sort_by.">") | 5955 " call Dret("s:NetrwSortStyle : netrw_sort_by<".g:netrw_sort_by.">") |
5786 endfun | 5956 endfun |
5921 " detect user attempting to close treeroot | 6091 " detect user attempting to close treeroot |
5922 if getline('.') !~ '|' && getline('.') != '..' | 6092 if getline('.') !~ '|' && getline('.') != '..' |
5923 " call Decho("user attempted to close treeroot") | 6093 " call Decho("user attempted to close treeroot") |
5924 " now force a refresh | 6094 " now force a refresh |
5925 " call Decho("clear buffer<".expand("%")."> with :%d") | 6095 " call Decho("clear buffer<".expand("%")."> with :%d") |
5926 keepjumps %d | 6096 keepj %d |
5927 " call Dret("NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".string(s:treecurpos).">") | 6097 " call Dret("NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".string(s:treecurpos).">") |
5928 return b:netrw_curdir | 6098 return b:netrw_curdir |
5929 endif | 6099 endif |
5930 | 6100 |
5931 " elide all non-depth information | 6101 " elide all non-depth information |
6002 elseif entry =~ '/$' && has_key(w:netrw_treedict,direntry.'/') | 6172 elseif entry =~ '/$' && has_key(w:netrw_treedict,direntry.'/') |
6003 " call Decho("<".direntry."/> is a key in treedict - display subtree for it") | 6173 " call Decho("<".direntry."/> is a key in treedict - display subtree for it") |
6004 call s:NetrwTreeDisplay(direntry.'/',depth) | 6174 call s:NetrwTreeDisplay(direntry.'/',depth) |
6005 else | 6175 else |
6006 " call Decho("<".entry."> is not a key in treedict (no subtree)") | 6176 " call Decho("<".entry."> is not a key in treedict (no subtree)") |
6007 call setline(line("$")+1,depth.entry) | 6177 keepj call setline(line("$")+1,depth.entry) |
6008 endif | 6178 endif |
6009 endfor | 6179 endfor |
6010 " call Dret("NetrwTreeDisplay") | 6180 " call Dret("NetrwTreeDisplay") |
6011 endfun | 6181 endfun |
6012 | 6182 |
6036 " update the directory listing for the current directory | 6206 " update the directory listing for the current directory |
6037 " call Decho("updating dictionary with ".a:dirname.":[..directory listing..]") | 6207 " call Decho("updating dictionary with ".a:dirname.":[..directory listing..]") |
6038 " call Decho("bannercnt=".w:netrw_bannercnt." line($)=".line("$")) | 6208 " call Decho("bannercnt=".w:netrw_bannercnt." line($)=".line("$")) |
6039 exe "silent! keepjumps ".w:netrw_bannercnt.',$g@^\.\.\=/$@d' | 6209 exe "silent! keepjumps ".w:netrw_bannercnt.',$g@^\.\.\=/$@d' |
6040 let w:netrw_treedict[a:dirname]= getline(w:netrw_bannercnt,line("$")) | 6210 let w:netrw_treedict[a:dirname]= getline(w:netrw_bannercnt,line("$")) |
6041 " call Decho("w:treedict[".a:dirname."]= ".w:netrw_treedict[a:dirname]) | 6211 " call Decho("w:treedict[".a:dirname."]= ".string(w:netrw_treedict[a:dirname])) |
6042 exe "silent! keepjumps ".w:netrw_bannercnt.",$d" | 6212 exe "silent! keepjumps ".w:netrw_bannercnt.",$d" |
6043 | 6213 |
6044 " if past banner, record word | 6214 " if past banner, record word |
6045 if exists("w:netrw_bannercnt") && line(".") > w:netrw_bannercnt | 6215 if exists("w:netrw_bannercnt") && line(".") > w:netrw_bannercnt |
6046 let fname= expand("<cword>") | 6216 let fname= expand("<cword>") |
6068 " fpc: filenames per column | 6238 " fpc: filenames per column |
6069 setlocal ma noro | 6239 setlocal ma noro |
6070 " call Decho("setlocal ma noro") | 6240 " call Decho("setlocal ma noro") |
6071 let b:netrw_cpf= 0 | 6241 let b:netrw_cpf= 0 |
6072 if line("$") >= w:netrw_bannercnt | 6242 if line("$") >= w:netrw_bannercnt |
6073 exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif' | 6243 exe 'sil keepj '.w:netrw_bannercnt.',$g/^./if virtcol("$") > b:netrw_cpf|let b:netrw_cpf= virtcol("$")|endif' |
6074 call histdel("/",-1) | 6244 call histdel("/",-1) |
6075 else | 6245 else |
6076 " call Dret("NetrwWideListing") | 6246 " call Dret("NetrwWideListing") |
6077 return | 6247 return |
6078 endif | 6248 endif |
6085 let w:netrw_fpl= 1 | 6255 let w:netrw_fpl= 1 |
6086 endif | 6256 endif |
6087 " call Decho("fpl= [winwidth=".winwidth(0)."]/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl) | 6257 " call Decho("fpl= [winwidth=".winwidth(0)."]/[b:netrw_cpf=".b:netrw_cpf.']='.w:netrw_fpl) |
6088 | 6258 |
6089 " make wide display | 6259 " make wide display |
6090 exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^.*$/\=escape(printf("%-'.b:netrw_cpf.'s",submatch(0)),"\\")/' | 6260 exe 'sil keepj '.w:netrw_bannercnt.',$s/^.*$/\=escape(printf("%-'.b:netrw_cpf.'s",submatch(0)),"\\")/' |
6091 call histdel("/",-1) | 6261 call histdel("/",-1) |
6092 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl | 6262 let fpc = (line("$") - w:netrw_bannercnt + w:netrw_fpl)/w:netrw_fpl |
6093 let newcolstart = w:netrw_bannercnt + fpc | 6263 let newcolstart = w:netrw_bannercnt + fpc |
6094 let newcolend = newcolstart + fpc - 1 | 6264 let newcolend = newcolstart + fpc - 1 |
6095 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]") | 6265 " call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]") |
6097 while line("$") >= newcolstart | 6267 while line("$") >= newcolstart |
6098 if newcolend > line("$") | let newcolend= line("$") | endif | 6268 if newcolend > line("$") | let newcolend= line("$") | endif |
6099 let newcolqty= newcolend - newcolstart | 6269 let newcolqty= newcolend - newcolstart |
6100 exe newcolstart | 6270 exe newcolstart |
6101 if newcolqty == 0 | 6271 if newcolqty == 0 |
6102 exe "silent keepjumps norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p" | 6272 exe "sil keepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p" |
6103 else | 6273 else |
6104 exe "silent keepjumps norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p' | 6274 exe "sil keepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p' |
6105 endif | 6275 endif |
6106 exe "silent keepjumps ".newcolstart.','.newcolend.'d' | 6276 exe "sil keepj ".newcolstart.','.newcolend.'d' |
6107 exe 'silent keepjumps '.w:netrw_bannercnt | 6277 exe 'sil keepj '.w:netrw_bannercnt |
6108 endwhile | 6278 endwhile |
6109 silent! let @*= keepregstar | 6279 silent! let @*= keepregstar |
6110 exe "silent keepjumps ".w:netrw_bannercnt.',$s/\s\+$//e' | 6280 exe "sil keepj ".w:netrw_bannercnt.',$s/\s\+$//e' |
6111 call histdel("/",-1) | 6281 call histdel("/",-1) |
6112 setlocal noma nomod ro | 6282 setlocal noma nomod ro |
6113 " call Dret("NetrwWideListing") | 6283 " call Dret("NetrwWideListing") |
6114 endif | 6284 endif |
6115 | 6285 |
6116 endfun | 6286 endfun |
6117 | 6287 |
6118 " --------------------------------------------------------------------- | 6288 " --------------------------------------------------------------------- |
6119 " s:PerformListing: {{{2 | 6289 " s:PerformListing: {{{2 |
6120 fun! s:PerformListing(islocal) | 6290 fun! s:PerformListing(islocal) |
6121 " call Dfunc("s:PerformListing(islocal=".a:islocal.") buf(%)=".bufnr("%")."<".bufname("%").">") | 6291 " call Dfunc("s:PerformListing(islocal=".a:islocal.") bufnr(%)=".bufnr("%")."<".bufname("%").">") |
6122 | 6292 |
6123 call s:NetrwSafeOptions() | 6293 call s:NetrwSafeOptions() |
6124 setlocal noro ma | 6294 setlocal noro ma |
6125 " call Decho("setlocal noro ma") | 6295 " call Decho("setlocal noro ma") |
6126 | 6296 |
6130 | 6300 |
6131 " call Decho('w:netrw_liststyle='.(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a')) | 6301 " call Decho('w:netrw_liststyle='.(exists("w:netrw_liststyle")? w:netrw_liststyle : 'n/a')) |
6132 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") | 6302 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") |
6133 " force a refresh for tree listings | 6303 " force a refresh for tree listings |
6134 " call Decho("force refresh for treelisting: clear buffer<".expand("%")."> with :%d") | 6304 " call Decho("force refresh for treelisting: clear buffer<".expand("%")."> with :%d") |
6135 keepjumps %d | 6305 keepj %d |
6136 endif | 6306 endif |
6137 | 6307 |
6138 " save current directory on directory history list | 6308 " save current directory on directory history list |
6139 call s:NetrwBookHistHandler(3,b:netrw_curdir) | 6309 call s:NetrwBookHistHandler(3,b:netrw_curdir) |
6140 | 6310 |
6141 " Set up the banner {{{3 | 6311 " Set up the banner {{{3 |
6142 if g:netrw_banner | 6312 if g:netrw_banner |
6143 " call Decho("set up banner") | 6313 " call Decho("set up banner") |
6144 keepjumps put ='\" ============================================================================' | 6314 keepj put ='\" ============================================================================' |
6145 keepjumps put ='\" Netrw Directory Listing (netrw '.g:loaded_netrw.')' | 6315 keepj put ='\" Netrw Directory Listing (netrw '.g:loaded_netrw.')' |
6146 keepjumps put ='\" '.b:netrw_curdir | 6316 keepj put ='\" '.b:netrw_curdir |
6147 keepjumps 1d | 6317 keepj 1d |
6148 let w:netrw_bannercnt= 3 | 6318 let w:netrw_bannercnt= 3 |
6149 exe "keepjumps ".w:netrw_bannercnt | 6319 exe "keepj ".w:netrw_bannercnt |
6150 else | 6320 else |
6151 keepjumps 1 | 6321 keepj 1 |
6152 let w:netrw_bannercnt= 1 | 6322 let w:netrw_bannercnt= 1 |
6153 endif | 6323 endif |
6154 | 6324 |
6155 let sortby= g:netrw_sort_by | 6325 let sortby= g:netrw_sort_by |
6156 if g:netrw_sort_direction =~ "^r" | 6326 if g:netrw_sort_direction =~ "^r" |
6161 if g:netrw_banner | 6331 if g:netrw_banner |
6162 " call Decho("handle specified sorting: g:netrw_sort_by<".g:netrw_sort_by.">") | 6332 " call Decho("handle specified sorting: g:netrw_sort_by<".g:netrw_sort_by.">") |
6163 if g:netrw_sort_by =~ "^n" | 6333 if g:netrw_sort_by =~ "^n" |
6164 " call Decho("directories will be sorted by name") | 6334 " call Decho("directories will be sorted by name") |
6165 " sorted by name | 6335 " sorted by name |
6166 keepjumps put ='\" Sorted by '.sortby | 6336 keepj put ='\" Sorted by '.sortby |
6167 keepjumps put ='\" Sort sequence: '.g:netrw_sort_sequence | 6337 keepj put ='\" Sort sequence: '.g:netrw_sort_sequence |
6168 let w:netrw_bannercnt= w:netrw_bannercnt + 2 | 6338 let w:netrw_bannercnt= w:netrw_bannercnt + 2 |
6169 else | 6339 else |
6170 " call Decho("directories will be sorted by size or time") | 6340 " call Decho("directories will be sorted by size or time") |
6171 " sorted by size or date | 6341 " sorted by size or date |
6172 keepjumps put ='\" Sorted by '.sortby | 6342 keepj put ='\" Sorted by '.sortby |
6173 let w:netrw_bannercnt= w:netrw_bannercnt + 1 | 6343 let w:netrw_bannercnt= w:netrw_bannercnt + 1 |
6174 endif | 6344 endif |
6175 exe "keepjumps ".w:netrw_bannercnt | 6345 exe "keepj ".w:netrw_bannercnt |
6176 endif | 6346 endif |
6177 | 6347 |
6178 " show copy/move target, if any | 6348 " show copy/move target, if any |
6179 if g:netrw_banner | 6349 if g:netrw_banner |
6180 if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal") | 6350 if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal") |
6181 " call Decho("show copy/move target<".s:netrwmftgt.">") | 6351 " call Decho("show copy/move target<".s:netrwmftgt.">") |
6182 keepjumps put ='' | 6352 keepj put ='' |
6183 if s:netrwmftgt_islocal | 6353 if s:netrwmftgt_islocal |
6184 call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (local)') | 6354 keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (local)') |
6185 else | 6355 else |
6186 call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (remote)') | 6356 keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (remote)') |
6187 endif | 6357 endif |
6188 let w:netrw_bannercnt= w:netrw_bannercnt + 1 | 6358 let w:netrw_bannercnt= w:netrw_bannercnt + 1 |
6189 else | 6359 else |
6190 " call Decho("s:netrwmftgt does not exist, don't make Copy/Move Tgt") | 6360 " call Decho("s:netrwmftgt does not exist, don't make Copy/Move Tgt") |
6191 endif | 6361 endif |
6192 exe "keepjumps ".w:netrw_bannercnt | 6362 exe "keepj ".w:netrw_bannercnt |
6193 endif | 6363 endif |
6194 | 6364 |
6195 " Hiding... -or- Showing... {{{3 | 6365 " Hiding... -or- Showing... {{{3 |
6196 if g:netrw_banner | 6366 if g:netrw_banner |
6197 " call Decho("handle hiding/showing (g:netrw_hide=".g:netrw_list_hide." g:netrw_list_hide<".g:netrw_list_hide.">)") | 6367 " call Decho("handle hiding/showing (g:netrw_hide=".g:netrw_list_hide." g:netrw_list_hide<".g:netrw_list_hide.">)") |
6198 if g:netrw_list_hide != "" && g:netrw_hide | 6368 if g:netrw_list_hide != "" && g:netrw_hide |
6199 if g:netrw_hide == 1 | 6369 if g:netrw_hide == 1 |
6200 keepjumps put ='\" Hiding: '.g:netrw_list_hide | 6370 keepj put ='\" Hiding: '.g:netrw_list_hide |
6201 else | 6371 else |
6202 keepjumps put ='\" Showing: '.g:netrw_list_hide | 6372 keepj put ='\" Showing: '.g:netrw_list_hide |
6203 endif | 6373 endif |
6204 let w:netrw_bannercnt= w:netrw_bannercnt + 1 | 6374 let w:netrw_bannercnt= w:netrw_bannercnt + 1 |
6205 endif | 6375 endif |
6206 exe "keepjumps ".w:netrw_bannercnt | 6376 exe "keepjumps ".w:netrw_bannercnt |
6207 keepjumps put ='\" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec' | 6377 keepj put ='\" Quick Help: <F1>:help -:go up dir D:delete R:rename s:sort-by x:exec' |
6208 keepjumps put ='\" ============================================================================' | 6378 keepj put ='\" ============================================================================' |
6209 let w:netrw_bannercnt= w:netrw_bannercnt + 2 | 6379 let w:netrw_bannercnt= w:netrw_bannercnt + 2 |
6210 endif | 6380 endif |
6211 | 6381 |
6212 " bannercnt should index the line just after the banner | 6382 " bannercnt should index the line just after the banner |
6213 if g:netrw_banner | 6383 if g:netrw_banner |
6214 let w:netrw_bannercnt= w:netrw_bannercnt + 1 | 6384 let w:netrw_bannercnt= w:netrw_bannercnt + 1 |
6215 exe "keepjumps ".w:netrw_bannercnt | 6385 exe "keepj ".w:netrw_bannercnt |
6216 " call Decho("bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$")) | 6386 " call Decho("bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$")) |
6217 endif | 6387 endif |
6218 | 6388 |
6219 " set up syntax highlighting {{{3 | 6389 " set up syntax highlighting {{{3 |
6220 " call Decho("set up syntax highlighting") | 6390 " call Decho("set up syntax highlighting") |
6250 | 6420 |
6251 if !g:netrw_banner || w:netrw_bannercnt < line("$") | 6421 if !g:netrw_banner || w:netrw_bannercnt < line("$") |
6252 " call Decho("g:netrw_sort_direction=".g:netrw_sort_direction." (bannercnt=".w:netrw_bannercnt.")") | 6422 " call Decho("g:netrw_sort_direction=".g:netrw_sort_direction." (bannercnt=".w:netrw_bannercnt.")") |
6253 if g:netrw_sort_direction =~ 'n' | 6423 if g:netrw_sort_direction =~ 'n' |
6254 " normal direction sorting | 6424 " normal direction sorting |
6255 exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options | 6425 exe 'sil keepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options |
6256 else | 6426 else |
6257 " reverse direction sorting | 6427 " reverse direction sorting |
6258 exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options | 6428 exe 'sil keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options |
6259 endif | 6429 endif |
6260 endif | 6430 endif |
6261 " remove priority pattern prefix | 6431 " remove priority pattern prefix |
6262 " call Decho("remove priority pattern prefix") | 6432 " call Decho("remove priority pattern prefix") |
6263 exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e' | 6433 exe 'sil keepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e' |
6264 call histdel("/",-1) | 6434 call histdel("/",-1) |
6265 | 6435 |
6266 elseif a:islocal | 6436 elseif a:islocal |
6267 if !g:netrw_banner || w:netrw_bannercnt < line("$") | 6437 if !g:netrw_banner || w:netrw_bannercnt < line("$") |
6268 " call Decho("g:netrw_sort_direction=".g:netrw_sort_direction) | 6438 " call Decho("g:netrw_sort_direction=".g:netrw_sort_direction) |
6269 if g:netrw_sort_direction =~ 'n' | 6439 if g:netrw_sort_direction =~ 'n' |
6270 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort') | 6440 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort') |
6271 exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options | 6441 exe 'sil keepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options |
6272 else | 6442 else |
6273 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort!') | 6443 " call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort!') |
6274 exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options | 6444 exe 'sil keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options |
6275 endif | 6445 endif |
6276 exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{-}\///e' | 6446 exe 'sil keepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e' |
6277 call histdel("/",-1) | 6447 call histdel("/",-1) |
6278 endif | 6448 endif |
6279 endif | 6449 endif |
6280 | 6450 |
6281 elseif g:netrw_sort_direction =~ 'r' | 6451 elseif g:netrw_sort_direction =~ 'r' |
6282 " call Decho('reverse the sorted listing') | 6452 " call Decho('reverse the sorted listing') |
6283 if !g:netrw_banner || w:netrw_bannercnt < line('$') | 6453 if !g:netrw_banner || w:netrw_bannercnt < line('$') |
6284 exe 'silent keepjumps '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt | 6454 exe 'sil keepj '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt |
6285 call histdel("/",-1) | 6455 call histdel("/",-1) |
6286 endif | 6456 endif |
6287 endif | 6457 endif |
6288 endif | 6458 endif |
6289 | 6459 |
6293 call s:NetrwTreeListing(b:netrw_curdir) | 6463 call s:NetrwTreeListing(b:netrw_curdir) |
6294 | 6464 |
6295 if exists("w:netrw_bannercnt") && (line("$") > w:netrw_bannercnt || !g:netrw_banner) | 6465 if exists("w:netrw_bannercnt") && (line("$") > w:netrw_bannercnt || !g:netrw_banner) |
6296 " place cursor on the top-left corner of the file listing | 6466 " place cursor on the top-left corner of the file listing |
6297 " call Decho("place cursor on top-left corner of file listing") | 6467 " call Decho("place cursor on top-left corner of file listing") |
6298 exe 'silent keepjumps '.w:netrw_bannercnt | 6468 exe 'sil keepj '.w:netrw_bannercnt |
6299 norm! 0 | 6469 keepj norm! 0 |
6300 endif | 6470 endif |
6301 | 6471 |
6302 " record previous current directory | 6472 " record previous current directory |
6303 let w:netrw_prvdir= b:netrw_curdir | 6473 let w:netrw_prvdir= b:netrw_curdir |
6304 " call Decho("record netrw_prvdir<".w:netrw_prvdir.">") | 6474 " call Decho("record netrw_prvdir<".w:netrw_prvdir.">") |
6414 elseif g:netrw_sort_by =~ '^s' | 6584 elseif g:netrw_sort_by =~ '^s' |
6415 let listcmd= g:netrw_ftp_sizelist_cmd | 6585 let listcmd= g:netrw_ftp_sizelist_cmd |
6416 endif | 6586 endif |
6417 " call Decho("listcmd<".listcmd."> (using g:netrw_ftp_list_cmd)") | 6587 " call Decho("listcmd<".listcmd."> (using g:netrw_ftp_list_cmd)") |
6418 call s:NetrwRemoteFtpCmd(s:path,listcmd) | 6588 call s:NetrwRemoteFtpCmd(s:path,listcmd) |
6419 " exe "keepjumps ".w:netrw_bannercnt.',$g/^./call Decho("raw listing: ".getline("."))' | 6589 " exe "keepj ".w:netrw_bannercnt.',$g/^./call Decho("raw listing: ".getline("."))' |
6420 | 6590 |
6421 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST | 6591 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST |
6422 " shorten the listing | 6592 " shorten the listing |
6423 " call Decho("generate short listing") | 6593 " call Decho("generate short listing") |
6424 exe "keepjumps ".w:netrw_bannercnt | 6594 exe "keepj ".w:netrw_bannercnt |
6425 | 6595 |
6426 " cleanup | 6596 " cleanup |
6427 if g:netrw_ftp_browse_reject != "" | 6597 if g:netrw_ftp_browse_reject != "" |
6428 exe "silent! g/".g:netrw_ftp_browse_reject."/keepjumps d" | 6598 exe "sil! keepj g/".g:netrw_ftp_browse_reject."/keepj d" |
6429 call histdel("/",-1) | 6599 call histdel("/",-1) |
6430 endif | 6600 endif |
6431 silent! keepjumps %s/\r$//e | 6601 sil! keepj %s/\r$//e |
6432 call histdel("/",-1) | 6602 call histdel("/",-1) |
6433 | 6603 |
6434 " if there's no ../ listed, then put ./ and ../ in | 6604 " if there's no ../ listed, then put ./ and ../ in |
6435 let line1= line(".") | 6605 let line1= line(".") |
6436 exe "keepjumps ".w:netrw_bannercnt | 6606 exe "keepj ".w:netrw_bannercnt |
6437 let line2= search('^\.\.\/\%(\s\|$\)','cnW') | 6607 let line2= search('^\.\.\/\%(\s\|$\)','cnW') |
6438 if line2 == 0 | 6608 if line2 == 0 |
6439 " call Decho("netrw is putting ./ and ../ into listing") | 6609 " call Decho("netrw is putting ./ and ../ into listing") |
6440 keepjumps put='../' | 6610 keepj put='../' |
6441 keepjumps put='./' | 6611 keepj put='./' |
6442 endif | 6612 endif |
6443 exe "keepjumps ".line1 | 6613 exe "keepj ".line1 |
6444 keepjumps norm! 0 | 6614 keepjumps norm! 0 |
6445 | 6615 |
6446 " call Decho("line1=".line1." line2=".line2." line(.)=".line(".")) | 6616 " call Decho("line1=".line1." line2=".line2." line(.)=".line(".")) |
6447 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup | 6617 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup |
6448 " call Decho("M$ ftp cleanup") | 6618 " call Decho("M$ ftp cleanup") |
6449 exe 'silent! keepjumps '.w:netrw_bannercnt.',$s/^\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+//' | 6619 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+//' |
6450 call histdel("/",-1) | 6620 call histdel("/",-1) |
6451 else " normal ftp cleanup | 6621 else " normal ftp cleanup |
6452 " call Decho("normal ftp cleanup") | 6622 " call Decho("normal ftp cleanup") |
6453 exe 'silent! keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e' | 6623 exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e' |
6454 exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e' | 6624 exe "sil! keepj ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e' |
6455 exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e' | 6625 exe "sil! keepj ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e' |
6456 call histdel("/",-1) | 6626 call histdel("/",-1) |
6457 call histdel("/",-1) | 6627 call histdel("/",-1) |
6458 call histdel("/",-1) | 6628 call histdel("/",-1) |
6459 endif | 6629 endif |
6460 endif | 6630 endif |
6466 " call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)") | 6636 " call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)") |
6467 if g:netrw_scp_cmd =~ '^pscp' | 6637 if g:netrw_scp_cmd =~ '^pscp' |
6468 " call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1)) | 6638 " call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1)) |
6469 exe "silent r! ".listcmd.shellescape(s:path, 1) | 6639 exe "silent r! ".listcmd.shellescape(s:path, 1) |
6470 " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like | 6640 " remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like |
6471 g/^Listing directory/d | 6641 keepj g/^Listing directory/keepj d |
6472 g/^d[-rwx][-rwx][-rwx]/s+$+/+e | 6642 keepj g/^d[-rwx][-rwx][-rwx]/keepj s+$+/+e |
6473 silent g/^l[-rwx][-rwx][-rwx]/s+$+@+e | 6643 sil keepj g/^l[-rwx][-rwx][-rwx]/keepj s+$+@+e |
6474 call histdel("/",-1) | 6644 call histdel("/",-1) |
6475 call histdel("/",-1) | 6645 call histdel("/",-1) |
6476 call histdel("/",-1) | 6646 call histdel("/",-1) |
6477 if g:netrw_liststyle != s:LONGLIST | 6647 if g:netrw_liststyle != s:LONGLIST |
6478 g/^[dlsp-][-rwx][-rwx][-rwx]/s/^.*\s\(\S\+\)$/\1/e | 6648 keepj g/^[dlsp-][-rwx][-rwx][-rwx]/keepj s/^.*\s\(\S\+\)$/\1/e |
6479 call histdel("/",-1) | 6649 call histdel("/",-1) |
6480 endif | 6650 endif |
6481 else | 6651 else |
6482 if s:path == "" | 6652 if s:path == "" |
6483 " call Decho("2: exe silent r! ".listcmd) | 6653 " call Decho("2: exe silent r! ".listcmd) |
6484 exe "silent r! ".listcmd | 6654 exe "sil r! ".listcmd |
6485 else | 6655 else |
6486 " call Decho("3: exe silent r! ".listcmd.' '.shellescape(s:path,1)) | 6656 " call Decho("3: exe silent r! ".listcmd.' '.shellescape(s:path,1)) |
6487 exe "silent r! ".listcmd.' '.shellescape(s:path,1) | 6657 exe "sil r! ".listcmd.' '.shellescape(s:path,1) |
6488 " call Decho("listcmd<".listcmd."> path<".s:path.">") | 6658 " call Decho("listcmd<".listcmd."> path<".s:path.">") |
6489 endif | 6659 endif |
6490 endif | 6660 endif |
6491 | 6661 |
6492 " cleanup | 6662 " cleanup |
6493 if g:netrw_ftp_browse_reject != "" | 6663 if g:netrw_ftp_browse_reject != "" |
6494 " call Decho("(cleanup) exe silent! g/".g:netrw_ssh_browse_reject."/keepjumps d") | 6664 " call Decho("(cleanup) exe silent! g/".g:netrw_ssh_browse_reject."/keepjumps d") |
6495 exe "silent! g/".g:netrw_ssh_browse_reject."/keepjumps d" | 6665 exe "sil! g/".g:netrw_ssh_browse_reject."/keepjumps d" |
6496 call histdel("/",-1) | 6666 call histdel("/",-1) |
6497 endif | 6667 endif |
6498 endif | 6668 endif |
6499 | 6669 |
6500 if w:netrw_liststyle == s:LONGLIST | 6670 if w:netrw_liststyle == s:LONGLIST |
6501 " do a long listing; these substitutions need to be done prior to sorting {{{3 | 6671 " do a long listing; these substitutions need to be done prior to sorting {{{3 |
6502 " call Decho("fix long listing:") | 6672 " call Decho("fix long listing:") |
6503 | 6673 |
6504 if s:method == "ftp" | 6674 if s:method == "ftp" |
6505 " cleanup | 6675 " cleanup |
6506 exe "keepjumps ".w:netrw_bannercnt | 6676 exe "keepj ".w:netrw_bannercnt |
6507 while getline('.') =~ g:netrw_ftp_browse_reject | 6677 while getline('.') =~ g:netrw_ftp_browse_reject |
6508 keepjumps d | 6678 keepj d |
6509 endwhile | 6679 endwhile |
6510 " if there's no ../ listed, then put ./ and ../ in | 6680 " if there's no ../ listed, then put ./ and ../ in |
6511 let line1= line(".") | 6681 let line1= line(".") |
6512 keepjumps 1 | 6682 keepj 1 |
6513 silent keepjumps call search('^\.\.\/\%(\s\|$\)','W') | 6683 sil keepj call search('^\.\.\/\%(\s\|$\)','W') |
6514 let line2= line(".") | 6684 let line2= line(".") |
6515 if line2 == 0 | 6685 if line2 == 0 |
6516 exe 'keepjumps '.w:netrw_bannercnt."put='./'" | 6686 exe 'keepj '.w:netrw_bannercnt."put='./'" |
6517 if b:netrw_curdir != '/' | 6687 if b:netrw_curdir != '/' |
6518 exe 'keepjumps '.w:netrw_bannercnt."put='../'" | 6688 exe 'keepj '.w:netrw_bannercnt."put='../'" |
6519 endif | 6689 endif |
6520 endif | 6690 endif |
6521 exe "keepjumps ".line1 | 6691 exe "keepj ".line1 |
6522 keepjumps norm! 0 | 6692 keepjumps norm! 0 |
6523 endif | 6693 endif |
6524 | 6694 |
6525 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup | 6695 if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup |
6526 " call Decho("M$ ftp site listing cleanup") | 6696 " call Decho("M$ ftp site listing cleanup") |
6527 exe 'silent! keepjumps '.w:netrw_bannercnt.',$s/^\(\d\{2}-\d\{2}-\d\{2}\s\+\d\+:\d\+[AaPp][Mm]\s\+\%(<DIR>\|\d\+\)\s\+\)\(\w.*\)$/\2\t\1/' | 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/' |
6528 elseif exists("w:netrw_bannercnt") && w:netrw_bannercnt <= line("$") | 6698 elseif exists("w:netrw_bannercnt") && w:netrw_bannercnt <= line("$") |
6529 " call Decho("normal ftp site listing cleanup: bannercnt=".w:netrw_bannercnt." line($)=".line("$")) | 6699 " call Decho("normal ftp site listing cleanup: bannercnt=".w:netrw_bannercnt." line($)=".line("$")) |
6530 exe 'silent keepjumps '.w:netrw_bannercnt.',$s/ -> .*$//e' | 6700 exe 'sil keepj '.w:netrw_bannercnt.',$s/ -> .*$//e' |
6531 exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e' | 6701 exe 'sil keepj '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e' |
6532 exe 'silent keepjumps '.w:netrw_bannercnt | 6702 exe 'sil keepj '.w:netrw_bannercnt |
6533 call histdel("/",-1) | 6703 call histdel("/",-1) |
6534 call histdel("/",-1) | 6704 call histdel("/",-1) |
6535 call histdel("/",-1) | 6705 call histdel("/",-1) |
6536 endif | 6706 endif |
6537 endif | 6707 endif |
6538 | 6708 |
6539 " if exists("w:netrw_bannercnt") && w:netrw_bannercnt <= line("$") " Decho | 6709 " if exists("w:netrw_bannercnt") && w:netrw_bannercnt <= line("$") " Decho |
6540 " exe "keepjumps ".w:netrw_bannercnt.',$g/^./call Decho("listing: ".getline("."))' | 6710 " exe "keepj ".w:netrw_bannercnt.',$g/^./call Decho("listing: ".getline("."))' |
6541 " endif " Decho | 6711 " endif " Decho |
6542 " call Dret("s:NetrwRemoteListing") | 6712 " call Dret("s:NetrwRemoteListing") |
6543 endfun | 6713 endfun |
6544 | 6714 |
6545 " --------------------------------------------------------------------- | 6715 " --------------------------------------------------------------------- |
6727 | 6897 |
6728 "......................................... | 6898 "......................................... |
6729 if w:netrw_method == 2 || w:netrw_method == 5 | 6899 if w:netrw_method == 2 || w:netrw_method == 5 |
6730 " ftp + <.netrc>: Method #2 | 6900 " ftp + <.netrc>: Method #2 |
6731 if a:path != "" | 6901 if a:path != "" |
6732 put ='cd \"'.a:path.'\"' | 6902 keepj put ='cd \"'.a:path.'\"' |
6733 endif | 6903 endif |
6734 if exists("g:netrw_ftpextracmd") | 6904 if exists("g:netrw_ftpextracmd") |
6735 put =g:netrw_ftpextracmd | 6905 keepj put =g:netrw_ftpextracmd |
6736 " call Decho("filter input: ".getline('.')) | 6906 " call Decho("filter input: ".getline('.')) |
6737 endif | 6907 endif |
6738 call setline(line("$")+1,a:listcmd) | 6908 call setline(line("$")+1,a:listcmd) |
6739 " exe "keepjumps ".w:netrw_bannercnt.',$g/^./call Decho("ftp#".line(".").": ".getline("."))' | 6909 " exe "keepjumps ".w:netrw_bannercnt.',$g/^./call Decho("ftp#".line(".").": ".getline("."))' |
6740 if exists("g:netrw_port") && g:netrw_port != "" | 6910 if exists("g:netrw_port") && g:netrw_port != "" |
6748 "......................................... | 6918 "......................................... |
6749 elseif w:netrw_method == 3 | 6919 elseif w:netrw_method == 3 |
6750 " ftp + machine,id,passwd,filename: Method #3 | 6920 " ftp + machine,id,passwd,filename: Method #3 |
6751 setlocal ff=unix | 6921 setlocal ff=unix |
6752 if exists("g:netrw_port") && g:netrw_port != "" | 6922 if exists("g:netrw_port") && g:netrw_port != "" |
6753 put ='open '.g:netrw_machine.' '.g:netrw_port | 6923 keepj put ='open '.g:netrw_machine.' '.g:netrw_port |
6754 else | 6924 else |
6755 put ='open '.g:netrw_machine | 6925 keepj put ='open '.g:netrw_machine |
6756 endif | 6926 endif |
6757 | 6927 |
6758 if exists("g:netrw_ftp") && g:netrw_ftp == 1 | 6928 if exists("g:netrw_ftp") && g:netrw_ftp == 1 |
6759 put =g:netrw_uid | 6929 keepj put =g:netrw_uid |
6760 put ='\"'.s:netrw_passwd.'\"' | 6930 keepj put ='\"'.s:netrw_passwd.'\"' |
6761 else | 6931 else |
6762 put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' | 6932 keepj put ='user \"'.g:netrw_uid.'\" \"'.s:netrw_passwd.'\"' |
6763 endif | 6933 endif |
6764 | 6934 |
6765 if a:path != "" | 6935 if a:path != "" |
6766 put ='cd \"'.a:path.'\"' | 6936 keepj put ='cd \"'.a:path.'\"' |
6767 endif | 6937 endif |
6768 if exists("g:netrw_ftpextracmd") | 6938 if exists("g:netrw_ftpextracmd") |
6769 put =g:netrw_ftpextracmd | 6939 keepj put =g:netrw_ftpextracmd |
6770 " call Decho("filter input: ".getline('.')) | 6940 " call Decho("filter input: ".getline('.')) |
6771 endif | 6941 endif |
6772 call setline(line("$")+1,a:listcmd) | 6942 keepj call setline(line("$")+1,a:listcmd) |
6773 | 6943 |
6774 " perform ftp: | 6944 " perform ftp: |
6775 " -i : turns off interactive prompting from ftp | 6945 " -i : turns off interactive prompting from ftp |
6776 " -n unix : DON'T use <.netrc>, even though it exists | 6946 " -n unix : DON'T use <.netrc>, even though it exists |
6777 " -n win32: quit being obnoxious about password | 6947 " -n win32: quit being obnoxious about password |
6784 call netrw#ErrorMsg(s:WARNING,"unable to comply with your request<" . choice . ">",23) | 6954 call netrw#ErrorMsg(s:WARNING,"unable to comply with your request<" . choice . ">",23) |
6785 endif | 6955 endif |
6786 | 6956 |
6787 " cleanup for Windows | 6957 " cleanup for Windows |
6788 if has("win32") || has("win95") || has("win64") || has("win16") | 6958 if has("win32") || has("win95") || has("win64") || has("win16") |
6789 silent! keepjumps %s/\r$//e | 6959 sil! keepj %s/\r$//e |
6790 call histdel("/",-1) | 6960 call histdel("/",-1) |
6791 endif | 6961 endif |
6792 if a:listcmd == "dir" | 6962 if a:listcmd == "dir" |
6793 " infer directory/link based on the file permission string | 6963 " infer directory/link based on the file permission string |
6794 silent! keepjumps g/d\%([-r][-w][-x]\)\{3}/s@$@/@ | 6964 sil! keepj g/d\%([-r][-w][-x]\)\{3}/keepj s@$@/@ |
6795 silent! keepjumps g/l\%([-r][-w][-x]\)\{3}/s/$/@/ | 6965 sil! keepj g/l\%([-r][-w][-x]\)\{3}/keepj s/$/@/ |
6796 call histdel("/",-1) | 6966 call histdel("/",-1) |
6797 call histdel("/",-1) | 6967 call histdel("/",-1) |
6798 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST | 6968 if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST |
6799 exe "silent! keepjumps ".w:netrw_bannercnt.',$s/^\%(\S\+\s\+\)\{8}//e' | 6969 exe "sil! keepj ".w:netrw_bannercnt.',$s/^\%(\S\+\s\+\)\{8}//e' |
6800 call histdel("/",-1) | 6970 call histdel("/",-1) |
6801 endif | 6971 endif |
6802 endif | 6972 endif |
6803 | 6973 |
6804 " ftp's listing doesn't seem to include ./ or ../ | 6974 " ftp's listing doesn't seem to include ./ or ../ |
6805 if !search('^\.\/$\|\s\.\/$','wn') | 6975 if !search('^\.\/$\|\s\.\/$','wn') |
6806 exe 'keepjumps '.w:netrw_bannercnt | 6976 exe 'keepj '.w:netrw_bannercnt |
6807 put ='./' | 6977 keepj put ='./' |
6808 endif | 6978 endif |
6809 if !search('^\.\.\/$\|\s\.\.\/$','wn') | 6979 if !search('^\.\.\/$\|\s\.\.\/$','wn') |
6810 exe 'keepjumps '.w:netrw_bannercnt | 6980 exe 'keepj '.w:netrw_bannercnt |
6811 put ='../' | 6981 keepj put ='../' |
6812 endif | 6982 endif |
6813 | 6983 |
6814 " restore settings | 6984 " restore settings |
6815 let &ff= ffkeep | 6985 let &ff= ffkeep |
6816 " call Dret("NetrwRemoteFtpCmd") | 6986 " call Dret("NetrwRemoteFtpCmd") |
6859 | 7029 |
6860 else | 7030 else |
6861 | 7031 |
6862 " attempt to rename files/directories | 7032 " attempt to rename files/directories |
6863 while ctr <= a:lastline | 7033 while ctr <= a:lastline |
6864 exe "keepjumps ".ctr | 7034 exe "keepj ".ctr |
6865 | 7035 |
6866 let oldname= s:NetrwGetWord() | 7036 let oldname= s:NetrwGetWord() |
6867 " call Decho("oldname<".oldname.">") | 7037 " call Decho("oldname<".oldname.">") |
6868 | 7038 |
6869 call inputsave() | 7039 call inputsave() |
7059 " call Decho("getftime(".filename.")=".getftime(filename)) | 7229 " call Decho("getftime(".filename.")=".getftime(filename)) |
7060 let t = getftime(filename) | 7230 let t = getftime(filename) |
7061 let ft = strpart("000000000000000000",1,18-strlen(t)).t | 7231 let ft = strpart("000000000000000000",1,18-strlen(t)).t |
7062 " call Decho("exe keepjumps put ='".ft.'/'.filename."'") | 7232 " call Decho("exe keepjumps put ='".ft.'/'.filename."'") |
7063 let ftpfile= ft.'/'.pfile | 7233 let ftpfile= ft.'/'.pfile |
7064 keepjumps silent! put=ftpfile | 7234 sil! keepj put=ftpfile |
7065 | 7235 |
7066 elseif g:netrw_sort_by =~ "^s" | 7236 elseif g:netrw_sort_by =~ "^s" |
7067 " sort by size (handles file sizes up to 1 quintillion bytes, US) | 7237 " sort by size (handles file sizes up to 1 quintillion bytes, US) |
7068 " call Decho("getfsize(".filename.")=".getfsize(filename)) | 7238 " call Decho("getfsize(".filename.")=".getfsize(filename)) |
7069 let sz = getfsize(filename) | 7239 let sz = getfsize(filename) |
7070 let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz | 7240 let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz |
7071 " call Decho("exe keepjumps put ='".fsz.'/'.filename."'") | 7241 " call Decho("exe keepjumps put ='".fsz.'/'.filename."'") |
7072 let fszpfile= fsz.'/'.pfile | 7242 let fszpfile= fsz.'/'.pfile |
7073 keepjumps silent! put =fszpfile | 7243 sil! keepj put =fszpfile |
7074 | 7244 |
7075 else | 7245 else |
7076 " sort by name | 7246 " sort by name |
7077 " call Decho("exe keepjumps put ='".pfile."'") | 7247 " call Decho("exe keepjumps put ='".pfile."'") |
7078 keepjumps silent! put=pfile | 7248 sil! keepj put=pfile |
7079 endif | 7249 endif |
7080 endwhile | 7250 endwhile |
7081 | 7251 |
7082 " cleanup any windows mess at end-of-line | 7252 " cleanup any windows mess at end-of-line |
7083 silent! keepjumps g/^$/d | 7253 sil! keepj g/^$/d |
7084 silent! keepjumps %s/\r$//e | 7254 sil! keepj %s/\r$//e |
7085 call histdel("/",-1) | 7255 call histdel("/",-1) |
7086 exe "setlocal ts=".g:netrw_maxfilenamelen | 7256 exe "setlocal ts=".g:netrw_maxfilenamelen |
7087 " call Decho("setlocal ts=".g:netrw_maxfilenamelen) | 7257 " call Decho("setlocal ts=".g:netrw_maxfilenamelen) |
7088 | 7258 |
7089 " call Dret("s:LocalListing") | 7259 " call Dret("s:LocalListing") |
7130 for ibuf in s:netrw_browselist | 7300 for ibuf in s:netrw_browselist |
7131 " call Decho("bufwinnr(".ibuf.") index(buftablist,".ibuf.")=".index(buftablist,ibuf)) | 7301 " call Decho("bufwinnr(".ibuf.") index(buftablist,".ibuf.")=".index(buftablist,ibuf)) |
7132 if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1 | 7302 if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1 |
7133 " wipe out any non-displaying netrw buffer | 7303 " wipe out any non-displaying netrw buffer |
7134 " call Decho("wiping buf#".ibuf,"<".bufname(ibuf).">") | 7304 " call Decho("wiping buf#".ibuf,"<".bufname(ibuf).">") |
7135 exe "silent! bd ".fnameescape(ibuf) | 7305 exe "sil! bd ".fnameescape(ibuf) |
7136 call remove(s:netrw_browselist,ibl) | 7306 call remove(s:netrw_browselist,ibl) |
7137 " call Decho("browselist=".string(s:netrw_browselist)) | 7307 " call Decho("browselist=".string(s:netrw_browselist)) |
7138 continue | 7308 continue |
7139 elseif index(tabpagebuflist(),ibuf) != -1 | 7309 elseif index(tabpagebuflist(),ibuf) != -1 |
7140 " refresh any netrw buffer | 7310 " refresh any netrw buffer |
7177 " remove (multiple) files and directories | 7347 " remove (multiple) files and directories |
7178 " call Decho("remove files in range [".a:firstline.",".a:lastline."]") | 7348 " call Decho("remove files in range [".a:firstline.",".a:lastline."]") |
7179 | 7349 |
7180 let ctr = a:firstline | 7350 let ctr = a:firstline |
7181 while ctr <= a:lastline | 7351 while ctr <= a:lastline |
7182 exe "keepjumps ".ctr | 7352 exe "keepj ".ctr |
7183 | 7353 |
7184 " sanity checks | 7354 " sanity checks |
7185 if line(".") < w:netrw_bannercnt | 7355 if line(".") < w:netrw_bannercnt |
7186 let ctr= ctr + 1 | 7356 let ctr= ctr + 1 |
7187 continue | 7357 continue |
7217 fun! s:NetrwLocalRmFile(path,fname,all) | 7387 fun! s:NetrwLocalRmFile(path,fname,all) |
7218 " call Dfunc("s:NetrwLocalRmFile(path<".a:path."> fname<".a:fname."> all=".a:all) | 7388 " call Dfunc("s:NetrwLocalRmFile(path<".a:path."> fname<".a:fname."> all=".a:all) |
7219 | 7389 |
7220 let all= a:all | 7390 let all= a:all |
7221 let ok = "" | 7391 let ok = "" |
7222 norm! 0 | 7392 keepj norm! 0 |
7223 let rmfile= s:ComposePath(a:path,a:fname) | 7393 let rmfile= s:ComposePath(a:path,a:fname) |
7224 " call Decho("rmfile<".rmfile.">") | 7394 " call Decho("rmfile<".rmfile.">") |
7225 | 7395 |
7226 if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '[\/]$') | 7396 if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '[\/]$') |
7227 " attempt to remove file | 7397 " attempt to remove file |
7329 | 7499 |
7330 else | 7500 else |
7331 | 7501 |
7332 " attempt to rename files/directories | 7502 " attempt to rename files/directories |
7333 while ctr <= a:lastline | 7503 while ctr <= a:lastline |
7334 exe "keepjumps ".ctr | 7504 exe "keepj ".ctr |
7335 | 7505 |
7336 " sanity checks | 7506 " sanity checks |
7337 if line(".") < w:netrw_bannercnt | 7507 if line(".") < w:netrw_bannercnt |
7338 let ctr= ctr + 1 | 7508 let ctr= ctr + 1 |
7339 continue | 7509 continue |
7342 if curword == "./" || curword == "../" | 7512 if curword == "./" || curword == "../" |
7343 let ctr= ctr + 1 | 7513 let ctr= ctr + 1 |
7344 continue | 7514 continue |
7345 endif | 7515 endif |
7346 | 7516 |
7347 norm! 0 | 7517 keepj norm! 0 |
7348 let oldname= s:ComposePath(a:path,curword) | 7518 let oldname= s:ComposePath(a:path,curword) |
7349 " call Decho("oldname<".oldname.">") | 7519 " call Decho("oldname<".oldname.">") |
7350 | 7520 |
7351 call inputsave() | 7521 call inputsave() |
7352 let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e')) | 7522 let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e')) |
7462 " call Decho("write to NetrwMessage buffer") | 7632 " call Decho("write to NetrwMessage buffer") |
7463 exe bufwinnr("NetrwMessage")."wincmd w" | 7633 exe bufwinnr("NetrwMessage")."wincmd w" |
7464 " call Decho("setlocal ma noro") | 7634 " call Decho("setlocal ma noro") |
7465 setlocal ma noro | 7635 setlocal ma noro |
7466 call setline(line("$")+1,level.a:msg) | 7636 call setline(line("$")+1,level.a:msg) |
7467 $ | 7637 keepj $ |
7468 else | 7638 else |
7469 " call Decho("create a NetrwMessage buffer window") | 7639 " call Decho("create a NetrwMessage buffer window") |
7470 bo 1split | 7640 bo 1split |
7471 call s:NetrwEnew() | 7641 call s:NetrwEnew() |
7472 call s:NetrwSafeOptions() | 7642 call s:NetrwSafeOptions() |
7519 endif | 7689 endif |
7520 | 7690 |
7521 " restore window | 7691 " restore window |
7522 if exists("w:netrw_winnr") | 7692 if exists("w:netrw_winnr") |
7523 " call Decho("restore window: exe silent! ".w:netrw_winnr."wincmd w") | 7693 " call Decho("restore window: exe silent! ".w:netrw_winnr."wincmd w") |
7524 exe "silent! ".w:netrw_winnr."wincmd w" | 7694 exe "sil! ".w:netrw_winnr."wincmd w" |
7525 endif | 7695 endif |
7526 if v:shell_error == 0 | 7696 if v:shell_error == 0 |
7527 " as suggested by Bram M: redraw on no error | 7697 " as suggested by Bram M: redraw on no error |
7528 " allows protocol error messages to remain visible | 7698 " allows protocol error messages to remain visible |
7529 " redraw! | 7699 " redraw! |
7530 endif | 7700 endif |
7531 | 7701 |
7532 " restore top-of-screen line | 7702 " restore top-of-screen line |
7533 if exists("w:netrw_hline") | 7703 if exists("w:netrw_hline") |
7534 " call Decho("restore topofscreen: exe norm! ".w:netrw_hline."G0z") | 7704 " call Decho("restore topofscreen: exe norm! ".w:netrw_hline."G0z") |
7535 exe "norm! ".w:netrw_hline."G0z\<CR>" | 7705 exe "keepj norm! ".w:netrw_hline."G0z\<CR>" |
7536 endif | 7706 endif |
7537 | 7707 |
7538 " restore position | 7708 " restore position |
7539 if exists("w:netrw_line") && exists("w:netrw_col") | 7709 if exists("w:netrw_line") && exists("w:netrw_col") |
7540 " call Decho("restore posn: exe norm! ".w:netrw_line."G0".w:netrw_col."|") | 7710 " call Decho("restore posn: exe norm! ".w:netrw_line."G0".w:netrw_col."|") |
7541 exe "norm! ".w:netrw_line."G0".w:netrw_col."\<bar>" | 7711 exe "keepj norm! ".w:netrw_line."G0".w:netrw_col."\<bar>" |
7542 endif | 7712 endif |
7543 | 7713 |
7544 let &ei= eikeep | 7714 let &ei= eikeep |
7545 " call Dret("netrw#NetrwRestorePosn") | 7715 " call Dret("netrw#NetrwRestorePosn") |
7546 endfun | 7716 endfun |
7554 let w:netrw_line = line(".") | 7724 let w:netrw_line = line(".") |
7555 let w:netrw_col = virtcol(".") | 7725 let w:netrw_col = virtcol(".") |
7556 " call Decho("currently, win#".w:netrw_winnr." line#".w:netrw_line." col#".w:netrw_col) | 7726 " call Decho("currently, win#".w:netrw_winnr." line#".w:netrw_line." col#".w:netrw_col) |
7557 | 7727 |
7558 " Save top-of-screen line | 7728 " Save top-of-screen line |
7559 norm! H0 | 7729 keepj norm! H0 |
7560 let w:netrw_hline= line(".") | 7730 let w:netrw_hline= line(".") |
7561 | 7731 |
7562 " set up string holding position parameters | 7732 " set up string holding position parameters |
7563 let ret = "let w:netrw_winnr=".w:netrw_winnr."|let w:netrw_line=".w:netrw_line."|let w:netrw_col=".w:netrw_col."|let w:netrw_hline=".w:netrw_hline | 7733 let ret = "let w:netrw_winnr=".w:netrw_winnr."|let w:netrw_line=".w:netrw_line."|let w:netrw_col=".w:netrw_col."|let w:netrw_hline=".w:netrw_hline |
7564 | 7734 |
7745 if bmshowlist != [] | 7915 if bmshowlist != [] |
7746 let bmshowfuncs= filter(bmshowlist,'v:val =~ "<SNR>\\d\\+_BMShow()"') | 7916 let bmshowfuncs= filter(bmshowlist,'v:val =~ "<SNR>\\d\\+_BMShow()"') |
7747 if bmshowfuncs != [] | 7917 if bmshowfuncs != [] |
7748 let bmshowfunc = substitute(bmshowfuncs[0],'^.*:\(call.*BMShow()\).*$','\1','') | 7918 let bmshowfunc = substitute(bmshowfuncs[0],'^.*:\(call.*BMShow()\).*$','\1','') |
7749 if bmshowfunc =~ '^call.*BMShow()' | 7919 if bmshowfunc =~ '^call.*BMShow()' |
7750 exe "silent! ".bmshowfunc | 7920 exe "sil! ".bmshowfunc |
7751 endif | 7921 endif |
7752 endif | 7922 endif |
7753 endif | 7923 endif |
7754 " call Dret("s:NetrwBMShow : bmshowfunc<".(exists("bmshowfunc")? bmshowfunc : 'n/a').">") | 7924 " call Dret("s:NetrwBMShow : bmshowfunc<".(exists("bmshowfunc")? bmshowfunc : 'n/a').">") |
7925 endfun | |
7926 | |
7927 " --------------------------------------------------------------------- | |
7928 " s:NetrwCursorline: {{{2 | |
7929 fun! s:NetrwCursorline() | |
7930 if !exists("w:netrw_liststyle") | |
7931 let w:netrw_liststyle= g:netrw_liststyle | |
7932 endif | |
7933 " call Dfunc("s:NetrwCursorline() liststyle=".w:netrw_liststyle." g:netrw_cursorline=".g:netrw_cursorline." s:netrw_usercuc=".s:netrw_usercuc." s:netrw_usercul=".s:netrw_usercul) | |
7934 " | |
7935 if w:netrw_liststyle != s:WIDELIST | |
7936 " thin-long-tree listings | |
7937 if g:netrw_cursorline == 2 | |
7938 setlocal cursorline | |
7939 let &l:cursorcolumn= s:netrw_usercuc | |
7940 " call Decho("setlocal cursorline (cursorcolumn is ".((s:netrw_usercuc)? "on" : "off").")") | |
7941 elseif g:netrw_cursorline | |
7942 setlocal cursorline | |
7943 " call Decho("setlocal cursorline") | |
7944 endif | |
7945 | |
7946 else | |
7947 " wide listings | |
7948 if g:netrw_cursorline == 2 | |
7949 setlocal cursorline cursorcolumn | |
7950 " call Decho("setlocal cursorline cursorcolumn") | |
7951 elseif g:netrw_cursorline | |
7952 let &l:cursorline= s:netrw_usercul | |
7953 " call Decho("cursorline is ".((s:netrw_usercul)? "on" : "off").")") | |
7954 endif | |
7955 endif | |
7956 " call Dret("s:NetrwCursorline : l:cursorline=".&l:cursorline." l:cursorcolumn=".&l:cursorcolumn) | |
7957 endfun | |
7958 | |
7959 " --------------------------------------------------------------------- | |
7960 " s:RestoreCursorline: restores cursorline/cursorcolumn to original user settings {{{2 | |
7961 fun! s:RestoreCursorline() | |
7962 " call Dfunc("s:RestoreCursorline() currently, cul=".&l:cursorline." cuc=".&l:cursorcolumn." win#".winnr()." buf#".bufnr("%")) | |
7963 let &l:cursorline = s:netrw_usercul | |
7964 let &l:cursorcolumn = s:netrw_usercuc | |
7965 " call Dret("s:RestoreCursorline : restored cul=".&l:cursorline." cuc=".&l:cursorcolumn) | |
7755 endfun | 7966 endfun |
7756 | 7967 |
7757 " --------------------------------------------------------------------- | 7968 " --------------------------------------------------------------------- |
7758 " s:NetrwDelete: Deletes a file. {{{2 | 7969 " s:NetrwDelete: Deletes a file. {{{2 |
7759 " Uses Steve Hall's idea to insure that Windows paths stay | 7970 " Uses Steve Hall's idea to insure that Windows paths stay |
7786 endfun | 7997 endfun |
7787 | 7998 |
7788 " --------------------------------------------------------------------- | 7999 " --------------------------------------------------------------------- |
7789 " s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2 | 8000 " s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2 |
7790 fun! s:NetrwEnew(...) | 8001 fun! s:NetrwEnew(...) |
7791 " call Dfunc("s:NetrwEnew() a:0=".a:0) | 8002 " call Dfunc("s:NetrwEnew() a:0=".a:0." bufnr($)=".bufnr("$")) |
7792 " call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">") | 8003 " call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">") |
7793 | 8004 |
7794 " grab a function-local-variable copy of buffer variables | 8005 " grab a function-local-variable copy of buffer variables |
8006 " call Decho("make function-local copy of netrw variables") | |
7795 if exists("b:netrw_bannercnt") |let netrw_bannercnt = b:netrw_bannercnt |endif | 8007 if exists("b:netrw_bannercnt") |let netrw_bannercnt = b:netrw_bannercnt |endif |
7796 if exists("b:netrw_browser_active") |let netrw_browser_active = b:netrw_browser_active |endif | 8008 if exists("b:netrw_browser_active") |let netrw_browser_active = b:netrw_browser_active |endif |
7797 if exists("b:netrw_cpf") |let netrw_cpf = b:netrw_cpf |endif | 8009 if exists("b:netrw_cpf") |let netrw_cpf = b:netrw_cpf |endif |
7798 if exists("b:netrw_curdir") |let netrw_curdir = b:netrw_curdir |endif | 8010 if exists("b:netrw_curdir") |let netrw_curdir = b:netrw_curdir |endif |
7799 if exists("b:netrw_explore_bufnr") |let netrw_explore_bufnr = b:netrw_explore_bufnr |endif | 8011 if exists("b:netrw_explore_bufnr") |let netrw_explore_bufnr = b:netrw_explore_bufnr |endif |
7809 if exists("b:netrw_option") |let netrw_option = b:netrw_option |endif | 8021 if exists("b:netrw_option") |let netrw_option = b:netrw_option |endif |
7810 if exists("b:netrw_prvdir") |let netrw_prvdir = b:netrw_prvdir |endif | 8022 if exists("b:netrw_prvdir") |let netrw_prvdir = b:netrw_prvdir |endif |
7811 | 8023 |
7812 call s:NetrwOptionRestore("w:") | 8024 call s:NetrwOptionRestore("w:") |
7813 " call Decho("generate a buffer with keepjumps keepalt enew!") | 8025 " call Decho("generate a buffer with keepjumps keepalt enew!") |
7814 keepjumps keepalt enew! | 8026 keepj keepalt enew! |
8027 " call Decho("bufnr($)=".bufnr("$")) | |
7815 call s:NetrwOptionSave("w:") | 8028 call s:NetrwOptionSave("w:") |
7816 | 8029 |
7817 " copy function-local-variables to buffer variable equivalents | 8030 " copy function-local-variables to buffer variable equivalents |
8031 " call Decho("copy function-local variables back to buffer netrw variables") | |
7818 if exists("netrw_bannercnt") |let b:netrw_bannercnt = netrw_bannercnt |endif | 8032 if exists("netrw_bannercnt") |let b:netrw_bannercnt = netrw_bannercnt |endif |
7819 if exists("netrw_browser_active") |let b:netrw_browser_active = netrw_browser_active |endif | 8033 if exists("netrw_browser_active") |let b:netrw_browser_active = netrw_browser_active |endif |
7820 if exists("netrw_cpf") |let b:netrw_cpf = netrw_cpf |endif | 8034 if exists("netrw_cpf") |let b:netrw_cpf = netrw_cpf |endif |
7821 if exists("netrw_curdir") |let b:netrw_curdir = netrw_curdir |endif | 8035 if exists("netrw_curdir") |let b:netrw_curdir = netrw_curdir |endif |
7822 if exists("netrw_explore_bufnr") |let b:netrw_explore_bufnr = netrw_explore_bufnr |endif | 8036 if exists("netrw_explore_bufnr") |let b:netrw_explore_bufnr = netrw_explore_bufnr |endif |
7835 if a:0 > 0 | 8049 if a:0 > 0 |
7836 let b:netrw_curdir= a:1 | 8050 let b:netrw_curdir= a:1 |
7837 if b:netrw_curdir =~ '/$' | 8051 if b:netrw_curdir =~ '/$' |
7838 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST | 8052 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST |
7839 file NetrwTreeListing | 8053 file NetrwTreeListing |
8054 set bt=nowrite noswf | |
7840 nno <silent> <buffer> [ :silent call <SID>TreeListMove('[')<cr> | 8055 nno <silent> <buffer> [ :silent call <SID>TreeListMove('[')<cr> |
7841 nno <silent> <buffer> ] :silent call <SID>TreeListMove(']')<cr> | 8056 nno <silent> <buffer> ] :silent call <SID>TreeListMove(']')<cr> |
7842 else | 8057 else |
7843 exe "silent! keepalt file ".fnameescape(b:netrw_curdir) | 8058 exe "sil! keepalt file ".fnameescape(b:netrw_curdir) |
7844 endif | 8059 endif |
7845 endif | 8060 endif |
7846 endif | 8061 endif |
7847 | 8062 |
7848 " call Dret("s:NetrwEnew : buf#".bufnr("%")."<".bufname("%")."> expand(%)<".expand("%")."> expand(#)<".expand("#").">") | 8063 " call Dret("s:NetrwEnew : buf#".bufnr("%")."<".bufname("%")."> expand(%)<".expand("%")."> expand(#)<".expand("#").">") |
8093 " virtual length (counting, for instance, tabs as anything between 1 and | 8308 " virtual length (counting, for instance, tabs as anything between 1 and |
8094 " 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately | 8309 " 'tabstop', wide CJK as 2 rather than 1, Arabic alif as zero when immediately |
8095 " preceded by lam, one otherwise, etc.) | 8310 " preceded by lam, one otherwise, etc.) |
8096 " (comment from TM, solution from me) | 8311 " (comment from TM, solution from me) |
8097 let modkeep= &mod | 8312 let modkeep= &mod |
8098 exe "norm! o\<esc>" | 8313 exe "keepj norm! o\<esc>" |
8099 call setline(line("."),a:x) | 8314 call setline(line("."),a:x) |
8100 let ret= virtcol("$") - 1 | 8315 let ret= virtcol("$") - 1 |
8101 d | 8316 keepj d |
8102 let &mod= modkeep | 8317 let &mod= modkeep |
8103 | 8318 |
8104 else | 8319 else |
8105 " at least give a decent default | 8320 " at least give a decent default |
8106 let ret= strlen(a:x) | 8321 let ret= strlen(a:x) |
8125 " call Decho("indentm1 <".indentm1.">") | 8340 " call Decho("indentm1 <".indentm1.">") |
8126 | 8341 |
8127 if curline !~ '/$' | 8342 if curline !~ '/$' |
8128 " call Decho('regfile') | 8343 " call Decho('regfile') |
8129 if a:dir == '[' && prvline != '' | 8344 if a:dir == '[' && prvline != '' |
8130 norm! 0 | 8345 keepj norm! 0 |
8131 let nl = search('^'.indentm1.'[^|]','bWe') " search backwards from regular file | 8346 let nl = search('^'.indentm1.'[^|]','bWe') " search backwards from regular file |
8132 " call Decho("regfile srch back: ".nl) | 8347 " call Decho("regfile srch back: ".nl) |
8133 elseif a:dir == ']' && nxtline != '' | 8348 elseif a:dir == ']' && nxtline != '' |
8134 norm! $ | 8349 keepj norm! $ |
8135 let nl = search('^'.indentm1.'[^|]','We') " search forwards from regular file | 8350 let nl = search('^'.indentm1.'[^|]','We') " search forwards from regular file |
8136 " call Decho("regfile srch fwd: ".nl) | 8351 " call Decho("regfile srch fwd: ".nl) |
8137 endif | 8352 endif |
8138 | 8353 |
8139 elseif a:dir == '[' && prvline != '' | 8354 elseif a:dir == '[' && prvline != '' |
8140 norm! 0 | 8355 keepj norm! 0 |
8141 let curline= line(".") | 8356 let curline= line(".") |
8142 let nl = search('^'.curindent.'[^|]','bWe') " search backwards From directory, same indentation | 8357 let nl = search('^'.curindent.'[^|]','bWe') " search backwards From directory, same indentation |
8143 " call Decho("dir srch back ind: ".nl) | 8358 " call Decho("dir srch back ind: ".nl) |
8144 if nl != 0 | 8359 if nl != 0 |
8145 if line(".") == curline-1 | 8360 if line(".") == curline-1 |
8147 " call Decho("dir srch back ind-1: ".nl) | 8362 " call Decho("dir srch back ind-1: ".nl) |
8148 endif | 8363 endif |
8149 endif | 8364 endif |
8150 | 8365 |
8151 elseif a:dir == ']' && nxtline != '' | 8366 elseif a:dir == ']' && nxtline != '' |
8152 norm! $ | 8367 keepj norm! $ |
8153 let curline = line(".") | 8368 let curline = line(".") |
8154 let nl = search('^'.curindent.'[^|]','We') " search forwards from directory, same indentation | 8369 let nl = search('^'.curindent.'[^|]','We') " search forwards from directory, same indentation |
8155 " call Decho("dir srch fwd ind: ".nl) | 8370 " call Decho("dir srch fwd ind: ".nl) |
8156 if nl != 0 | 8371 if nl != 0 |
8157 if line(".") == curline+1 | 8372 if line(".") == curline+1 |