Mercurial > vim
comparison runtime/autoload/netrw.vim @ 12785:65d7fd8381a3
Update runtime files.
commit https://github.com/vim/vim/commit/b0d45e7f5354375edd02afafde3bd37dac1515ff
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Nov 5 18:19:24 2017 +0100
Update runtime files.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 05 Nov 2017 18:30:05 +0100 |
parents | 8335fdda6d4d |
children | 92a0a33f8296 |
comparison
equal
deleted
inserted
replaced
12784:b38715f6a758 | 12785:65d7fd8381a3 |
---|---|
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: Apr 20, 2016 | 3 " Date: Nov 03, 2017 |
4 " Version: 156 | 4 " Version: 162 |
5 " Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> | 5 " Maintainer: Charles E Campbell <NdrOchip@ScampbellPfamily.AbizM-NOSPAM> |
6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim | 6 " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim |
7 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 | 7 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{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 " netrw requires vim having patch 7.4.213; netrw will benefit from vim's having patch#656, too | 25 |
26 if v:version < 704 || (v:version == 704 && !has("patch213")) | 26 " Check that vim has patches that netrw requires. |
27 if !exists("s:needpatch213") | 27 " Patches needed: 1557, and 213. |
28 unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch 213" | 28 " (netrw will benefit from vim's having patch#656, too) |
29 endif | 29 let s:needspatches=[1557,213] |
30 let s:needpatch213= 1 | 30 if exists("s:needspatches") |
31 finish | 31 for ptch in s:needspatches |
32 if v:version < 704 || (v:version == 704 && !has("patch".ptch)) | |
33 if !exists("s:needpatch{ptch}") | |
34 unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch#".ptch | |
35 endif | |
36 let s:needpatch{ptch}= 1 | |
37 finish | |
38 endif | |
39 endfor | |
32 endif | 40 endif |
33 let g:loaded_netrw = "v156" | 41 |
42 let g:loaded_netrw = "v162" | |
34 if !exists("s:NOTE") | 43 if !exists("s:NOTE") |
35 let s:NOTE = 0 | 44 let s:NOTE = 0 |
36 let s:WARNING = 1 | 45 let s:WARNING = 1 |
37 let s:ERROR = 2 | 46 let s:ERROR = 2 |
38 endif | 47 endif |
53 " 1=warning = s:WARNING | 62 " 1=warning = s:WARNING |
54 " 2=error = s:ERROR | 63 " 2=error = s:ERROR |
55 " Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number) | 64 " Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number) |
56 " netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number) | 65 " netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number) |
57 " (this function can optionally take a list of messages) | 66 " (this function can optionally take a list of messages) |
58 " Jan 19, 2016 : max errnum currently is 103 | 67 " Mar 21, 2017 : max errnum currently is 105 |
59 fun! netrw#ErrorMsg(level,msg,errnum) | 68 fun! netrw#ErrorMsg(level,msg,errnum) |
60 " call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow) | 69 " call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow) |
61 | 70 |
62 if a:level < g:netrw_errorlvl | 71 if a:level < g:netrw_errorlvl |
63 " call Dret("netrw#ErrorMsg : suppressing level=".a:level." since g:netrw_errorlvl=".g:netrw_errorlvl) | 72 " call Dret("netrw#ErrorMsg : suppressing level=".a:level." since g:netrw_errorlvl=".g:netrw_errorlvl) |
177 call s:NetrwInit("s:LONGLIST",1) | 186 call s:NetrwInit("s:LONGLIST",1) |
178 call s:NetrwInit("s:WIDELIST",2) | 187 call s:NetrwInit("s:WIDELIST",2) |
179 call s:NetrwInit("s:TREELIST",3) | 188 call s:NetrwInit("s:TREELIST",3) |
180 call s:NetrwInit("s:MAXLIST" ,4) | 189 call s:NetrwInit("s:MAXLIST" ,4) |
181 endif | 190 endif |
191 | |
192 " --------------------------------------------------------------------- | |
193 " Default option values: {{{2 | |
194 let g:netrw_localcopycmdopt = "" | |
195 let g:netrw_localcopydircmdopt = "" | |
196 let g:netrw_localmkdiropt = "" | |
197 let g:netrw_localmovecmdopt = "" | |
198 let g:netrw_localrmdiropt = "" | |
182 | 199 |
183 " --------------------------------------------------------------------- | 200 " --------------------------------------------------------------------- |
184 " Default values for netrw's global protocol variables {{{2 | 201 " Default values for netrw's global protocol variables {{{2 |
185 call s:NetrwInit("g:netrw_use_errorwindow",1) | 202 call s:NetrwInit("g:netrw_use_errorwindow",1) |
186 | 203 |
213 let s:netrw_ftp_cmd= g:netrw_ftp_cmd | 230 let s:netrw_ftp_cmd= g:netrw_ftp_cmd |
214 if !exists("g:netrw_ftp_options") | 231 if !exists("g:netrw_ftp_options") |
215 let g:netrw_ftp_options= "-i -n" | 232 let g:netrw_ftp_options= "-i -n" |
216 endif | 233 endif |
217 if !exists("g:netrw_http_cmd") | 234 if !exists("g:netrw_http_cmd") |
218 if executable("elinks") | 235 if executable("curl") |
219 let g:netrw_http_cmd = "elinks" | |
220 call s:NetrwInit("g:netrw_http_xcmd","-source >") | |
221 elseif executable("links") | |
222 let g:netrw_http_cmd = "links" | |
223 call s:NetrwInit("g:netrw_http_xcmd","-source >") | |
224 elseif executable("curl") | |
225 let g:netrw_http_cmd = "curl" | 236 let g:netrw_http_cmd = "curl" |
226 call s:NetrwInit("g:netrw_http_xcmd","-o") | 237 call s:NetrwInit("g:netrw_http_xcmd","-L -o") |
227 elseif executable("wget") | 238 elseif executable("wget") |
228 let g:netrw_http_cmd = "wget" | 239 let g:netrw_http_cmd = "wget" |
229 call s:NetrwInit("g:netrw_http_xcmd","-q -O") | 240 call s:NetrwInit("g:netrw_http_xcmd","-q -O") |
241 elseif executable("elinks") | |
242 let g:netrw_http_cmd = "elinks" | |
243 call s:NetrwInit("g:netrw_http_xcmd","-source >") | |
230 elseif executable("fetch") | 244 elseif executable("fetch") |
231 let g:netrw_http_cmd = "fetch" | 245 let g:netrw_http_cmd = "fetch" |
232 call s:NetrwInit("g:netrw_http_xcmd","-o") | 246 call s:NetrwInit("g:netrw_http_xcmd","-o") |
247 elseif executable("links") | |
248 let g:netrw_http_cmd = "links" | |
249 call s:NetrwInit("g:netrw_http_xcmd","-http.extra-header ".shellescape("Accept-Encoding: identity", 1)." -source >") | |
233 else | 250 else |
234 let g:netrw_http_cmd = "" | 251 let g:netrw_http_cmd = "" |
235 endif | 252 endif |
236 endif | 253 endif |
237 call s:NetrwInit("g:netrw_http_put_cmd","curl -T") | 254 call s:NetrwInit("g:netrw_http_put_cmd","curl -T") |
238 call s:NetrwInit("g:netrw_keepj","keepj") | 255 call s:NetrwInit("g:netrw_keepj","keepj") |
239 call s:NetrwInit("g:netrw_rcp_cmd" , "rcp") | 256 call s:NetrwInit("g:netrw_rcp_cmd" , "rcp") |
240 call s:NetrwInit("g:netrw_rsync_cmd", "rsync") | 257 call s:NetrwInit("g:netrw_rsync_cmd", "rsync") |
258 call s:NetrwInit("g:netrw_rsync_sep", "/") | |
241 if !exists("g:netrw_scp_cmd") | 259 if !exists("g:netrw_scp_cmd") |
242 if executable("scp") | 260 if executable("scp") |
243 call s:NetrwInit("g:netrw_scp_cmd" , "scp -q") | 261 call s:NetrwInit("g:netrw_scp_cmd" , "scp -q") |
244 elseif executable("pscp") | 262 elseif executable("pscp") |
245 if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable('c:\private.ppk') | 263 if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable('c:\private.ppk') |
362 if !exists("g:netrw_localcopycmd") | 380 if !exists("g:netrw_localcopycmd") |
363 if has("win32") || has("win95") || has("win64") || has("win16") | 381 if has("win32") || has("win95") || has("win64") || has("win16") |
364 if g:netrw_cygwin | 382 if g:netrw_cygwin |
365 let g:netrw_localcopycmd= "cp" | 383 let g:netrw_localcopycmd= "cp" |
366 else | 384 else |
367 let g:netrw_localcopycmd= expand("$COMSPEC")." /c copy" | 385 let g:netrw_localcopycmd = expand("$COMSPEC") |
386 let g:netrw_localcopycmdopt= " /c copy" | |
368 endif | 387 endif |
369 elseif has("unix") || has("macunix") | 388 elseif has("unix") || has("macunix") |
370 let g:netrw_localcopycmd= "cp" | 389 let g:netrw_localcopycmd= "cp" |
371 else | 390 else |
372 let g:netrw_localcopycmd= "" | 391 let g:netrw_localcopycmd= "" |
373 endif | 392 endif |
374 endif | 393 endif |
375 if !exists("g:netrw_localcopydircmd") | 394 if !exists("g:netrw_localcopydircmd") |
376 if has("win32") || has("win95") || has("win64") || has("win16") | 395 if has("win32") || has("win95") || has("win64") || has("win16") |
377 if g:netrw_cygwin | 396 if g:netrw_cygwin |
378 let g:netrw_localcopydircmd= "cp -R" | 397 let g:netrw_localcopydircmd = "cp" |
379 else | 398 let g:netrw_localcopydircmdopt= " -R" |
380 let g:netrw_localcopycmd= expand("$COMSPEC")." /c xcopy /e /c /h /i /k" | 399 else |
381 endif | 400 let g:netrw_localcopydircmd = expand("$COMSPEC") |
382 elseif has("unix") || has("macunix") | 401 let g:netrw_localcopydircmdopt= " /c xcopy /e /c /h /i /k" |
383 let g:netrw_localcopydircmd= "cp -R" | 402 endif |
403 elseif has("unix") | |
404 let g:netrw_localcopydircmd = "cp" | |
405 let g:netrw_localcopydircmdopt= " -R" | |
406 elseif has("macunix") | |
407 let g:netrw_localcopydircmd = "cp" | |
408 let g:netrw_localcopydircmdopt= " -R" | |
384 else | 409 else |
385 let g:netrw_localcopycmd= "" | 410 let g:netrw_localcopydircmd= "" |
386 endif | 411 endif |
387 endif | 412 endif |
388 if exists("g:netrw_local_mkdir") | 413 if exists("g:netrw_local_mkdir") |
389 let g:netrw_localmkdir= g:netrw_local_mkdir | 414 let g:netrw_localmkdir= g:netrw_local_mkdir |
390 call netrw#ErrorMsg(s:NOTE,"g:netrw_local_mkdir is deprecated in favor of g:netrw_localmkdir",87) | 415 call netrw#ErrorMsg(s:NOTE,"g:netrw_local_mkdir is deprecated in favor of g:netrw_localmkdir",87) |
391 endif | 416 endif |
392 if has("win32") || has("win95") || has("win64") || has("win16") | 417 if has("win32") || has("win95") || has("win64") || has("win16") |
393 if g:netrw_cygwin | 418 if g:netrw_cygwin |
394 call s:NetrwInit("g:netrw_localmkdir","mkdir") | 419 call s:NetrwInit("g:netrw_localmkdir","mkdir") |
395 else | 420 else |
396 let g:netrw_localmkdir= expand("$COMSPEC")." /c mkdir" | 421 let g:netrw_localmkdir = expand("$COMSPEC") |
422 let g:netrw_localmkdiropt= " /c mkdir" | |
397 endif | 423 endif |
398 else | 424 else |
399 call s:NetrwInit("g:netrw_localmkdir","mkdir") | 425 call s:NetrwInit("g:netrw_localmkdir","mkdir") |
400 endif | 426 endif |
401 call s:NetrwInit("g:netrw_remote_mkdir","mkdir") | 427 call s:NetrwInit("g:netrw_remote_mkdir","mkdir") |
406 if !exists("g:netrw_localmovecmd") | 432 if !exists("g:netrw_localmovecmd") |
407 if has("win32") || has("win95") || has("win64") || has("win16") | 433 if has("win32") || has("win95") || has("win64") || has("win16") |
408 if g:netrw_cygwin | 434 if g:netrw_cygwin |
409 let g:netrw_localmovecmd= "mv" | 435 let g:netrw_localmovecmd= "mv" |
410 else | 436 else |
411 let g:netrw_localmovecmd= expand("$COMSPEC")." /c move" | 437 let g:netrw_localmovecmd = expand("$COMSPEC") |
438 let g:netrw_localmovecmdopt= " /c move" | |
412 endif | 439 endif |
413 elseif has("unix") || has("macunix") | 440 elseif has("unix") || has("macunix") |
414 let g:netrw_localmovecmd= "mv" | 441 let g:netrw_localmovecmd= "mv" |
415 else | 442 else |
416 let g:netrw_localmovecmd= "" | 443 let g:netrw_localmovecmd= "" |
417 endif | 444 endif |
418 endif | 445 endif |
419 if v:version < 704 || !has("patch1109") | 446 if v:version < 704 || (v:version == 704 && !has("patch1107")) |
447 " 1109 provides for delete(tmpdir,"d") which is what will be used | |
420 if exists("g:netrw_local_rmdir") | 448 if exists("g:netrw_local_rmdir") |
421 let g:netrw_localrmdir= g:netrw_local_rmdir | 449 let g:netrw_localrmdir= g:netrw_local_rmdir |
422 call netrw#ErrorMsg(s:NOTE,"g:netrw_local_rmdir is deprecated in favor of g:netrw_localrmdir",86) | 450 call netrw#ErrorMsg(s:NOTE,"g:netrw_local_rmdir is deprecated in favor of g:netrw_localrmdir",86) |
423 endif | 451 endif |
424 if has("win32") || has("win95") || has("win64") || has("win16") | 452 if has("win32") || has("win95") || has("win64") || has("win16") |
425 if g:netrw_cygwin | 453 if g:netrw_cygwin |
426 call s:NetrwInit("g:netrw_localrmdir","rmdir") | 454 call s:NetrwInit("g:netrw_localrmdir","rmdir") |
427 else | 455 else |
428 let g:netrw_localrmdir= expand("$COMSPEC")." /c rmdir" | 456 let g:netrw_localrmdir = expand("$COMSPEC") |
457 let g:netrw_localrmdiropt= " /c rmdir" | |
429 endif | 458 endif |
430 else | 459 else |
431 call s:NetrwInit("g:netrw_localrmdir","rmdir") | 460 call s:NetrwInit("g:netrw_localrmdir","rmdir") |
432 endif | 461 endif |
433 endif | 462 endif |
525 if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4') | 554 if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4') |
526 let s:treedepthstring= "│ " | 555 let s:treedepthstring= "│ " |
527 else | 556 else |
528 let s:treedepthstring= "| " | 557 let s:treedepthstring= "| " |
529 endif | 558 endif |
530 call s:NetrwInit("s:netrw_nbcd",'{}') | 559 call s:NetrwInit("s:netrw_posn",'{}') |
531 | 560 |
532 " BufEnter event ignored by decho when following variable is true | 561 " BufEnter event ignored by decho when following variable is true |
533 " Has a side effect that doau BufReadPost doesn't work, so | 562 " Has a side effect that doau BufReadPost doesn't work, so |
534 " files read by network transfer aren't appropriately highlighted. | 563 " files read by network transfer aren't appropriately highlighted. |
535 "let g:decho_bufenter = 1 "Decho | 564 "let g:decho_bufenter = 1 "Decho |
886 " call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) | 915 " call Decho("..case Nexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) |
887 if !exists("w:netrw_explore_list") " sanity check | 916 if !exists("w:netrw_explore_list") " sanity check |
888 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) | 917 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) |
889 if has("clipboard") | 918 if has("clipboard") |
890 sil! let @* = keepregstar | 919 sil! let @* = keepregstar |
891 sil! let @+ = keepregstar | 920 sil! let @+ = keepregplus |
892 endif | 921 endif |
893 sil! let @/ = keepregslash | 922 sil! let @/ = keepregslash |
894 " call Dret("netrw#Explore") | 923 " call Dret("netrw#Explore") |
895 return | 924 return |
896 endif | 925 endif |
911 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) | 940 " call Decho("case Pexplore with starpat=".starpat.": (indx=".indx.")",'~'.expand("<slnum>")) |
912 if !exists("w:netrw_explore_list") " sanity check | 941 if !exists("w:netrw_explore_list") " sanity check |
913 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) | 942 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41) |
914 if has("clipboard") | 943 if has("clipboard") |
915 sil! let @* = keepregstar | 944 sil! let @* = keepregstar |
916 sil! let @+ = keepregstar | 945 sil! let @+ = keepregplus |
917 endif | 946 endif |
918 sil! let @/ = keepregslash | 947 sil! let @/ = keepregslash |
919 " call Dret("netrw#Explore") | 948 " call Dret("netrw#Explore") |
920 return | 949 return |
921 endif | 950 endif |
965 exe "sil NetrwKeepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*" | 994 exe "sil NetrwKeepj noautocmd keepalt vimgrep /".pattern."/gj "."**/*" |
966 catch /^Vim\%((\a\+)\)\=:E480/ | 995 catch /^Vim\%((\a\+)\)\=:E480/ |
967 keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) | 996 keepalt call netrw#ErrorMsg(s:WARNING,'no files matched pattern<'.pattern.'>',45) |
968 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif | 997 if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif |
969 if has("clipboard") | 998 if has("clipboard") |
970 sil! let @* = keepregstar | 999 sil! let @* = keepregstar |
971 sil! let @+ = keepregstar | 1000 sil! let @+ = keepregplus |
972 endif | 1001 endif |
973 sil! let @/ = keepregslash | 1002 sil! let @/ = keepregslash |
974 " call Dret("netrw#Explore : no files matched pattern") | 1003 " call Dret("netrw#Explore : no files matched pattern") |
975 return | 1004 return |
976 endtry | 1005 endtry |
1002 | 1031 |
1003 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') | 1032 if w:netrw_explore_listlen == 0 || (w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/') |
1004 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42) | 1033 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"no files matched",42) |
1005 if has("clipboard") | 1034 if has("clipboard") |
1006 sil! let @* = keepregstar | 1035 sil! let @* = keepregstar |
1007 sil! let @+ = keepregstar | 1036 sil! let @+ = keepregplus |
1008 endif | 1037 endif |
1009 sil! let @/ = keepregslash | 1038 sil! let @/ = keepregslash |
1010 " call Dret("netrw#Explore : no files matched") | 1039 " call Dret("netrw#Explore : no files matched") |
1011 return | 1040 return |
1012 endif | 1041 endif |
1050 if !exists("g:netrw_quiet") | 1079 if !exists("g:netrw_quiet") |
1051 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) | 1080 keepalt NetrwKeepj call netrw#ErrorMsg(s:WARNING,"your vim needs the +path_extra feature for Exploring with **!",44) |
1052 endif | 1081 endif |
1053 if has("clipboard") | 1082 if has("clipboard") |
1054 sil! let @* = keepregstar | 1083 sil! let @* = keepregstar |
1055 sil! let @+ = keepregstar | 1084 sil! let @+ = keepregplus |
1056 endif | 1085 endif |
1057 sil! let @/ = keepregslash | 1086 sil! let @/ = keepregslash |
1058 " call Dret("netrw#Explore : missing +path_extra") | 1087 " call Dret("netrw#Explore : missing +path_extra") |
1059 return | 1088 return |
1060 endif | 1089 endif |
1104 endif | 1133 endif |
1105 endif | 1134 endif |
1106 let prvfname= fname | 1135 let prvfname= fname |
1107 endfor | 1136 endfor |
1108 " call Decho("explore_match<".s:explore_match.">",'~'.expand("<slnum>")) | 1137 " call Decho("explore_match<".s:explore_match.">",'~'.expand("<slnum>")) |
1109 exe "2match netrwMarkFile /".s:explore_match."/" | 1138 if has("syntax") && exists("g:syntax_on") && g:syntax_on |
1139 exe "2match netrwMarkFile /".s:explore_match."/" | |
1140 endif | |
1110 endif | 1141 endif |
1111 echo "<s-up>==Pexplore <s-down>==Nexplore" | 1142 echo "<s-up>==Pexplore <s-down>==Nexplore" |
1112 else | 1143 else |
1113 2match none | 1144 2match none |
1114 if exists("s:explore_match") | unlet s:explore_match | endif | 1145 if exists("s:explore_match") | unlet s:explore_match | endif |
1121 " there's no danger of a late FocusGained event on initialization. | 1152 " there's no danger of a late FocusGained event on initialization. |
1122 " Consequently, set s:netrw_events to 2. | 1153 " Consequently, set s:netrw_events to 2. |
1123 let s:netrw_events= 2 | 1154 let s:netrw_events= 2 |
1124 if has("clipboard") | 1155 if has("clipboard") |
1125 sil! let @* = keepregstar | 1156 sil! let @* = keepregstar |
1126 sil! let @+ = keepregstar | 1157 sil! let @+ = keepregplus |
1127 endif | 1158 endif |
1128 sil! let @/ = keepregslash | 1159 sil! let @/ = keepregslash |
1129 " call Dret("netrw#Explore : @/<".@/.">") | 1160 " call Dret("netrw#Explore : @/<".@/.">") |
1130 endfun | 1161 endfun |
1131 | 1162 |
1132 " --------------------------------------------------------------------- | 1163 " --------------------------------------------------------------------- |
1133 " netrw#Lexplore: toggle Explorer window, keeping it on the left of the current tab {{{2 | 1164 " netrw#Lexplore: toggle Explorer window, keeping it on the left of the current tab {{{2 |
1134 fun! netrw#Lexplore(count,rightside,...) | 1165 fun! netrw#Lexplore(count,rightside,...) |
1135 " call Dfunc("netrw#Lexplore(count=".a:count."rightside=".a:rightside.",...) a:0=".a:0." ft=".&ft) | 1166 " call Dfunc("netrw#Lexplore(count=".a:count." rightside=".a:rightside.",...) a:0=".a:0." ft=".&ft) |
1136 let curwin= winnr() | 1167 let curwin= winnr() |
1137 | 1168 |
1138 if a:0 > 0 && a:1 != "" | 1169 if a:0 > 0 && a:1 != "" |
1139 " if a netrw window is already on the left-side of the tab | 1170 " if a netrw window is already on the left-side of the tab |
1140 " and a directory has been specified, explore with that | 1171 " and a directory has been specified, explore with that |
1141 " directory. | 1172 " directory. |
1173 " call Decho("case has input argument(s) (a:1<".a:1.">)") | |
1142 let a1 = expand(a:1) | 1174 let a1 = expand(a:1) |
1143 " call Decho("a:1<".a:1."> curwin#".curwin,'~'.expand("<slnum>")) | 1175 " call Decho("a:1<".a:1."> curwin#".curwin,'~'.expand("<slnum>")) |
1144 exe "1wincmd w" | 1176 exe "1wincmd w" |
1145 if &ft == "netrw" | 1177 if &ft == "netrw" |
1146 " call Decho("exe Explore ".fnameescape(a:1),'~'.expand("<slnum>")) | 1178 " call Decho("exe Explore ".fnameescape(a:1),'~'.expand("<slnum>")) |
1154 return | 1186 return |
1155 endif | 1187 endif |
1156 exe curwin."wincmd w" | 1188 exe curwin."wincmd w" |
1157 else | 1189 else |
1158 let a1= "" | 1190 let a1= "" |
1191 " call Decho("no input arguments") | |
1159 endif | 1192 endif |
1160 | 1193 |
1161 if exists("t:netrw_lexbufnr") | 1194 if exists("t:netrw_lexbufnr") |
1162 " check if t:netrw_lexbufnr refers to a netrw window | 1195 " check if t:netrw_lexbufnr refers to a netrw window |
1163 let lexwinnr = bufwinnr(t:netrw_lexbufnr) | 1196 let lexwinnr = bufwinnr(t:netrw_lexbufnr) |
1197 " call Decho("lexwinnr= bufwinnr(t:netrw_lexbufnr#".t:netrw_lexbufnr.")=".lexwinnr) | |
1164 else | 1198 else |
1165 let lexwinnr= 0 | 1199 let lexwinnr= 0 |
1166 endif | 1200 " call Decho("t:netrw_lexbufnr doesn't exist") |
1201 endif | |
1202 " call Decho("lexwinnr=".lexwinnr,'~'.expand("<slnum>")) | |
1167 | 1203 |
1168 if lexwinnr > 0 | 1204 if lexwinnr > 0 |
1169 " close down netrw explorer window | 1205 " close down netrw explorer window |
1170 " call Decho("t:netrw_lexbufnr#".t:netrw_lexbufnr.": close down netrw window",'~'.expand("<slnum>")) | 1206 " call Decho("t:netrw_lexbufnr#".t:netrw_lexbufnr.": close down netrw window",'~'.expand("<slnum>")) |
1171 exe lexwinnr."wincmd w" | 1207 exe lexwinnr."wincmd w" |
1172 let g:netrw_winsize = -winwidth(0) | 1208 let g:netrw_winsize = -winwidth(0) |
1173 let t:netrw_lexposn = winsaveview() | 1209 let t:netrw_lexposn = winsaveview() |
1174 " call Decho("saving posn to t:netrw_lexposn<".string(t:netrw_lexposn).">",'~'.expand("<slnum>")) | 1210 " call Decho("saving posn to t:netrw_lexposn<".string(t:netrw_lexposn).">",'~'.expand("<slnum>")) |
1175 " call Decho("saving t:netrw_lexposn",'~'.expand("<slnum>")) | 1211 " call Decho("saving t:netrw_lexposn",'~'.expand("<slnum>")) |
1176 close | 1212 close |
1177 if lexwinnr < curwin | 1213 if lexwinnr < curwin |
1178 let curwin= curwin - 1 | 1214 let curwin= curwin - 1 |
1179 endif | 1215 endif |
1180 exe curwin."wincmd w" | 1216 if lexwinnr != curwin |
1217 exe curwin."wincmd w" | |
1218 endif | |
1181 unlet t:netrw_lexbufnr | 1219 unlet t:netrw_lexbufnr |
1220 " call Decho("unlet t:netrw_lexbufnr") | |
1182 | 1221 |
1183 else | 1222 else |
1184 " open netrw explorer window | 1223 " open netrw explorer window |
1185 " call Decho("t:netrw_lexbufnr<n/a>: open netrw explorer window",'~'.expand("<slnum>")) | 1224 " call Decho("t:netrw_lexbufnr<n/a>: open netrw explorer window",'~'.expand("<slnum>")) |
1186 exe "1wincmd w" | 1225 exe "1wincmd w" |
1191 let g:netrw_winsize = a:count | 1230 let g:netrw_winsize = a:count |
1192 endif | 1231 endif |
1193 let curfile= expand("%") | 1232 let curfile= expand("%") |
1194 " call Decho("curfile<".curfile.">",'~'.expand("<slnum>")) | 1233 " call Decho("curfile<".curfile.">",'~'.expand("<slnum>")) |
1195 exe (a:rightside? "botright" : "topleft")." vertical ".((g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize) . " new" | 1234 exe (a:rightside? "botright" : "topleft")." vertical ".((g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize) . " new" |
1235 " call Decho("new buf#".bufnr("%")." win#".winnr()) | |
1196 if a:0 > 0 && a1 != "" | 1236 if a:0 > 0 && a1 != "" |
1197 " call Decho("case 1: Explore ".a1,'~'.expand("<slnum>")) | 1237 " call Decho("case 1: Explore ".a1,'~'.expand("<slnum>")) |
1238 call netrw#Explore(0,0,0,a1) | |
1198 exe "Explore ".fnameescape(a1) | 1239 exe "Explore ".fnameescape(a1) |
1199 elseif curfile =~ '^\a\{3,}://' | 1240 elseif curfile =~ '^\a\{3,}://' |
1200 " call Decho("case 2: Explore ".substitute(curfile,'[^/\\]*$','',''),'~'.expand("<slnum>")) | 1241 " call Decho("case 2: Explore ".substitute(curfile,'[^/\\]*$','',''),'~'.expand("<slnum>")) |
1201 exe "Explore ".substitute(curfile,'[^/\\]*$','','') | 1242 call netrw#Explore(0,0,0,substitute(curfile,'[^/\\]*$','','')) |
1202 else | 1243 else |
1203 " call Decho("case 3: Explore .",'~'.expand("<slnum>")) | 1244 " call Decho("case 3: Explore .",'~'.expand("<slnum>")) |
1204 Explore . | 1245 call netrw#Explore(0,0,0,".") |
1205 endif | 1246 endif |
1206 if a:count != 0 | 1247 if a:count != 0 |
1207 let g:netrw_winsize = netrw_winsize | 1248 let g:netrw_winsize = netrw_winsize |
1208 endif | 1249 endif |
1209 setlocal winfixwidth | 1250 setlocal winfixwidth |
1210 let g:netrw_altv = keep_altv | 1251 let g:netrw_altv = keep_altv |
1211 let t:netrw_lexbufnr = bufnr("%") | 1252 let t:netrw_lexbufnr = bufnr("%") |
1253 " call Decho("let t:netrw_lexbufnr=".t:netrw_lexbufnr) | |
1254 " call Decho("t:netrw_lexposn".(exists("t:netrw_lexposn")? string(t:netrw_lexposn) : " n/a")) | |
1212 if exists("t:netrw_lexposn") | 1255 if exists("t:netrw_lexposn") |
1213 " call Decho("restoring to t:netrw_lexposn",'~'.expand("<slnum>")) | 1256 " call Decho("restoring to t:netrw_lexposn",'~'.expand("<slnum>")) |
1214 " call Decho("restoring posn to t:netrw_lexposn<".string(t:netrw_lexposn).">",'~'.expand("<slnum>")) | 1257 " call Decho("restoring posn to t:netrw_lexposn<".string(t:netrw_lexposn).">",'~'.expand("<slnum>")) |
1215 call winrestview(t:netrw_lexposn) | 1258 call winrestview(t:netrw_lexposn) |
1216 unlet t:netrw_lexposn | 1259 unlet t:netrw_lexposn |
1222 if a:rightside | 1265 if a:rightside |
1223 let g:netrw_chgwin= 1 | 1266 let g:netrw_chgwin= 1 |
1224 else | 1267 else |
1225 let g:netrw_chgwin= 2 | 1268 let g:netrw_chgwin= 2 |
1226 endif | 1269 endif |
1270 " call Decho("let g:netrw_chgwin=".g:netrw_chgwin) | |
1227 endif | 1271 endif |
1228 | 1272 |
1229 " call Dret("netrw#Lexplore") | 1273 " call Dret("netrw#Lexplore") |
1230 endfun | 1274 endfun |
1231 | 1275 |
1339 if (has("win32") || has("win95") || has("win64") || has("win16")) | 1383 if (has("win32") || has("win95") || has("win64") || has("win16")) |
1340 " transfer files one at time | 1384 " transfer files one at time |
1341 " call Decho("transfer files one at a time",'~'.expand("<slnum>")) | 1385 " call Decho("transfer files one at a time",'~'.expand("<slnum>")) |
1342 for fname in fnamelist | 1386 for fname in fnamelist |
1343 " call Decho("system(".g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath).")",'~'.expand("<slnum>")) | 1387 " call Decho("system(".g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath).")",'~'.expand("<slnum>")) |
1344 call system(g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath)) | 1388 call system(g:netrw_localcopycmd.g:netrw_localcopycmdopt." ".s:ShellEscape(fname)." ".s:ShellEscape(topath)) |
1345 if v:shell_error != 0 | 1389 if v:shell_error != 0 |
1346 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localcopycmd<".g:netrw_localcopycmd."> to something that works",80) | 1390 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localcopycmd<".g:netrw_localcopycmd."> to something that works",80) |
1347 " call Dret("s:NetrwObtain 0 : failed: ".g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath)) | 1391 " call Dret("s:NetrwObtain 0 : failed: ".g:netrw_localcopycmd." ".s:ShellEscape(fname)." ".s:ShellEscape(topath)) |
1348 return | 1392 return |
1349 endif | 1393 endif |
1351 else | 1395 else |
1352 " transfer files with one command | 1396 " transfer files with one command |
1353 " call Decho("transfer files with one command",'~'.expand("<slnum>")) | 1397 " call Decho("transfer files with one command",'~'.expand("<slnum>")) |
1354 let filelist= join(map(deepcopy(fnamelist),"s:ShellEscape(v:val)")) | 1398 let filelist= join(map(deepcopy(fnamelist),"s:ShellEscape(v:val)")) |
1355 " call Decho("system(".g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath).")",'~'.expand("<slnum>")) | 1399 " call Decho("system(".g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath).")",'~'.expand("<slnum>")) |
1356 call system(g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath)) | 1400 call system(g:netrw_localcopycmd.g:netrw_localcopycmdopt." ".filelist." ".s:ShellEscape(topath)) |
1357 if v:shell_error != 0 | 1401 if v:shell_error != 0 |
1358 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localcopycmd<".g:netrw_localcopycmd."> to something that works",80) | 1402 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localcopycmd<".g:netrw_localcopycmd."> to something that works",80) |
1359 " call Dret("s:NetrwObtain 0 : failed: ".g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath)) | 1403 " call Dret("s:NetrwObtain 0 : failed: ".g:netrw_localcopycmd." ".filelist." ".s:ShellEscape(topath)) |
1360 return | 1404 return |
1361 endif | 1405 endif |
1385 if b:netrw_fname =~ '/' | 1429 if b:netrw_fname =~ '/' |
1386 let path= substitute(b:netrw_fname,'^\(.*/\).\{-}$','\1','') | 1430 let path= substitute(b:netrw_fname,'^\(.*/\).\{-}$','\1','') |
1387 else | 1431 else |
1388 let path= "" | 1432 let path= "" |
1389 endif | 1433 endif |
1390 let filelist= join(map(deepcopy(fnamelist),'s:ShellEscape(g:netrw_machine.":".path.v:val,1)')) | 1434 let filelist= join(map(deepcopy(fnamelist),'escape(s:ShellEscape(g:netrw_machine.":".path.v:val,1)," ")')) |
1391 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.s:ShellEscape(useport,1)." ".filelist." ".s:ShellEscape(tgtdir,1)) | 1435 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.s:ShellEscape(useport,1)." ".filelist." ".s:ShellEscape(tgtdir,1)) |
1392 | 1436 |
1393 elseif b:netrw_method == 2 | 1437 elseif b:netrw_method == 2 |
1394 " obtain file using ftp + .netrc | 1438 " obtain file using ftp + .netrc |
1395 " call Decho("obtain via ftp+.netrc (method #2)",'~'.expand("<slnum>")) | 1439 " call Decho("obtain via ftp+.netrc (method #2)",'~'.expand("<slnum>")) |
1560 " s:NetrwOptionRestore: restore options (based on prior s:NetrwOptionSave) {{{2 | 1604 " s:NetrwOptionRestore: restore options (based on prior s:NetrwOptionSave) {{{2 |
1561 fun! s:NetrwOptionRestore(vt) | 1605 fun! s:NetrwOptionRestore(vt) |
1562 " call Dfunc("s:NetrwOptionRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$")) | 1606 " call Dfunc("s:NetrwOptionRestore(vt<".a:vt.">) win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> winnr($)=".winnr("$")) |
1563 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) | 1607 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) |
1564 if !exists("{a:vt}netrw_optionsave") | 1608 if !exists("{a:vt}netrw_optionsave") |
1565 call s:RestorePosn(s:netrw_nbcd) | |
1566 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) | 1609 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) |
1567 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 1610 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
1568 " call Dret("s:NetrwOptionRestore : ".a:vt."netrw_optionsave doesn't exist") | 1611 " call Dret("s:NetrwOptionRestore : ".a:vt."netrw_optionsave doesn't exist") |
1569 return | 1612 return |
1570 endif | 1613 endif |
1579 if &l:acd | 1622 if &l:acd |
1580 call s:NetrwLcd(curdir) | 1623 call s:NetrwLcd(curdir) |
1581 endif | 1624 endif |
1582 endif | 1625 endif |
1583 endif | 1626 endif |
1584 if exists("{a:vt}netrw_aikeep") |let &l:ai = {a:vt}netrw_aikeep |unlet {a:vt}netrw_aikeep |endif | 1627 call s:NetrwRestoreSetting(a:vt."netrw_aikeep","&l:ai") |
1585 if exists("{a:vt}netrw_awkeep") |let &l:aw = {a:vt}netrw_awkeep |unlet {a:vt}netrw_awkeep |endif | 1628 call s:NetrwRestoreSetting(a:vt."netrw_awkeep","&l:aw") |
1586 if exists("{a:vt}netrw_blkeep") |let &l:bl = {a:vt}netrw_blkeep |unlet {a:vt}netrw_blkeep |endif | 1629 call s:NetrwRestoreSetting(a:vt."netrw_blkeep","&l:bl") |
1587 if exists("{a:vt}netrw_btkeep") |let &l:bt = {a:vt}netrw_btkeep |unlet {a:vt}netrw_btkeep |endif | 1630 call s:NetrwRestoreSetting(a:vt."netrw_btkeep","&l:bt") |
1588 if exists("{a:vt}netrw_bombkeep") |let &l:bomb = {a:vt}netrw_bombkeep |unlet {a:vt}netrw_bombkeep |endif | 1631 call s:NetrwRestoreSetting(a:vt."netrw_bombkeep","&l:bomb") |
1589 if exists("{a:vt}netrw_cedit") |let &cedit = {a:vt}netrw_cedit |unlet {a:vt}netrw_cedit |endif | 1632 call s:NetrwRestoreSetting(a:vt."netrw_cedit","&cedit") |
1590 if exists("{a:vt}netrw_cikeep") |let &l:ci = {a:vt}netrw_cikeep |unlet {a:vt}netrw_cikeep |endif | 1633 call s:NetrwRestoreSetting(a:vt."netrw_cikeep","&l:ci") |
1591 if exists("{a:vt}netrw_cinkeep") |let &l:cin = {a:vt}netrw_cinkeep |unlet {a:vt}netrw_cinkeep |endif | 1634 call s:NetrwRestoreSetting(a:vt."netrw_cinkeep","&l:cin") |
1592 if exists("{a:vt}netrw_cinokeep") |let &l:cino = {a:vt}netrw_cinokeep |unlet {a:vt}netrw_cinokeep |endif | 1635 call s:NetrwRestoreSetting(a:vt."netrw_cinokeep","&l:cino") |
1593 if exists("{a:vt}netrw_comkeep") |let &l:com = {a:vt}netrw_comkeep |unlet {a:vt}netrw_comkeep |endif | 1636 call s:NetrwRestoreSetting(a:vt."netrw_comkeep","&l:com") |
1594 if exists("{a:vt}netrw_cpokeep") |let &l:cpo = {a:vt}netrw_cpokeep |unlet {a:vt}netrw_cpokeep |endif | 1637 call s:NetrwRestoreSetting(a:vt."netrw_cpokeep","&l:cpo") |
1595 if exists("{a:vt}netrw_diffkeep") |let &l:diff = {a:vt}netrw_diffkeep |unlet {a:vt}netrw_diffkeep |endif | 1638 call s:NetrwRestoreSetting(a:vt."netrw_diffkeep","&l:diff") |
1596 if exists("{a:vt}netrw_fenkeep") |let &l:fen = {a:vt}netrw_fenkeep |unlet {a:vt}netrw_fenkeep |endif | 1639 call s:NetrwRestoreSetting(a:vt."netrw_fenkeep","&l:fen") |
1597 if exists("g:netrw_ffkep") && g:netrw_ffkeep | 1640 if exists("g:netrw_ffkeep") && g:netrw_ffkeep |
1598 if exists("{a:vt}netrw_ffkeep") |let &l:ff = {a:vt}netrw_ffkeep |unlet {a:vt}netrw_ffkeep |endif | 1641 call s:NetrwRestoreSetting(a:vt."netrw_ffkeep")","&l:ff") |
1599 endif | 1642 endif |
1600 if exists("{a:vt}netrw_fokeep") |let &l:fo = {a:vt}netrw_fokeep |unlet {a:vt}netrw_fokeep |endif | 1643 call s:NetrwRestoreSetting(a:vt."netrw_fokeep","&l:fo") |
1601 if exists("{a:vt}netrw_gdkeep") |let &l:gd = {a:vt}netrw_gdkeep |unlet {a:vt}netrw_gdkeep |endif | 1644 call s:NetrwRestoreSetting(a:vt."netrw_gdkeep","&l:gd") |
1602 if exists("{a:vt}netrw_hidkeep") |let &l:hidden = {a:vt}netrw_hidkeep |unlet {a:vt}netrw_hidkeep |endif | 1645 call s:NetrwRestoreSetting(a:vt."netrw_hidkeep","&l:hidden") |
1603 if exists("{a:vt}netrw_imkeep") |let &l:im = {a:vt}netrw_imkeep |unlet {a:vt}netrw_imkeep |endif | 1646 call s:NetrwRestoreSetting(a:vt."netrw_imkeep","&l:im") |
1604 if exists("{a:vt}netrw_iskkeep") |let &l:isk = {a:vt}netrw_iskkeep |unlet {a:vt}netrw_iskkeep |endif | 1647 call s:NetrwRestoreSetting(a:vt."netrw_iskkeep","&l:isk") |
1605 if exists("{a:vt}netrw_lskeep") |let &l:ls = {a:vt}netrw_lskeep |unlet {a:vt}netrw_lskeep |endif | 1648 call s:NetrwRestoreSetting(a:vt."netrw_lskeep","&l:ls") |
1606 if exists("{a:vt}netrw_makeep") |let &l:ma = {a:vt}netrw_makeep |unlet {a:vt}netrw_makeep |endif | 1649 call s:NetrwRestoreSetting(a:vt."netrw_makeep","&l:ma") |
1607 if exists("{a:vt}netrw_magickeep")|let &l:magic = {a:vt}netrw_magickeep |unlet {a:vt}netrw_magickeep|endif | 1650 call s:NetrwRestoreSetting(a:vt."netrw_magickeep","&l:magic") |
1608 if exists("{a:vt}netrw_modkeep") |let &l:mod = {a:vt}netrw_modkeep |unlet {a:vt}netrw_modkeep |endif | 1651 call s:NetrwRestoreSetting(a:vt."netrw_modkeep","&l:mod") |
1609 if exists("{a:vt}netrw_nukeep") |let &l:nu = {a:vt}netrw_nukeep |unlet {a:vt}netrw_nukeep |endif | 1652 call s:NetrwRestoreSetting(a:vt."netrw_nukeep","&l:nu") |
1610 if exists("{a:vt}netrw_rnukeep") |let &l:rnu = {a:vt}netrw_rnukeep |unlet {a:vt}netrw_rnukeep |endif | 1653 call s:NetrwRestoreSetting(a:vt."netrw_rnukeep","&l:rnu") |
1611 if exists("{a:vt}netrw_repkeep") |let &l:report = {a:vt}netrw_repkeep |unlet {a:vt}netrw_repkeep |endif | 1654 call s:NetrwRestoreSetting(a:vt."netrw_repkeep","&l:report") |
1612 if exists("{a:vt}netrw_rokeep") |let &l:ro = {a:vt}netrw_rokeep |unlet {a:vt}netrw_rokeep |endif | 1655 call s:NetrwRestoreSetting(a:vt."netrw_rokeep","&l:ro") |
1613 if exists("{a:vt}netrw_selkeep") |let &l:sel = {a:vt}netrw_selkeep |unlet {a:vt}netrw_selkeep |endif | 1656 call s:NetrwRestoreSetting(a:vt."netrw_selkeep","&l:sel") |
1614 if exists("{a:vt}netrw_spellkeep")|let &l:spell = {a:vt}netrw_spellkeep |unlet {a:vt}netrw_spellkeep|endif | 1657 call s:NetrwRestoreSetting(a:vt."netrw_spellkeep","&l:spell") |
1615 if has("clipboard") | 1658 call s:NetrwRestoreSetting(a:vt."netrw_twkeep","&l:tw") |
1616 if exists("{a:vt}netrw_starkeep") |let @* = {a:vt}netrw_starkeep |unlet {a:vt}netrw_starkeep |endif | 1659 call s:NetrwRestoreSetting(a:vt."netrw_wigkeep","&l:wig") |
1617 endif | 1660 call s:NetrwRestoreSetting(a:vt."netrw_wrapkeep","&l:wrap") |
1661 call s:NetrwRestoreSetting(a:vt."netrw_writekeep","&l:write") | |
1662 call s:NetrwRestoreSetting("s:yykeep","@@") | |
1618 " Problem: start with liststyle=0; press <i> : result, following line resets l:ts. | 1663 " Problem: start with liststyle=0; press <i> : result, following line resets l:ts. |
1619 " if exists("{a:vt}netrw_tskeep") |let &l:ts = {a:vt}netrw_tskeep |unlet {a:vt}netrw_tskeep |endif | 1664 call s:NetrwRestoreSetting(a:vt."netrw_tskeep","&l:ts") |
1620 if exists("{a:vt}netrw_twkeep") |let &l:tw = {a:vt}netrw_twkeep |unlet {a:vt}netrw_twkeep |endif | 1665 |
1621 if exists("{a:vt}netrw_wigkeep") |let &l:wig = {a:vt}netrw_wigkeep |unlet {a:vt}netrw_wigkeep |endif | |
1622 if exists("{a:vt}netrw_wrapkeep") |let &l:wrap = {a:vt}netrw_wrapkeep |unlet {a:vt}netrw_wrapkeep |endif | |
1623 if exists("{a:vt}netrw_writekeep")|let &l:write = {a:vt}netrw_writekeep |unlet {a:vt}netrw_writekeep|endif | |
1624 if exists("s:yykeep") |let @@ = s:yykeep |unlet s:yykeep |endif | |
1625 if exists("{a:vt}netrw_swfkeep") | 1666 if exists("{a:vt}netrw_swfkeep") |
1626 if &directory == "" | 1667 if &directory == "" |
1627 " user hasn't specified a swapfile directory; | 1668 " user hasn't specified a swapfile directory; |
1628 " netrw will temporarily set the swapfile directory | 1669 " netrw will temporarily set the swapfile directory |
1629 " to the current directory as returned by getcwd(). | 1670 " to the current directory as returned by getcwd(). |
1645 call s:NetrwLcd(dirkeep) | 1686 call s:NetrwLcd(dirkeep) |
1646 unlet {a:vt}netrw_dirkeep | 1687 unlet {a:vt}netrw_dirkeep |
1647 endif | 1688 endif |
1648 endif | 1689 endif |
1649 if has("clipboard") | 1690 if has("clipboard") |
1650 if exists("{a:vt}netrw_regstar") |sil! let @*= {a:vt}netrw_regstar |unlet {a:vt}netrw_regstar |endif | 1691 call s:NetrwRestoreSetting(a:vt."netrw_starkeep","@*") |
1651 endif | 1692 call s:NetrwRestoreSetting(a:vt."netrw_pluskeep","@+") |
1652 if exists("{a:vt}netrw_regslash")|sil! let @/= {a:vt}netrw_regslash|unlet {a:vt}netrw_regslash|endif | 1693 endif |
1653 call s:RestorePosn(s:netrw_nbcd) | 1694 call s:NetrwRestoreSetting(a:vt."netrw_slashkeep","@/") |
1654 | 1695 |
1655 " call Decho("g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd,'~'.expand("<slnum>")) | 1696 " call Decho("g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd,'~'.expand("<slnum>")) |
1656 " call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist"),'~'.expand("<slnum>")) | 1697 " call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist"),'~'.expand("<slnum>")) |
1657 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 1698 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
1658 " call Decho("diff=".&l:diff." win#".winnr()." w:netrw_diffkeep=".(exists("w:netrw_diffkeep")? w:netrw_diffkeep : "doesn't exist"),'~'.expand("<slnum>")) | 1699 " call Decho("diff=".&l:diff." win#".winnr()." w:netrw_diffkeep=".(exists("w:netrw_diffkeep")? w:netrw_diffkeep : "doesn't exist"),'~'.expand("<slnum>")) |
1726 let {a:vt}netrw_selkeep = &l:sel | 1767 let {a:vt}netrw_selkeep = &l:sel |
1727 let {a:vt}netrw_spellkeep = &l:spell | 1768 let {a:vt}netrw_spellkeep = &l:spell |
1728 if !g:netrw_use_noswf | 1769 if !g:netrw_use_noswf |
1729 let {a:vt}netrw_swfkeep = &l:swf | 1770 let {a:vt}netrw_swfkeep = &l:swf |
1730 endif | 1771 endif |
1731 if has("clipboard") | |
1732 let {a:vt}netrw_starkeep = @* | |
1733 endif | |
1734 let {a:vt}netrw_tskeep = &l:ts | 1772 let {a:vt}netrw_tskeep = &l:ts |
1735 let {a:vt}netrw_twkeep = &l:tw " textwidth | 1773 let {a:vt}netrw_twkeep = &l:tw " textwidth |
1736 let {a:vt}netrw_wigkeep = &l:wig " wildignore | 1774 let {a:vt}netrw_wigkeep = &l:wig " wildignore |
1737 let {a:vt}netrw_wrapkeep = &l:wrap | 1775 let {a:vt}netrw_wrapkeep = &l:wrap |
1738 let {a:vt}netrw_writekeep = &l:write | 1776 let {a:vt}netrw_writekeep = &l:write |
1741 " call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>")) | 1779 " call Decho("saving a few selected netrw-related variables",'~'.expand("<slnum>")) |
1742 if g:netrw_keepdir | 1780 if g:netrw_keepdir |
1743 let {a:vt}netrw_dirkeep = getcwd() | 1781 let {a:vt}netrw_dirkeep = getcwd() |
1744 endif | 1782 endif |
1745 if has("clipboard") | 1783 if has("clipboard") |
1746 if &go =~# 'a' | sil! let {a:vt}netrw_regstar = @* | endif | 1784 sil! let {a:vt}netrw_starkeep = @* |
1747 endif | 1785 sil! let {a:vt}netrw_pluskeep = @+ |
1748 sil! let {a:vt}netrw_regslash= @/ | 1786 endif |
1787 sil! let {a:vt}netrw_slashkeep= @/ | |
1749 | 1788 |
1750 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) | 1789 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo." a:vt=".a:vt,'~'.expand("<slnum>")) |
1751 " call Dret("s:NetrwOptionSave : tab#".tabpagenr()." win#".winnr()) | 1790 " call Dret("s:NetrwOptionSave : tab#".tabpagenr()." win#".winnr()) |
1752 endfun | 1791 endfun |
1753 | 1792 |
1754 " ------------------------------------------------------------------------ | 1793 " ------------------------------------------------------------------------ |
1794 " s:NetrwRestoreSetting: restores specified setting using associated keepvar, {{{2 | |
1795 " but only if the setting value differs from the associated keepvar. | |
1796 " Doing this means that netrw will not come up as having changed a | |
1797 " setting last when it really didn't actually change it. | |
1798 " Used by s:NetrwOptionRestore() to restore each netrw-senstive setting | |
1799 " and by s:NetrwSafeOptions() | |
1800 fun! s:NetrwRestoreSetting(keepvar,setting) | |
1801 " call Dfunc("s:NetrwRestoreSetting(keepvar<".a:keepvar."> setting<".a:setting.">)") | |
1802 | |
1803 if a:keepvar =~ '^&' | |
1804 exe "let keepvarval= ".a:keepvar | |
1805 if keepvarval != a:setting | |
1806 if type(a:setting) == 0 | |
1807 exe "let ".a:keepvar."=".a:setting | |
1808 elseif type(a:setting) == 1 | |
1809 exe "let ".a:keepvar."= '".a:setting."'" | |
1810 else | |
1811 call netrw#ErrorMsg(s:ERROR,"(s:NetrwRestoreSetting) doesn't know how to restore ".a:keepvar." with a setting of type#".type(a:setting),105) | |
1812 endif | |
1813 endif | |
1814 | |
1815 elseif exists(a:keepvar) | |
1816 exe "let keepvarval= '".a:keepvar."'" | |
1817 if keepvarval != a:setting | |
1818 if type(a:setting) == 0 | |
1819 exe "let ".a:keepvar."= ".a:setting | |
1820 elseif type(a:setting) == 1 | |
1821 exe "let ".a:keepvar."= '".a:setting."'" | |
1822 else | |
1823 call netrw#ErrorMsg(s:ERROR,"(s:NetrwRestoreSetting) doesn't know how to restore ".a:keepvar." with a setting of type#".type(a:setting),105) | |
1824 endif | |
1825 endif | |
1826 exe "unlet ".a:keepvar | |
1827 endif | |
1828 " call Dret("s:NetrwRestoreSetting") | |
1829 endfun | |
1830 | |
1831 " --------------------------------------------------------------------- | |
1755 " s:NetrwSafeOptions: sets options to help netrw do its job {{{2 | 1832 " s:NetrwSafeOptions: sets options to help netrw do its job {{{2 |
1756 " Use s:NetrwSaveOptions() to save user settings | 1833 " Use s:NetrwSaveOptions() to save user settings |
1757 " Use s:NetrwOptionRestore() to restore user settings | 1834 " Use s:NetrwOptionRestore() to restore user settings |
1758 fun! s:NetrwSafeOptions() | 1835 fun! s:NetrwSafeOptions() |
1759 " call Dfunc("s:NetrwSafeOptions() win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%"))."> winnr($)=".winnr("$")) | 1836 " call Dfunc("s:NetrwSafeOptions() win#".winnr()." buf#".bufnr("%")."<".bufname(bufnr("%"))."> winnr($)=".winnr("$")) |
1760 " call Decho("win#".winnr()."'s ft=".&ft,'~'.expand("<slnum>")) | 1837 " call Decho("win#".winnr()."'s ft=".&ft,'~'.expand("<slnum>")) |
1761 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 1838 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
1762 if exists("+acd") | setl noacd | endif | 1839 if exists("+acd") | call s:NetrwRestoreSetting("&l:acd",0)|endif |
1763 setl noai | 1840 call s:NetrwRestoreSetting("&l:ai",0) |
1764 setl noaw | 1841 call s:NetrwRestoreSetting("&l:aw",0) |
1765 setl nobl | 1842 call s:NetrwRestoreSetting("&l:bl",0) |
1766 setl nobomb | 1843 call s:NetrwRestoreSetting("&l:bomb",0) |
1767 setl bt=nofile | 1844 call s:NetrwRestoreSetting("&l:bt","nofile") |
1768 setl noci | 1845 call s:NetrwRestoreSetting("&l:ci",0) |
1769 setl nocin | 1846 call s:NetrwRestoreSetting("&l:cin",0) |
1770 setl bh=hide | 1847 call s:NetrwRestoreSetting("&l:bh","hide") |
1771 setl cino= | 1848 call s:NetrwRestoreSetting("&l:cino","") |
1772 setl com= | 1849 call s:NetrwRestoreSetting("&l:com","") |
1773 setl cpo-=a | 1850 if &cpo =~ 'a' | call s:NetrwRestoreSetting("&cpo",substitute(&cpo,'a','','g')) | endif |
1774 setl cpo-=A | 1851 if &cpo =~ 'A' | call s:NetrwRestoreSetting("&cpo",substitute(&cpo,'A','','g')) | endif |
1775 setl fo=nroql2 | 1852 setl fo=nroql2 |
1776 setl nohid | 1853 call s:NetrwRestoreSetting("&l:hid",0) |
1777 setl noim | 1854 call s:NetrwRestoreSetting("&l:im",0) |
1778 setl isk+=@ isk+=* isk+=/ | 1855 setl isk+=@ isk+=* isk+=/ |
1779 setl magic | 1856 call s:NetrwRestoreSetting("&l:magic",1) |
1780 if g:netrw_use_noswf | 1857 if g:netrw_use_noswf |
1781 setl noswf | 1858 call s:NetrwRestoreSetting("swf",0) |
1782 endif | 1859 endif |
1783 setl report=10000 | 1860 call s:NetrwRestoreSetting("&l:report",10000) |
1784 setl sel=inclusive | 1861 call s:NetrwRestoreSetting("&l:sel","inclusive") |
1785 setl nospell | 1862 call s:NetrwRestoreSetting("&l:spell",0) |
1786 setl tw=0 | 1863 call s:NetrwRestoreSetting("&l:tw",0) |
1787 setl wig= | 1864 call s:NetrwRestoreSetting("&l:wig","") |
1788 setl cedit& | 1865 setl cedit& |
1789 call s:NetrwCursor() | 1866 call s:NetrwCursor() |
1790 | 1867 |
1791 " allow the user to override safe options | 1868 " allow the user to override safe options |
1792 " call Decho("ft<".&ft."> ei=".&ei,'~'.expand("<slnum>")) | 1869 " call Decho("ft<".&ft."> ei=".&ei,'~'.expand("<slnum>")) |
1793 if &ft == "netrw" | 1870 if &ft == "netrw" |
1794 " call Decho("do any netrw FileType autocmds (doau FileType netrw)",'~'.expand("<slnum>")) | 1871 " call Decho("do any netrw FileType autocmds (doau FileType netrw)",'~'.expand("<slnum>")) |
1795 sil! keepalt NetrwKeepj doau FileType netrw | 1872 keepalt NetrwKeepj doau FileType netrw |
1796 endif | 1873 endif |
1797 | 1874 |
1798 " call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist")." bh=".&l:bh." bt<".&bt.">",'~'.expand("<slnum>")) | 1875 " call Decho("fo=".&fo.(exists("+acd")? " acd=".&acd : " acd doesn't exist")." bh=".&l:bh." bt<".&bt.">",'~'.expand("<slnum>")) |
1799 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 1876 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
1800 " call Dret("s:NetrwSafeOptions") | 1877 " call Dret("s:NetrwSafeOptions") |
1831 else | 1908 else |
1832 return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen | 1909 return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen |
1833 endif | 1910 endif |
1834 endfun | 1911 endfun |
1835 | 1912 |
1836 " --------------------------------------------------------------------- | 1913 " =============================== |
1837 " Netrw Transfer Functions: {{{1 | 1914 " Netrw Transfer Functions: {{{1 |
1838 " =============================== | 1915 " =============================== |
1839 | 1916 |
1840 " ------------------------------------------------------------------------ | 1917 " ------------------------------------------------------------------------ |
1841 " netrw#NetRead: responsible for reading a file over the net {{{2 | 1918 " netrw#NetRead: responsible for reading a file over the net {{{2 |
1941 let ichoice= ichoice + 1 | 2018 let ichoice= ichoice + 1 |
1942 | 2019 |
1943 " NetRead: Determine method of read (ftp, rcp, etc) {{{3 | 2020 " NetRead: Determine method of read (ftp, rcp, etc) {{{3 |
1944 call s:NetrwMethod(choice) | 2021 call s:NetrwMethod(choice) |
1945 if !exists("b:netrw_method") || b:netrw_method < 0 | 2022 if !exists("b:netrw_method") || b:netrw_method < 0 |
1946 " call Dfunc("netrw#NetRead : unsupported method") | 2023 " call Dret("netrw#NetRead : unsupported method") |
1947 return | 2024 return |
1948 endif | 2025 endif |
1949 let tmpfile= s:GetTempfile(b:netrw_fname) " apply correct suffix | 2026 let tmpfile= s:GetTempfile(b:netrw_fname) " apply correct suffix |
1950 | 2027 |
1951 " Check whether or not NetrwBrowse() should be handling this request | 2028 " Check whether or not NetrwBrowse() should be handling this request |
2101 if g:netrw_scp_cmd =~ '^scp' && (has("win32") || has("win95") || has("win64") || has("win16")) | 2178 if g:netrw_scp_cmd =~ '^scp' && (has("win32") || has("win95") || has("win64") || has("win16")) |
2102 let tmpfile_get = substitute(tr(tmpfile, '\', '/'), '^\(\a\):[/\\]\(.*\)$', '/\1/\2', '') | 2179 let tmpfile_get = substitute(tr(tmpfile, '\', '/'), '^\(\a\):[/\\]\(.*\)$', '/\1/\2', '') |
2103 else | 2180 else |
2104 let tmpfile_get = tmpfile | 2181 let tmpfile_get = tmpfile |
2105 endif | 2182 endif |
2106 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1)." ".s:ShellEscape(tmpfile_get,1)) | 2183 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".escape(s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1),' ')." ".s:ShellEscape(tmpfile_get,1)) |
2107 let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method) | 2184 let result = s:NetrwGetFile(readcmd, tmpfile, b:netrw_method) |
2108 let b:netrw_lastfile = choice | 2185 let b:netrw_lastfile = choice |
2109 | 2186 |
2110 "......................................... | 2187 "......................................... |
2111 " NetRead: (http) NetRead Method #5 (wget) {{{3 | 2188 " NetRead: (http) NetRead Method #5 (wget) {{{3 |
2183 | 2260 |
2184 "......................................... | 2261 "......................................... |
2185 " NetRead: (rsync) NetRead Method #7 {{{3 | 2262 " NetRead: (rsync) NetRead Method #7 {{{3 |
2186 elseif b:netrw_method == 7 | 2263 elseif b:netrw_method == 7 |
2187 " call Decho("read via rsync (method #7)",'~'.expand("<slnum>")) | 2264 " call Decho("read via rsync (method #7)",'~'.expand("<slnum>")) |
2188 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rsync_cmd." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1)." ".s:ShellEscape(tmpfile,1)) | 2265 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rsync_cmd." ".s:ShellEscape(g:netrw_machine.g:netrw_rsync_sep.b:netrw_fname,1)." ".s:ShellEscape(tmpfile,1)) |
2189 let result = s:NetrwGetFile(readcmd,tmpfile, b:netrw_method) | 2266 let result = s:NetrwGetFile(readcmd,tmpfile, b:netrw_method) |
2190 let b:netrw_lastfile = choice | 2267 let b:netrw_lastfile = choice |
2191 | 2268 |
2192 "......................................... | 2269 "......................................... |
2193 " NetRead: (fetch) NetRead Method #8 {{{3 | 2270 " NetRead: (fetch) NetRead Method #8 {{{3 |
2525 let curl= substitute(g:netrw_http_put_cmd,'\s\+.*$',"","") | 2602 let curl= substitute(g:netrw_http_put_cmd,'\s\+.*$',"","") |
2526 if executable(curl) | 2603 if executable(curl) |
2527 let url= g:netrw_choice | 2604 let url= g:netrw_choice |
2528 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_http_put_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(url,1) ) | 2605 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_http_put_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(url,1) ) |
2529 elseif !exists("g:netrw_quiet") | 2606 elseif !exists("g:netrw_quiet") |
2530 call netrw#ErrorMsg(s:ERROR,"can't write to http using <".g:netrw_http_put_cmd".">".",16) | 2607 call netrw#ErrorMsg(s:ERROR,"can't write to http using <".g:netrw_http_put_cmd.">".",16) |
2531 endif | 2608 endif |
2532 | 2609 |
2533 "......................................... | 2610 "......................................... |
2534 " NetWrite: (dav) NetWrite Method #6 (cadaver) {{{3 | 2611 " NetWrite: (dav) NetWrite Method #6 (cadaver) {{{3 |
2535 elseif b:netrw_method == 6 | 2612 elseif b:netrw_method == 6 |
2569 | 2646 |
2570 "......................................... | 2647 "......................................... |
2571 " NetWrite: (rsync) NetWrite Method #7 {{{3 | 2648 " NetWrite: (rsync) NetWrite Method #7 {{{3 |
2572 elseif b:netrw_method == 7 | 2649 elseif b:netrw_method == 7 |
2573 " call Decho("write via rsync (method #7)",'~'.expand("<slnum>")) | 2650 " call Decho("write via rsync (method #7)",'~'.expand("<slnum>")) |
2574 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rsync_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(g:netrw_machine.":".b:netrw_fname,1)) | 2651 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_rsync_cmd." ".s:ShellEscape(tmpfile,1)." ".s:ShellEscape(g:netrw_machine.g:netrw_rsync_sep.b:netrw_fname,1)) |
2575 let b:netrw_lastfile = choice | 2652 let b:netrw_lastfile = choice |
2576 | 2653 |
2577 "......................................... | 2654 "......................................... |
2578 " NetWrite: (sftp) NetWrite Method #9 {{{3 | 2655 " NetWrite: (sftp) NetWrite Method #9 {{{3 |
2579 elseif b:netrw_method == 9 | 2656 elseif b:netrw_method == 9 |
2674 endfun | 2751 endfun |
2675 | 2752 |
2676 " --------------------------------------------------------------------- | 2753 " --------------------------------------------------------------------- |
2677 " netrw#SetTreetop: resets the tree top to the current directory/specified directory {{{2 | 2754 " netrw#SetTreetop: resets the tree top to the current directory/specified directory {{{2 |
2678 " (implements the :Ntree command) | 2755 " (implements the :Ntree command) |
2679 fun! netrw#SetTreetop(...) | 2756 fun! netrw#SetTreetop(iscmd,...) |
2680 " call Dfunc("netrw#SetTreetop(".((a:0 > 0)? a:1 : "").") a:0=".a:0) | 2757 " call Dfunc("netrw#SetTreetop(iscmd=".a:iscmd." ".((a:0 > 0)? a:1 : "").") a:0=".a:0) |
2681 | 2758 " call Decho("w:netrw_treetop<".w:netrw_treetop.">") |
2759 | |
2760 " iscmd==0: netrw#SetTreetop called using gn mapping | |
2761 " iscmd==1: netrw#SetTreetop called using :Ntree from the command line | |
2762 " call Decho("(iscmd=".a:iscmd.": called using :Ntree from command line",'~'.expand("<slnum>")) | |
2682 " clear out the current tree | 2763 " clear out the current tree |
2683 if exists("w:netrw_treetop") | 2764 if exists("w:netrw_treetop") |
2684 " call Decho("clearing out current tree",'~'.expand("<slnum>")) | 2765 " call Decho("clearing out current tree",'~'.expand("<slnum>")) |
2685 let inittreetop= w:netrw_treetop | 2766 let inittreetop= w:netrw_treetop |
2686 unlet w:netrw_treetop | 2767 unlet w:netrw_treetop |
2687 endif | 2768 endif |
2688 if exists("w:netrw_treedict") | 2769 if exists("w:netrw_treedict") |
2689 " call Decho("freeing w:netrw_treedict",'~'.expand("<slnum>")) | 2770 " call Decho("freeing w:netrw_treedict",'~'.expand("<slnum>")) |
2690 unlet w:netrw_treedict | 2771 unlet w:netrw_treedict |
2691 endif | 2772 endif |
2692 | 2773 " call Decho("inittreetop<".(exists("inittreetop")? inittreetop : "n/a").">") |
2693 if a:1 == "" && exists("inittreetop") | 2774 |
2775 if (a:iscmd == 0 || a:1 == "") && exists("inittreetop") | |
2694 let treedir= s:NetrwTreePath(inittreetop) | 2776 let treedir= s:NetrwTreePath(inittreetop) |
2695 " call Decho("treedir<".treedir.">",'~'.expand("<slnum>")) | 2777 " call Decho("treedir<".treedir.">",'~'.expand("<slnum>")) |
2696 else | 2778 else |
2697 if isdirectory(s:NetrwFile(a:1)) | 2779 if isdirectory(s:NetrwFile(a:1)) |
2698 " call Decho("a:1<".a:1."> is a directory",'~'.expand("<slnum>")) | 2780 " call Decho("a:1<".a:1."> is a directory",'~'.expand("<slnum>")) |
2699 let treedir= a:1 | 2781 let treedir= a:1 |
2700 elseif exists("b:netrw_curdir") && (isdirectory(s:NetrwFile(b:netrw_curdir."/".a:1)) || a:1 =~ '^\a\{3,}://') | 2782 elseif exists("b:netrw_curdir") && (isdirectory(s:NetrwFile(b:netrw_curdir."/".a:1)) || a:1 =~ '^\a\{3,}://') |
2701 let treedir= b:netrw_curdir."/".a:1 | 2783 let treedir= b:netrw_curdir."/".a:1 |
2702 " call Decho("a:1<".a:1."> is NOT a directory, trying treedir<".treedir.">",'~'.expand("<slnum>")) | 2784 " call Decho("a:1<".a:1."> is NOT a directory, using treedir<".treedir.">",'~'.expand("<slnum>")) |
2703 else | 2785 else |
2704 " normally the cursor is left in the message window. | 2786 " normally the cursor is left in the message window. |
2705 " However, here this results in the directory being listed in the message window, which is not wanted. | 2787 " However, here this results in the directory being listed in the message window, which is not wanted. |
2706 let netrwbuf= bufnr("%") | 2788 let netrwbuf= bufnr("%") |
2707 call netrw#ErrorMsg(s:ERROR,"sorry, ".a:1." doesn't seem to be a directory!",95) | 2789 call netrw#ErrorMsg(s:ERROR,"sorry, ".a:1." doesn't seem to be a directory!",95) |
2708 exe bufwinnr(netrwbuf)."wincmd w" | 2790 exe bufwinnr(netrwbuf)."wincmd w" |
2709 let treedir= "." | 2791 let treedir= "." |
2710 endif | 2792 endif |
2711 endif | 2793 endif |
2712 " call Decho("treedir<".treedir.">",'~'.expand("<slnum>")) | 2794 " call Decho("treedir<".treedir.">",'~'.expand("<slnum>")) |
2795 | |
2796 " determine if treedir is remote or local | |
2713 let islocal= expand("%") !~ '^\a\{3,}://' | 2797 let islocal= expand("%") !~ '^\a\{3,}://' |
2714 " call Decho("islocal=".islocal,'~'.expand("<slnum>")) | 2798 " call Decho("islocal=".islocal,'~'.expand("<slnum>")) |
2799 | |
2800 " browse the resulting directory | |
2715 if islocal | 2801 if islocal |
2716 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(islocal,treedir)) | 2802 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(islocal,treedir)) |
2717 else | 2803 else |
2718 call s:NetrwBrowse(islocal,s:NetrwBrowseChgDir(islocal,treedir)) | 2804 call s:NetrwBrowse(islocal,s:NetrwBrowseChgDir(islocal,treedir)) |
2719 endif | 2805 endif |
2806 | |
2720 " call Dret("netrw#SetTreetop") | 2807 " call Dret("netrw#SetTreetop") |
2721 endfun | 2808 endfun |
2722 | 2809 |
2723 " =========================================== | 2810 " =========================================== |
2724 " s:NetrwGetFile: Function to read temporary file "tfile" with command "readcmd". {{{2 | 2811 " s:NetrwGetFile: Function to read temporary file "tfile" with command "readcmd". {{{2 |
2753 if g:netrw_cygwin | 2840 if g:netrw_cygwin |
2754 let tfile= substitute(a:tfile,g:netrw_cygdrive.'/\(.\)','\1:','') | 2841 let tfile= substitute(a:tfile,g:netrw_cygdrive.'/\(.\)','\1:','') |
2755 else | 2842 else |
2756 let tfile= a:tfile | 2843 let tfile= a:tfile |
2757 endif | 2844 endif |
2758 " call Decho("exe sil! keepalt file ".fnameescape(tfile),'~'.expand("<slnum>")) | 2845 call s:NetrwBufRename(tfile) |
2759 exe "sil! keepalt file ".fnameescape(tfile) | |
2760 | 2846 |
2761 " edit temporary file (ie. read the temporary file in) | 2847 " edit temporary file (ie. read the temporary file in) |
2762 if rfile =~ '\.zip$' | 2848 if rfile =~ '\.zip$' |
2763 " call Decho("handling remote zip file with zip#Browse(tfile<".tfile.">)",'~'.expand("<slnum>")) | 2849 " call Decho("handling remote zip file with zip#Browse(tfile<".tfile.">)",'~'.expand("<slnum>")) |
2764 call zip#Browse(tfile) | 2850 call zip#Browse(tfile) |
2781 " call Decho("edit temporary file",'~'.expand("<slnum>")) | 2867 " call Decho("edit temporary file",'~'.expand("<slnum>")) |
2782 NetrwKeepj e! | 2868 NetrwKeepj e! |
2783 endif | 2869 endif |
2784 | 2870 |
2785 " rename buffer back to remote filename | 2871 " rename buffer back to remote filename |
2786 " call Decho("exe sil! keepalt file ".fnameescape(rfile),'~'.expand("<slnum>")) | 2872 call s:NetrwBufRename(rfile) |
2787 exe "sil! NetrwKeepj keepalt file ".fnameescape(rfile) | |
2788 | 2873 |
2789 " Detect filetype of local version of remote file. | 2874 " Detect filetype of local version of remote file. |
2790 " Note that isk must not include a "/" for scripts.vim | 2875 " Note that isk must not include a "/" for scripts.vim |
2791 " to process this detection correctly. | 2876 " to process this detection correctly. |
2792 " call Decho("detect filetype of local version of remote file",'~'.expand("<slnum>")) | 2877 " call Decho("detect filetype of local version of remote file",'~'.expand("<slnum>")) |
2793 let iskkeep= &l:isk | 2878 let iskkeep= &l:isk |
2794 setl isk-=/ | 2879 setl isk-=/ |
2795 let &l:isk= iskkeep | 2880 let &l:isk= iskkeep |
2796 " call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!") | 2881 " call Dredir("ls!","NetrwGetFile (renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">)") |
2797 let line1 = 1 | 2882 let line1 = 1 |
2798 let line2 = line("$") | 2883 let line2 = line("$") |
2799 | 2884 |
2800 elseif !&ma | 2885 elseif !&ma |
2801 " attempting to read a file after the current line in the file, but the buffer is not modifiable | 2886 " attempting to read a file after the current line in the file, but the buffer is not modifiable |
2862 " g:netrw_machine= hostname | 2947 " g:netrw_machine= hostname |
2863 " b:netrw_fname = filename | 2948 " b:netrw_fname = filename |
2864 " g:netrw_port = optional port number (for ftp) | 2949 " g:netrw_port = optional port number (for ftp) |
2865 " g:netrw_choice = copy of input url (choice) | 2950 " g:netrw_choice = copy of input url (choice) |
2866 fun! s:NetrwMethod(choice) | 2951 fun! s:NetrwMethod(choice) |
2867 " call Dfunc("NetrwMethod(a:choice<".a:choice.">)") | 2952 " call Dfunc("s:NetrwMethod(a:choice<".a:choice.">)") |
2868 | 2953 |
2869 " sanity check: choice should have at least three slashes in it | 2954 " sanity check: choice should have at least three slashes in it |
2870 if strlen(substitute(a:choice,'[^/]','','g')) < 3 | 2955 if strlen(substitute(a:choice,'[^/]','','g')) < 3 |
2871 call netrw#ErrorMsg(s:ERROR,"not a netrw-style url; netrw uses protocol://[user@]hostname[:port]/[path])",78) | 2956 call netrw#ErrorMsg(s:ERROR,"not a netrw-style url; netrw uses protocol://[user@]hostname[:port]/[path])",78) |
2872 let b:netrw_method = -1 | 2957 let b:netrw_method = -1 |
2873 " call Dret("NetrwMethod : incorrect url format<".a:choice.">") | 2958 " call Dret("s:NetrwMethod : incorrect url format<".a:choice.">") |
2874 return | 2959 return |
2875 endif | 2960 endif |
2876 | 2961 |
2877 " record current g:netrw_machine, if any | 2962 " record current g:netrw_machine, if any |
2878 " curmachine used if protocol == ftp and no .netrc | 2963 " curmachine used if protocol == ftp and no .netrc |
2981 if userid != "" | 3066 if userid != "" |
2982 let g:netrw_uid= userid | 3067 let g:netrw_uid= userid |
2983 endif | 3068 endif |
2984 | 3069 |
2985 if curmachine != g:netrw_machine | 3070 if curmachine != g:netrw_machine |
2986 if exists("s:netwr_hup[".g:netrw_machine."]") | 3071 if exists("s:netrw_hup[".g:netrw_machine."]") |
2987 call NetUserPass("ftp:".g:netrw_machine) | 3072 call NetUserPass("ftp:".g:netrw_machine) |
2988 elseif exists("s:netrw_passwd") | 3073 elseif exists("s:netrw_passwd") |
2989 " if there's a change in hostname, require password re-entry | 3074 " if there's a change in hostname, require password re-entry |
2990 unlet s:netrw_passwd | 3075 unlet s:netrw_passwd |
2991 endif | 3076 endif |
3111 " endif "Decho | 3196 " endif "Decho |
3112 " if exists("s:netrw_passwd") "Decho | 3197 " if exists("s:netrw_passwd") "Decho |
3113 " call Decho("s:netrw_passwd <".s:netrw_passwd.">",'~'.expand("<slnum>")) | 3198 " call Decho("s:netrw_passwd <".s:netrw_passwd.">",'~'.expand("<slnum>")) |
3114 " endif "Decho | 3199 " endif "Decho |
3115 " call Decho("b:netrw_fname <".b:netrw_fname.">",'~'.expand("<slnum>")) | 3200 " call Decho("b:netrw_fname <".b:netrw_fname.">",'~'.expand("<slnum>")) |
3116 " call Dret("NetrwMethod : b:netrw_method=".b:netrw_method." g:netrw_port=".g:netrw_port) | 3201 " call Dret("s:NetrwMethod : b:netrw_method=".b:netrw_method." g:netrw_port=".g:netrw_port) |
3117 endfun | 3202 endfun |
3118 | 3203 |
3119 " ------------------------------------------------------------------------ | 3204 " ------------------------------------------------------------------------ |
3120 " NetReadFixup: this sort of function is typically written by the user {{{2 | 3205 " NetReadFixup: this sort of function is typically written by the user {{{2 |
3121 " to handle extra junk that their system's ftp dumps | 3206 " to handle extra junk that their system's ftp dumps |
3255 endif | 3340 endif |
3256 | 3341 |
3257 " call Dret("NetUserPass : uid<".g:netrw_uid."> passwd<".s:netrw_passwd.">") | 3342 " call Dret("NetUserPass : uid<".g:netrw_uid."> passwd<".s:netrw_passwd.">") |
3258 endfun | 3343 endfun |
3259 | 3344 |
3260 " =========================================== | 3345 " ================================= |
3261 " Shared Browsing Support: {{{1 | 3346 " Shared Browsing Support: {{{1 |
3262 " =========================================== | 3347 " ================================= |
3263 | 3348 |
3264 " --------------------------------------------------------------------- | 3349 " --------------------------------------------------------------------- |
3265 " s:ExplorePatHls: converts an Explore pattern into a regular expression search pattern {{{2 | 3350 " s:ExplorePatHls: converts an Explore pattern into a regular expression search pattern {{{2 |
3266 fun! s:ExplorePatHls(pattern) | 3351 fun! s:ExplorePatHls(pattern) |
3267 " call Dfunc("s:ExplorePatHls(pattern<".a:pattern.">)") | 3352 " call Dfunc("s:ExplorePatHls(pattern<".a:pattern.">)") |
3560 fun! s:NetrwBrowse(islocal,dirname) | 3645 fun! s:NetrwBrowse(islocal,dirname) |
3561 if !exists("w:netrw_liststyle")|let w:netrw_liststyle= g:netrw_liststyle|endif | 3646 if !exists("w:netrw_liststyle")|let w:netrw_liststyle= g:netrw_liststyle|endif |
3562 " call Dfunc("s:NetrwBrowse(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".w:netrw_liststyle." ".g:loaded_netrw." buf#".bufnr("%")."<".bufname("%")."> win#".winnr()) | 3647 " call Dfunc("s:NetrwBrowse(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".w:netrw_liststyle." ".g:loaded_netrw." buf#".bufnr("%")."<".bufname("%")."> win#".winnr()) |
3563 " call Decho("modified=".&modified." modifiable=".&modifiable." readonly=".&readonly,'~'.expand("<slnum>")) | 3648 " call Decho("modified=".&modified." modifiable=".&modifiable." readonly=".&readonly,'~'.expand("<slnum>")) |
3564 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>")) | 3649 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>")) |
3565 " call Dredir("ls!") | 3650 " call Dredir("ls!","s:NetrwBrowse") |
3566 | 3651 |
3567 " save alternate-file's filename if w:netrw_rexlocal doesn't exist | 3652 " save alternate-file's filename if w:netrw_rexlocal doesn't exist |
3568 " This is useful when one edits a local file, then :e ., then :Rex | 3653 " This is useful when one edits a local file, then :e ., then :Rex |
3569 if a:islocal && !exists("w:netrw_rexfile") && bufname("#") != "" | 3654 if a:islocal && !exists("w:netrw_rexfile") && bufname("#") != "" |
3570 let w:netrw_rexfile= bufname("#") | 3655 let w:netrw_rexfile= bufname("#") |
3581 let dirname= simplify(a:dirname) | 3666 let dirname= simplify(a:dirname) |
3582 else | 3667 else |
3583 let dirname= a:dirname | 3668 let dirname= a:dirname |
3584 endif | 3669 endif |
3585 | 3670 |
3671 " repoint t:netrw_lexbufnr if appropriate | |
3672 if exists("t:netrw_lexbufnr") && bufnr("%") == t:netrw_lexbufnr | |
3673 " call Decho("set repointlexbufnr to true!") | |
3674 let repointlexbufnr= 1 | |
3675 endif | |
3676 | |
3586 if exists("s:netrw_skipbrowse") | 3677 if exists("s:netrw_skipbrowse") |
3587 unlet s:netrw_skipbrowse | 3678 unlet s:netrw_skipbrowse |
3588 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." filename<".expand("%")."> win#".winnr()." ft<".&ft.">",'~'.expand("<slnum>")) | 3679 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." filename<".expand("%")."> win#".winnr()." ft<".&ft.">",'~'.expand("<slnum>")) |
3589 " call Dret("s:NetrwBrowse : s:netrw_skipbrowse existed") | 3680 " call Dret("s:NetrwBrowse : s:netrw_skipbrowse existed") |
3590 return | 3681 return |
3604 | 3695 |
3605 " s:NetrwBrowse : save options: {{{3 | 3696 " s:NetrwBrowse : save options: {{{3 |
3606 call s:NetrwOptionSave("w:") | 3697 call s:NetrwOptionSave("w:") |
3607 | 3698 |
3608 " s:NetrwBrowse : re-instate any marked files {{{3 | 3699 " s:NetrwBrowse : re-instate any marked files {{{3 |
3609 if exists("s:netrwmarkfilelist_{bufnr('%')}") | 3700 if has("syntax") && exists("g:syntax_on") && g:syntax_on |
3610 " call Decho("clearing marked files",'~'.expand("<slnum>")) | 3701 if exists("s:netrwmarkfilelist_{bufnr('%')}") |
3611 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" | 3702 " call Decho("clearing marked files",'~'.expand("<slnum>")) |
3703 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" | |
3704 endif | |
3612 endif | 3705 endif |
3613 | 3706 |
3614 if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep | 3707 if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep |
3615 " s:NetrwBrowse : set up "safe" options for local directory/file {{{3 | 3708 " s:NetrwBrowse : set up "safe" options for local directory/file {{{3 |
3616 " call Decho("handle w:netrw_acdkeep:",'~'.expand("<slnum>")) | 3709 " call Decho("handle w:netrw_acdkeep:",'~'.expand("<slnum>")) |
3617 " call Decho("NetrwKeepj lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")",'~'.expand("<slnum>")) | 3710 " call Decho("NetrwKeepj lcd ".fnameescape(dirname)." (due to w:netrw_acdkeep=".w:netrw_acdkeep." - acd=".&acd.")",'~'.expand("<slnum>")) |
3618 call s:NetrwLcd(dirname) | 3711 if s:NetrwLcd(dirname) |
3619 call s:NetrwSafeOptions() | 3712 " call Dret("s:NetrwBrowse : lcd failure") |
3713 return | |
3714 endif | |
3715 " call s:NetrwSafeOptions() " tst953 failed with this enabled. | |
3620 " call Decho("getcwd<".getcwd().">",'~'.expand("<slnum>")) | 3716 " call Decho("getcwd<".getcwd().">",'~'.expand("<slnum>")) |
3621 | 3717 |
3622 elseif !a:islocal && dirname !~ '[\/]$' && dirname !~ '^"' | 3718 elseif !a:islocal && dirname !~ '[\/]$' && dirname !~ '^"' |
3623 " s:NetrwBrowse : remote regular file handler {{{3 | 3719 " s:NetrwBrowse : remote regular file handler {{{3 |
3624 " call Decho("handle remote regular file: dirname<".dirname.">",'~'.expand("<slnum>")) | 3720 " call Decho("handle remote regular file: dirname<".dirname.">",'~'.expand("<slnum>")) |
3641 call s:NetrwSafeOptions() | 3737 call s:NetrwSafeOptions() |
3642 setl ma noro | 3738 setl ma noro |
3643 " call Decho("setl ma noro",'~'.expand("<slnum>")) | 3739 " call Decho("setl ma noro",'~'.expand("<slnum>")) |
3644 let b:netrw_curdir = dirname | 3740 let b:netrw_curdir = dirname |
3645 let url = s:method."://".((s:user == "")? "" : s:user."@").s:machine.(s:port ? ":".s:port : "")."/".s:path | 3741 let url = s:method."://".((s:user == "")? "" : s:user."@").s:machine.(s:port ? ":".s:port : "")."/".s:path |
3646 " call Decho("exe sil! keepalt file ".fnameescape(url)." (bt=".&bt.")",'~'.expand("<slnum>")) | 3742 call s:NetrwBufRename(url) |
3647 exe "sil! NetrwKeepj keepalt file ".fnameescape(url) | |
3648 exe "sil! NetrwKeepj keepalt doau BufReadPre ".fnameescape(s:fname) | 3743 exe "sil! NetrwKeepj keepalt doau BufReadPre ".fnameescape(s:fname) |
3649 sil call netrw#NetRead(2,url) | 3744 sil call netrw#NetRead(2,url) |
3650 " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error | 3745 " netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error |
3651 " call Decho("url<".url.">",'~'.expand("<slnum>")) | 3746 " call Decho("url<".url.">",'~'.expand("<slnum>")) |
3652 " call Decho("s:path<".s:path.">",'~'.expand("<slnum>")) | 3747 " call Decho("s:path<".s:path.">",'~'.expand("<slnum>")) |
3689 let svpos = winsaveview() | 3784 let svpos = winsaveview() |
3690 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 3785 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
3691 let reusing= s:NetrwGetBuffer(a:islocal,dirname) | 3786 let reusing= s:NetrwGetBuffer(a:islocal,dirname) |
3692 | 3787 |
3693 " maintain markfile highlighting | 3788 " maintain markfile highlighting |
3694 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != "" | 3789 if has("syntax") && exists("g:syntax_on") && g:syntax_on |
3695 " call Decho("bufnr(%)=".bufnr('%'),'~'.expand("<slnum>")) | 3790 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != "" |
3696 " call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/",'~'.expand("<slnum>")) | 3791 " " call Decho("bufnr(%)=".bufnr('%'),'~'.expand("<slnum>")) |
3697 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" | 3792 " " call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/",'~'.expand("<slnum>")) |
3698 else | 3793 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" |
3699 " call Decho("2match none",'~'.expand("<slnum>")) | 3794 else |
3700 2match none | 3795 " " call Decho("2match none",'~'.expand("<slnum>")) |
3796 2match none | |
3797 endif | |
3701 endif | 3798 endif |
3702 if reusing && line("$") > 1 | 3799 if reusing && line("$") > 1 |
3703 call s:NetrwOptionRestore("w:") | 3800 call s:NetrwOptionRestore("w:") |
3704 " call Decho("setl noma nomod nowrap",'~'.expand("<slnum>")) | 3801 " call Decho("setl noma nomod nowrap",'~'.expand("<slnum>")) |
3705 setl noma nomod nowrap | 3802 setl noma nomod nowrap |
3744 " handle g:netrw_keepdir: set vim's current directory to netrw's notion of the current directory {{{3 | 3841 " handle g:netrw_keepdir: set vim's current directory to netrw's notion of the current directory {{{3 |
3745 if !g:netrw_keepdir | 3842 if !g:netrw_keepdir |
3746 " call Decho("handle g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd,'~'.expand("<slnum>")) | 3843 " call Decho("handle g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd,'~'.expand("<slnum>")) |
3747 " call Decho("l:acd".(exists("&l:acd")? "=".&l:acd : " doesn't exist"),'~'.expand("<slnum>")) | 3844 " call Decho("l:acd".(exists("&l:acd")? "=".&l:acd : " doesn't exist"),'~'.expand("<slnum>")) |
3748 if !exists("&l:acd") || !&l:acd | 3845 if !exists("&l:acd") || !&l:acd |
3749 call s:NetrwLcd(b:netrw_curdir) | 3846 if s:NetrwLcd(b:netrw_curdir) |
3847 " call Dret("s:NetrwBrowse : lcd failure") | |
3848 return | |
3849 endif | |
3750 endif | 3850 endif |
3751 endif | 3851 endif |
3752 | 3852 |
3753 " -------------------------------- | 3853 " -------------------------------- |
3754 " remote handling: {{{3 | 3854 " remote handling: {{{3 |
3813 endif | 3913 endif |
3814 if v:version >= 700 && has("balloon_eval") && &beval == 0 && &l:bexpr == "" && !exists("g:netrw_nobeval") | 3914 if v:version >= 700 && has("balloon_eval") && &beval == 0 && &l:bexpr == "" && !exists("g:netrw_nobeval") |
3815 let &l:bexpr= "netrw#BalloonHelp()" | 3915 let &l:bexpr= "netrw#BalloonHelp()" |
3816 " call Decho("set up balloon help: l:bexpr=".&l:bexpr,'~'.expand("<slnum>")) | 3916 " call Decho("set up balloon help: l:bexpr=".&l:bexpr,'~'.expand("<slnum>")) |
3817 setl beval | 3917 setl beval |
3918 endif | |
3919 | |
3920 " repoint t:netrw_lexbufnr if appropriate | |
3921 if exists("repointlexbufnr") | |
3922 let t:netrw_lexbufnr= bufnr("%") | |
3923 " call Decho("repoint t:netrw_lexbufnr to #".t:netrw_lexbufnr) | |
3818 endif | 3924 endif |
3819 | 3925 |
3820 " restore position | 3926 " restore position |
3821 if reusing | 3927 if reusing |
3822 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 3928 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
3958 " " call Dret("s:NetrwFullPath <".filename.">") | 4064 " " call Dret("s:NetrwFullPath <".filename.">") |
3959 return filename | 4065 return filename |
3960 endfun | 4066 endfun |
3961 | 4067 |
3962 " --------------------------------------------------------------------- | 4068 " --------------------------------------------------------------------- |
3963 " s:NetrwGetBuffer: {{{2 | 4069 " s:NetrwGetBuffer: [get a new|find an old netrw] buffer for a netrw listing {{{2 |
3964 " returns 0=cleared buffer | 4070 " returns 0=cleared buffer |
3965 " 1=re-used buffer (buffer not cleared) | 4071 " 1=re-used buffer (buffer not cleared) |
3966 fun! s:NetrwGetBuffer(islocal,dirname) | 4072 fun! s:NetrwGetBuffer(islocal,dirname) |
3967 " call Dfunc("s:NetrwGetBuffer(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".g:netrw_liststyle) | 4073 " call Dfunc("s:NetrwGetBuffer(islocal=".a:islocal." dirname<".a:dirname.">) liststyle=".g:netrw_liststyle) |
3968 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 4074 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
3969 " call Decho("netrwbuf dictionary=".string(s:netrwbuf),'~'.expand("<slnum>")) | 4075 " call Decho("netrwbuf dictionary=".(exists("s:netrwbuf")? string(s:netrwbuf) : 'n/a'),'~'.expand("<slnum>")) |
3970 let dirname= a:dirname | 4076 let dirname= a:dirname |
3971 | 4077 |
3972 " re-use buffer if possible {{{3 | 4078 " re-use buffer if possible {{{3 |
3973 " call Decho("--re-use a buffer if possible--",'~'.expand("<slnum>")) | 4079 " call Decho("--re-use a buffer if possible--",'~'.expand("<slnum>")) |
3974 if !exists("s:netrwbuf") | 4080 if !exists("s:netrwbuf") |
4081 " call Decho(" s:netrwbuf initialized to {}",'~'.expand("<slnum>")) | |
3975 let s:netrwbuf= {} | 4082 let s:netrwbuf= {} |
3976 endif | 4083 endif |
3977 if has_key(s:netrwbuf,s:NetrwFullPath(dirname)) | 4084 " call Decho(" s:netrwbuf =".string(s:netrwbuf),'~'.expand("<slnum>")) |
4085 " call Decho(" w:netrw_liststyle =".(exists("w:netrw_liststyle")? w:netrw_liststyle : "n/a"),'~'.expand("<slnum>")) | |
4086 | |
4087 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST | |
4088 let bufnum = -1 | |
4089 | |
4090 if !empty(s:netrwbuf) && has_key(s:netrwbuf,s:NetrwFullPath(dirname)) | |
4091 if has_key(s:netrwbuf,"NetrwTreeListing") | |
4092 let bufnum= s:netrwbuf["NetrwTreeListing"] | |
4093 else | |
4094 let bufnum= s:netrwbuf[s:NetrwFullPath(dirname)] | |
4095 endif | |
4096 " call Decho(" NetrwTreeListing: bufnum#".bufnum,'~'.expand("<slnum>")) | |
4097 if !bufexists(bufnum) | |
4098 call remove(s:netrwbuf,"NetrwTreeListing"]) | |
4099 let bufnum= -1 | |
4100 endif | |
4101 elseif bufnr("NetrwTreeListing") != -1 | |
4102 let bufnum= bufnr("NetrwTreeListing") | |
4103 " call Decho(" NetrwTreeListing".": bufnum#".bufnum,'~'.expand("<slnum>")) | |
4104 else | |
4105 " call Decho(" did not find a NetrwTreeListing buffer",'~'.expand("<slnum>")) | |
4106 let bufnum= -1 | |
4107 endif | |
4108 | |
4109 elseif has_key(s:netrwbuf,s:NetrwFullPath(dirname)) | |
3978 let bufnum= s:netrwbuf[s:NetrwFullPath(dirname)] | 4110 let bufnum= s:netrwbuf[s:NetrwFullPath(dirname)] |
3979 " call Decho("lookup netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."]=".bufnum) | 4111 " call Decho(" lookup netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."]=".bufnum,'~'.expand("<slnum>")) |
3980 if !bufexists(bufnum) | 4112 if !bufexists(bufnum) |
3981 call remove(s:netrwbuf,s:NetrwFullPath(dirname)) | 4113 call remove(s:netrwbuf,s:NetrwFullPath(dirname)) |
3982 let bufnum= -1 | 4114 let bufnum= -1 |
3983 endif | 4115 endif |
3984 else | 4116 |
3985 " call Decho("lookup netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."] not a key") | 4117 else |
4118 " call Decho(" lookup netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."] not a key",'~'.expand("<slnum>")) | |
3986 let bufnum= -1 | 4119 let bufnum= -1 |
3987 endif | 4120 endif |
4121 " call Decho(" bufnum#".bufnum,'~'.expand("<slnum>")) | |
3988 | 4122 |
3989 " get enew buffer and name it -or- re-use buffer {{{3 | 4123 " get enew buffer and name it -or- re-use buffer {{{3 |
3990 if bufnum < 0 " get enew buffer and name it | 4124 if bufnum < 0 " get enew buffer and name it |
3991 " call Decho("--get enew buffer and name it (bufnum#".bufnum."<0 OR bufexists(".bufnum.")=".bufexists(bufnum)."==0)",'~'.expand("<slnum>")) | 4125 " call Decho("--get enew buffer and name it (bufnum#".bufnum."<0 OR bufexists(".bufnum.")=".bufexists(bufnum)."==0)",'~'.expand("<slnum>")) |
3992 call s:NetrwEnew(dirname) | 4126 call s:NetrwEnew(dirname) |
3993 " call Decho(" got enew buffer#".bufnr("%")." (altbuf<".expand("#").">)",'~'.expand("<slnum>")) | 4127 " call Decho(" got enew buffer#".bufnr("%")." (altbuf<".expand("#").">)",'~'.expand("<slnum>")) |
3994 " name the buffer | 4128 " name the buffer |
3995 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST | 4129 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST |
3996 " Got enew buffer; transform into a NetrwTreeListing | 4130 " Got enew buffer; transform into a NetrwTreeListing |
3997 " call Decho("--transform enew buffer#".bufnr("%")." into a NetrwTreeListing --",'~'.expand("<slnum>")) | 4131 " call Decho("--transform enew buffer#".bufnr("%")." into a NetrwTreeListing --",'~'.expand("<slnum>")) |
3998 if !exists("s:netrw_treelistnum") | 4132 let w:netrw_treebufnr = bufnr("%") |
3999 let s:netrw_treelistnum= 1 | 4133 call s:NetrwBufRename("NetrwTreeListing") |
4000 else | |
4001 let s:netrw_treelistnum= s:netrw_treelistnum + 1 | |
4002 endif | |
4003 let w:netrw_treebufnr= bufnr("%") | |
4004 " call Decho(" exe sil! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum),'~'.expand("<slnum>")) | |
4005 exe 'sil! keepalt file NetrwTreeListing\ '.fnameescape(s:netrw_treelistnum) | |
4006 if g:netrw_use_noswf | 4134 if g:netrw_use_noswf |
4007 setl nobl bt=nofile noswf | 4135 setl nobl bt=nofile noswf |
4008 else | 4136 else |
4009 setl nobl bt=nofile | 4137 setl nobl bt=nofile |
4010 endif | 4138 endif |
4011 nnoremap <silent> <buffer> [[ :sil call <SID>TreeListMove('[[')<cr> | 4139 nnoremap <silent> <buffer> [[ :sil call <SID>TreeListMove('[[')<cr> |
4012 nnoremap <silent> <buffer> ]] :sil call <SID>TreeListMove(']]')<cr> | 4140 nnoremap <silent> <buffer> ]] :sil call <SID>TreeListMove(']]')<cr> |
4013 nnoremap <silent> <buffer> [] :sil call <SID>TreeListMove('[]')<cr> | 4141 nnoremap <silent> <buffer> [] :sil call <SID>TreeListMove('[]')<cr> |
4014 nnoremap <silent> <buffer> ][ :sil call <SID>TreeListMove('][')<cr> | 4142 nnoremap <silent> <buffer> ][ :sil call <SID>TreeListMove('][')<cr> |
4015 " call Decho(" tree listing#".s:netrw_treelistnum." bufnr=".w:netrw_treebufnr,'~'.expand("<slnum>")) | 4143 " call Decho(" tree listing bufnr=".w:netrw_treebufnr,'~'.expand("<slnum>")) |
4016 else | 4144 else |
4017 " let v:errmsg = "" " Decho | 4145 call s:NetrwBufRename(dirname) |
4018 let escdirname = fnameescape(dirname) | |
4019 " call Decho(" errmsg<".v:errmsg."> bufnr(escdirname<".escdirname.">)=".bufnr(escdirname)." bufname()<".bufname(bufnr(escdirname)).">",'~'.expand("<slnum>")) | |
4020 " call Decho(' exe sil! keepalt file '.escdirname,'~'.expand("<slnum>")) | |
4021 " let v:errmsg= "" " Decho | |
4022 exe 'sil! keepj keepalt file '.escdirname | |
4023 " call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">",'~'.expand("<slnum>")) | |
4024 " enter the new buffer into the s:netrwbuf dictionary | 4146 " enter the new buffer into the s:netrwbuf dictionary |
4025 let s:netrwbuf[s:NetrwFullPath(dirname)]= bufnr("%") | 4147 let s:netrwbuf[s:NetrwFullPath(dirname)]= bufnr("%") |
4026 " call Decho("update netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."]=".bufnr("%"),'~'.expand("<slnum>")) | 4148 " call Decho("update netrwbuf dictionary: s:netrwbuf[".s:NetrwFullPath(dirname)."]=".bufnr("%"),'~'.expand("<slnum>")) |
4027 " call Decho("netrwbuf dictionary=".string(s:netrwbuf),'~'.expand("<slnum>")) | 4149 " call Decho("netrwbuf dictionary=".string(s:netrwbuf),'~'.expand("<slnum>")) |
4028 endif | 4150 endif |
4039 " call Decho(" getline(2)<".getline(2).'> does not match "Netrw Directory Listing" : using b '.bufnum,'~'.expand("<slnum>")) | 4161 " call Decho(" getline(2)<".getline(2).'> does not match "Netrw Directory Listing" : using b '.bufnum,'~'.expand("<slnum>")) |
4040 exe "sil! NetrwKeepj noswapfile keepalt b ".bufnum | 4162 exe "sil! NetrwKeepj noswapfile keepalt b ".bufnum |
4041 endif | 4163 endif |
4042 " call Decho(" line($)=".line("$"),'~'.expand("<slnum>")) | 4164 " call Decho(" line($)=".line("$"),'~'.expand("<slnum>")) |
4043 if bufname("%") == '.' | 4165 if bufname("%") == '.' |
4044 " call Decho("exe sil! keepalt file ".fnameescape(getcwd()),'~'.expand("<slnum>")) | 4166 call s:NetrwBufRename(getcwd()) |
4045 exe "sil! NetrwKeepj keepalt file ".fnameescape(getcwd()) | |
4046 endif | 4167 endif |
4047 let &ei= eikeep | 4168 let &ei= eikeep |
4048 | 4169 |
4049 if line("$") <= 1 && getline(1) == "" | 4170 if line("$") <= 1 && getline(1) == "" |
4050 " empty buffer | 4171 " empty buffer |
4064 return 0 | 4185 return 0 |
4065 | 4186 |
4066 elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST | 4187 elseif exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST |
4067 " call Decho("--re-use tree listing--",'~'.expand("<slnum>")) | 4188 " call Decho("--re-use tree listing--",'~'.expand("<slnum>")) |
4068 " call Decho(" clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>")) | 4189 " call Decho(" clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>")) |
4190 setl ma | |
4069 sil NetrwKeepj %d _ | 4191 sil NetrwKeepj %d _ |
4070 NetrwKeepj call s:NetrwListSettings(a:islocal) | 4192 NetrwKeepj call s:NetrwListSettings(a:islocal) |
4071 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 4193 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
4072 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>")) | 4194 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>")) |
4073 " call Dret("s:NetrwGetBuffer 0<cleared buffer> : re-using buffer#".bufnr("%").", but treelist mode always needs a refresh") | 4195 " call Dret("s:NetrwGetBuffer 0<cleared buffer> : re-using buffer#".bufnr("%").", but treelist mode always needs a refresh") |
4087 " med 1 D H | 4209 " med 1 D H |
4088 " fast 2 H H | 4210 " fast 2 H H |
4089 " call Decho("--do netrw settings: make this buffer#".bufnr("%")." not-a-file, modifiable, not line-numbered, etc--",'~'.expand("<slnum>")) | 4211 " call Decho("--do netrw settings: make this buffer#".bufnr("%")." not-a-file, modifiable, not line-numbered, etc--",'~'.expand("<slnum>")) |
4090 let fname= expand("%") | 4212 let fname= expand("%") |
4091 NetrwKeepj call s:NetrwListSettings(a:islocal) | 4213 NetrwKeepj call s:NetrwListSettings(a:islocal) |
4092 " call Decho("exe sil! keepalt file ".fnameescape(fname),'~'.expand("<slnum>")) | 4214 call s:NetrwBufRename(fname) |
4093 exe "sil! NetrwKeepj keepalt file ".fnameescape(fname) | |
4094 | 4215 |
4095 " delete all lines from buffer {{{3 | 4216 " delete all lines from buffer {{{3 |
4096 " call Decho("--delete all lines from buffer--",'~'.expand("<slnum>")) | 4217 " call Decho("--delete all lines from buffer--",'~'.expand("<slnum>")) |
4097 " call Decho(" clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>")) | 4218 " call Decho(" clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>")) |
4098 sil! keepalt NetrwKeepj %d _ | 4219 sil! keepalt NetrwKeepj %d _ |
4231 " call Dret("s:NetrwGetWord <".dirname.">") | 4352 " call Dret("s:NetrwGetWord <".dirname.">") |
4232 return dirname | 4353 return dirname |
4233 endfun | 4354 endfun |
4234 | 4355 |
4235 " --------------------------------------------------------------------- | 4356 " --------------------------------------------------------------------- |
4236 " s:NetrwListSettings: make standard settings for a netrw listing {{{2 | 4357 " s:NetrwListSettings: make standard settings for making a netrw listing {{{2 |
4358 " g:netrw_bufsettings will be used after the listing is produced. | |
4359 " Called by s:NetrwGetBuffer() | |
4237 fun! s:NetrwListSettings(islocal) | 4360 fun! s:NetrwListSettings(islocal) |
4238 " call Dfunc("s:NetrwListSettings(islocal=".a:islocal.")") | 4361 " call Dfunc("s:NetrwListSettings(islocal=".a:islocal.")") |
4239 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 4362 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
4240 let fname= bufname("%") | 4363 let fname= bufname("%") |
4241 " " call Decho("(NetrwListSettings) setl bt=nofile nobl ma nonu nowrap noro nornu",'~'.expand("<slnum>")) | 4364 " " call Decho("(NetrwListSettings) setl bt=nofile nobl ma nonu nowrap noro nornu",'~'.expand("<slnum>")) |
4242 setl bt=nofile nobl ma nonu nowrap noro nornu | 4365 " nobl noma nomod nonu noma nowrap ro nornu (std g:netrw_bufsettings) |
4243 " call Decho("(NetrwListSettings) exe sil! keepalt file ".fnameescape(fname),'~'.expand("<slnum>")) | 4366 setl bt=nofile nobl ma nonu nowrap noro nornu |
4244 exe "sil! keepalt file ".fnameescape(fname) | 4367 call s:NetrwBufRename(fname) |
4245 if g:netrw_use_noswf | 4368 if g:netrw_use_noswf |
4246 setl noswf | 4369 setl noswf |
4247 endif | 4370 endif |
4248 " call Dredir("ls!") | 4371 " call Dredir("ls!","s:NetrwListSettings") |
4249 " call Decho("(NetrwListSettings) exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>")) | 4372 " call Decho("(NetrwListSettings) exe setl ts=".(g:netrw_maxfilenamelen+1),'~'.expand("<slnum>")) |
4250 exe "setl ts=".(g:netrw_maxfilenamelen+1) | 4373 exe "setl ts=".(g:netrw_maxfilenamelen+1) |
4251 setl isk+=.,~,- | 4374 setl isk+=.,~,- |
4252 if g:netrw_fastbrowse > a:islocal | 4375 if g:netrw_fastbrowse > a:islocal |
4253 setl bh=hide | 4376 setl bh=hide |
4257 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 4380 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
4258 " call Dret("s:NetrwListSettings") | 4381 " call Dret("s:NetrwListSettings") |
4259 endfun | 4382 endfun |
4260 | 4383 |
4261 " --------------------------------------------------------------------- | 4384 " --------------------------------------------------------------------- |
4262 " s:NetrwListStyle: {{{2 | 4385 " s:NetrwListStyle: change list style (thin - long - wide - tree) {{{2 |
4263 " islocal=0: remote browsing | 4386 " islocal=0: remote browsing |
4264 " =1: local browsing | 4387 " =1: local browsing |
4265 fun! s:NetrwListStyle(islocal) | 4388 fun! s:NetrwListStyle(islocal) |
4266 " call Dfunc("NetrwListStyle(islocal=".a:islocal.") w:netrw_liststyle=".w:netrw_liststyle) | 4389 " call Dfunc("NetrwListStyle(islocal=".a:islocal.") w:netrw_liststyle=".w:netrw_liststyle) |
4267 | 4390 |
4273 let w:netrw_liststyle = (w:netrw_liststyle + 1) % s:MAXLIST | 4396 let w:netrw_liststyle = (w:netrw_liststyle + 1) % s:MAXLIST |
4274 " call Decho("fname<".fname.">",'~'.expand("<slnum>")) | 4397 " call Decho("fname<".fname.">",'~'.expand("<slnum>")) |
4275 " call Decho("chgd w:netrw_liststyle to ".w:netrw_liststyle,'~'.expand("<slnum>")) | 4398 " call Decho("chgd w:netrw_liststyle to ".w:netrw_liststyle,'~'.expand("<slnum>")) |
4276 " call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "doesn't exist").">",'~'.expand("<slnum>")) | 4399 " call Decho("b:netrw_curdir<".(exists("b:netrw_curdir")? b:netrw_curdir : "doesn't exist").">",'~'.expand("<slnum>")) |
4277 | 4400 |
4401 " repoint t:netrw_lexbufnr if appropriate | |
4402 if exists("t:netrw_lexbufnr") && bufnr("%") == t:netrw_lexbufnr | |
4403 " call Decho("set repointlexbufnr to true!") | |
4404 let repointlexbufnr= 1 | |
4405 endif | |
4406 | |
4278 if w:netrw_liststyle == s:THINLIST | 4407 if w:netrw_liststyle == s:THINLIST |
4279 " use one column listing | 4408 " use one column listing |
4280 " call Decho("use one column list",'~'.expand("<slnum>")) | 4409 " call Decho("use one column list",'~'.expand("<slnum>")) |
4281 let g:netrw_list_cmd = substitute(g:netrw_list_cmd,' -l','','ge') | 4410 let g:netrw_list_cmd = substitute(g:netrw_list_cmd,' -l','','ge') |
4282 | 4411 |
4314 " refresh the listing | 4443 " refresh the listing |
4315 " call Decho("refresh the listing",'~'.expand("<slnum>")) | 4444 " call Decho("refresh the listing",'~'.expand("<slnum>")) |
4316 NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | 4445 NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) |
4317 NetrwKeepj call s:NetrwCursor() | 4446 NetrwKeepj call s:NetrwCursor() |
4318 | 4447 |
4448 " repoint t:netrw_lexbufnr if appropriate | |
4449 if exists("repointlexbufnr") | |
4450 let t:netrw_lexbufnr= bufnr("%") | |
4451 " call Decho("repoint t:netrw_lexbufnr to #".t:netrw_lexbufnr) | |
4452 endif | |
4453 | |
4319 " restore position; keep cursor on the filename | 4454 " restore position; keep cursor on the filename |
4320 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 4455 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
4321 NetrwKeepj call winrestview(svpos) | 4456 NetrwKeepj call winrestview(svpos) |
4322 let @@= ykeep | 4457 let @@= ykeep |
4323 | 4458 |
4337 let svpos= winsaveview() | 4472 let svpos= winsaveview() |
4338 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 4473 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
4339 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | 4474 call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) |
4340 | 4475 |
4341 " keep cursor on the filename | 4476 " keep cursor on the filename |
4342 let fname= s:NetrwGetWord() | 4477 if g:netrw_banner && exists("w:netrw_bannercnt") && line(".") >= w:netrw_bannercnt |
4343 sil NetrwKeepj $ | 4478 let fname= s:NetrwGetWord() |
4344 let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc') | 4479 sil NetrwKeepj $ |
4345 " call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A'),'~'.expand("<slnum>")) | 4480 let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc') |
4346 if result <= 0 && exists("w:netrw_bannercnt") | 4481 " " call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A'),'~'.expand("<slnum>")) |
4347 exe "NetrwKeepj ".w:netrw_bannercnt | 4482 if result <= 0 && exists("w:netrw_bannercnt") |
4483 exe "NetrwKeepj ".w:netrw_bannercnt | |
4484 endif | |
4348 endif | 4485 endif |
4349 let @@= ykeep | 4486 let @@= ykeep |
4350 " call Dret("s:NetrwBannerCtrl : g:netrw_banner=".g:netrw_banner) | 4487 " call Dret("s:NetrwBannerCtrl : g:netrw_banner=".g:netrw_banner) |
4351 endfun | 4488 endfun |
4352 | 4489 |
4504 " Don't try to change-directory: this can happen, for example, when netrw#ErrorMsg has been called | 4641 " Don't try to change-directory: this can happen, for example, when netrw#ErrorMsg has been called |
4505 " and the current window is the NetrwMessage window. | 4642 " and the current window is the NetrwMessage window. |
4506 let @@= ykeep | 4643 let @@= ykeep |
4507 " call Decho("b:netrw_curdir doesn't exist!",'~'.expand("<slnum>")) | 4644 " call Decho("b:netrw_curdir doesn't exist!",'~'.expand("<slnum>")) |
4508 " call Decho("getcwd<".getcwd().">",'~'.expand("<slnum>")) | 4645 " call Decho("getcwd<".getcwd().">",'~'.expand("<slnum>")) |
4509 " call Dredir("ls!") | 4646 " call Dredir("ls!","s:NetrwBrowseChgDir") |
4510 " call Dret("s:NetrwBrowseChgDir") | 4647 " call Dret("s:NetrwBrowseChgDir") |
4511 return | 4648 return |
4512 endif | 4649 endif |
4513 " call Decho("b:netrw_curdir<".b:netrw_curdir.">") | 4650 " call Decho("b:netrw_curdir<".b:netrw_curdir.">") |
4514 | 4651 |
4515 " NetrwBrowseChgDir: save options and initialize {{{3 | 4652 " NetrwBrowseChgDir: save options and initialize {{{3 |
4516 " call Decho("saving options",'~'.expand("<slnum>")) | 4653 " call Decho("saving options",'~'.expand("<slnum>")) |
4517 call s:SavePosn(s:netrw_nbcd) | 4654 call s:SavePosn(s:netrw_posn) |
4518 NetrwKeepj call s:NetrwOptionSave("s:") | 4655 NetrwKeepj call s:NetrwOptionSave("s:") |
4519 NetrwKeepj call s:NetrwSafeOptions() | 4656 NetrwKeepj call s:NetrwSafeOptions() |
4520 if (has("win32") || has("win95") || has("win64") || has("win16")) | 4657 if (has("win32") || has("win95") || has("win64") || has("win16")) |
4521 let dirname = substitute(b:netrw_curdir,'\\','/','ge') | 4658 let dirname = substitute(b:netrw_curdir,'\\','/','ge') |
4522 else | 4659 else |
4537 let g:netrw_quickhelp= (g:netrw_quickhelp + 1)%len(s:QuickHelp) | 4674 let g:netrw_quickhelp= (g:netrw_quickhelp + 1)%len(s:QuickHelp) |
4538 " call Decho("#2: quickhelp=".g:netrw_quickhelp." ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 4675 " call Decho("#2: quickhelp=".g:netrw_quickhelp." ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
4539 setl ma noro nowrap | 4676 setl ma noro nowrap |
4540 NetrwKeepj call setline(line('.'),'" Quick Help: <F1>:help '.s:QuickHelp[g:netrw_quickhelp]) | 4677 NetrwKeepj call setline(line('.'),'" Quick Help: <F1>:help '.s:QuickHelp[g:netrw_quickhelp]) |
4541 setl noma nomod nowrap | 4678 setl noma nomod nowrap |
4542 call s:RestorePosn(s:netrw_nbcd) | |
4543 NetrwKeepj call s:NetrwOptionRestore("s:") | 4679 NetrwKeepj call s:NetrwOptionRestore("s:") |
4544 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 4680 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
4545 endif | 4681 endif |
4546 endif | 4682 endif |
4547 " else " Decho | 4683 " else " Decho |
4867 " call Decho("doing option restore (dorestore=".dorestore.")",'~'.expand("<slnum>")) | 5003 " call Decho("doing option restore (dorestore=".dorestore.")",'~'.expand("<slnum>")) |
4868 NetrwKeepj call s:NetrwOptionRestore("s:") | 5004 NetrwKeepj call s:NetrwOptionRestore("s:") |
4869 " else " Decho | 5005 " else " Decho |
4870 " call Decho("skipping option restore (dorestore==0): hidden=".&hidden." bufhidden=".&bufhidden." mod=".&mod,'~'.expand("<slnum>")) | 5006 " call Decho("skipping option restore (dorestore==0): hidden=".&hidden." bufhidden=".&bufhidden." mod=".&mod,'~'.expand("<slnum>")) |
4871 endif | 5007 endif |
4872 call s:RestorePosn(s:netrw_nbcd) | |
4873 if dolockout && dorestore | 5008 if dolockout && dorestore |
4874 " call Decho("restore: filewritable(dirname<".dirname.">)=".filewritable(dirname),'~'.expand("<slnum>")) | 5009 " call Decho("restore: filewritable(dirname<".dirname.">)=".filewritable(dirname),'~'.expand("<slnum>")) |
4875 if filewritable(dirname) | 5010 if filewritable(dirname) |
4876 " call Decho("restore: doing modification lockout settings: ma nomod noro",'~'.expand("<slnum>")) | 5011 " call Decho("restore: doing modification lockout settings: ma nomod noro",'~'.expand("<slnum>")) |
4877 " call Decho("restore: setl ma nomod noro",'~'.expand("<slnum>")) | 5012 " call Decho("restore: setl ma nomod noro",'~'.expand("<slnum>")) |
4882 " call Decho("restore: setl ma nomod noro",'~'.expand("<slnum>")) | 5017 " call Decho("restore: setl ma nomod noro",'~'.expand("<slnum>")) |
4883 setl ma ro nomod | 5018 setl ma ro nomod |
4884 " call Decho("restore: ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 5019 " call Decho("restore: ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
4885 endif | 5020 endif |
4886 endif | 5021 endif |
5022 call s:RestorePosn(s:netrw_posn) | |
4887 let @@= ykeep | 5023 let @@= ykeep |
4888 | 5024 |
4889 " call Dret("s:NetrwBrowseChgDir <".dirname."> : curpos<".string(getpos(".")).">") | 5025 " call Dret("s:NetrwBrowseChgDir <".dirname."> : curpos<".string(getpos(".")).">") |
4890 return dirname | 5026 return dirname |
4891 endfun | 5027 endfun |
4903 " directories. | 5039 " directories. |
4904 " call Dret("s:NetrwBrowseUpDir : cursor not in file area") | 5040 " call Dret("s:NetrwBrowseUpDir : cursor not in file area") |
4905 return | 5041 return |
4906 endif | 5042 endif |
4907 | 5043 |
4908 if !exists("w:netrw_liststyle") || w:netrw_liststyle != s:TREELIST | |
4909 call s:SavePosn(s:netrw_nbcd) | |
4910 endif | |
4911 | |
4912 norm! 0 | 5044 norm! 0 |
4913 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") | 5045 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict") |
4914 " call Decho("case: treestyle",'~'.expand("<slnum>")) | 5046 " call Decho("case: treestyle",'~'.expand("<slnum>")) |
4915 let curline= getline(".") | 5047 let curline= getline(".") |
4916 let swwline= winline() - 1 | 5048 let swwline= winline() - 1 |
4917 if exists("w:netrw_treetop") | 5049 if exists("w:netrw_treetop") |
4918 let b:netrw_curdir= w:netrw_treetop | 5050 let b:netrw_curdir= w:netrw_treetop |
4919 endif | 5051 elseif exists("b:netrw_curdir") |
4920 let curdir= b:netrw_curdir | 5052 let w:netrw_treetop= b:netrw_curdir |
5053 else | |
5054 let w:netrw_treetop= getcwd() | |
5055 let b:netrw_curdir = w:netrw_treetop | |
5056 endif | |
5057 let curfile = getline(".") | |
5058 let curpath = s:NetrwTreePath(w:netrw_treetop) | |
4921 if a:islocal | 5059 if a:islocal |
4922 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,'../')) | 5060 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,'../')) |
4923 else | 5061 else |
4924 call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,'../')) | 5062 call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,'../')) |
4925 endif | 5063 endif |
4926 if !search('\c^'.s:treedepthstring.curline,'cw') | 5064 " call Decho("looking for curfile<^".s:treedepthstring.curfile.">",'~'.expand("<slnum>")) |
4927 if !search('\c^'.curline,'cw') | 5065 " call Decho("having curpath<".curpath.">",'~'.expand("<slnum>")) |
4928 sil! NetrwKeepj 1 | 5066 if w:netrw_treetop == '/' |
4929 endif | 5067 keepj call search('^\M'.curfile,"w") |
4930 endif | 5068 elseif curfile == '../' |
4931 exe "sil! NetrwKeepj norm! z\<cr>" | 5069 keepj call search('^\M'.curfile,"wb") |
4932 while winline() < swwline | 5070 else |
4933 let curwinline= winline() | 5071 " call Decho("search(^\\M".s:treedepthstring.curfile.") backwards")) |
4934 exe "sil! NetrwKeepj norm! \<c-y>" | 5072 while 1 |
4935 if curwinline == winline() | 5073 keepj call search('^\M'.s:treedepthstring.curfile,"wb") |
4936 break | 5074 let treepath= s:NetrwTreePath(w:netrw_treetop) |
4937 endif | 5075 " call Decho("..current treepath<".treepath.">",'~'.expand("<slnum>")) |
4938 endwhile | 5076 if treepath == curpath |
5077 break | |
5078 endif | |
5079 endwhile | |
5080 endif | |
5081 | |
4939 else | 5082 else |
4940 " call Decho("case: not treestyle",'~'.expand("<slnum>")) | 5083 " call Decho("case: not treestyle",'~'.expand("<slnum>")) |
5084 call s:SavePosn(s:netrw_posn) | |
4941 if exists("b:netrw_curdir") | 5085 if exists("b:netrw_curdir") |
4942 let curdir= b:netrw_curdir | 5086 let curdir= b:netrw_curdir |
4943 else | 5087 else |
4944 let curdir= expand(getcwd()) | 5088 let curdir= expand(getcwd()) |
4945 endif | 5089 endif |
4946 if a:islocal | 5090 if a:islocal |
4947 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,'../')) | 5091 call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,'../')) |
4948 else | 5092 else |
4949 call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,'../')) | 5093 call s:NetrwBrowse(0,s:NetrwBrowseChgDir(0,'../')) |
4950 endif | 5094 endif |
4951 if has_key(s:netrw_nbcd,bufnr("%")) | 5095 call s:RestorePosn(s:netrw_posn) |
4952 call s:RestorePosn(s:netrw_nbcd) | 5096 let curdir= substitute(curdir,'^.*[\/]','','') |
4953 elseif exists("w:netrw_bannercnt") | 5097 call search('\<'.curdir.'/','wc') |
4954 " call Decho("moving to line#".w:netrw_bannercnt,'~'.expand("<slnum>")) | 5098 endif |
4955 exe w:netrw_bannercnt | |
4956 else | |
4957 1 | |
4958 endif | |
4959 endif | |
4960 let curdir= substitute(curdir,'^.*[\/]','','') | |
4961 call search('\<'.curdir.'\>','wc') | |
4962 " call Dret("s:NetrwBrowseUpDir") | 5099 " call Dret("s:NetrwBrowseUpDir") |
4963 endfun | 5100 endfun |
4964 | 5101 |
4965 " --------------------------------------------------------------------- | 5102 " --------------------------------------------------------------------- |
4966 " netrw#BrowseX: (implements "x") executes a special "viewer" script or program for the {{{2 | 5103 " netrw#BrowseX: (implements "x") executes a special "viewer" script or program for the {{{2 |
4967 " given filename; typically this means given their extension. | 5104 " given filename; typically this means given their extension. |
4968 " 0=local, 1=remote | 5105 " 0=local, 1=remote |
4969 fun! netrw#BrowseX(fname,remote) | 5106 fun! netrw#BrowseX(fname,remote) |
4970 " call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")") | 5107 " call Dfunc("netrw#BrowseX(fname<".a:fname."> remote=".a:remote.")") |
4971 | 5108 |
4972 " if its really just a directory, then do a "gf" instead | 5109 " if its really just a local directory, then do a "gf" instead |
4973 if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && fname =~ '/$' && fname !~ '^https\=:') | 5110 if (a:remote == 0 && isdirectory(a:fname)) || (a:remote == 1 && a:fname =~ '/$' && a:fname !~ '^https\=:') |
4974 norm! gf | 5111 norm! gf |
4975 " call Dret("netrw#BrowseX : did gf instead") | 5112 " call Dret("(netrw#BrowseX) did gf instead") |
4976 endif | 5113 endif |
4977 | |
4978 | 5114 |
4979 let ykeep = @@ | 5115 let ykeep = @@ |
4980 let screenposn = winsaveview() | 5116 let screenposn = winsaveview() |
4981 " call Decho("saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) | 5117 " call Decho("(netrw#BrowseX) saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) |
4982 | 5118 |
4983 " need to save and restore aw setting as gx can invoke this function from non-netrw buffers | 5119 " need to save and restore aw setting as gx can invoke this function from non-netrw buffers |
4984 let awkeep = &aw | 5120 let awkeep = &aw |
4985 set noaw | 5121 set noaw |
4986 | 5122 |
4987 " special core dump handler | 5123 " special core dump handler |
4988 if a:fname =~ '/core\(\.\d\+\)\=$' | 5124 if a:fname =~ '/core\(\.\d\+\)\=$' |
4989 if exists("g:Netrw_corehandler") | 5125 if exists("g:Netrw_corehandler") |
4990 if type(g:Netrw_corehandler) == 2 | 5126 if type(g:Netrw_corehandler) == 2 |
4991 " g:Netrw_corehandler is a function reference (see :help Funcref) | 5127 " g:Netrw_corehandler is a function reference (see :help Funcref) |
4992 " call Decho("g:Netrw_corehandler is a funcref",'~'.expand("<slnum>")) | 5128 " call Decho("(netrw#BrowseX) g:Netrw_corehandler is a funcref",'~'.expand("<slnum>")) |
4993 call g:Netrw_corehandler(s:NetrwFile(a:fname)) | 5129 call g:Netrw_corehandler(s:NetrwFile(a:fname)) |
4994 elseif type(g:Netrw_corehandler) == 3 | 5130 elseif type(g:Netrw_corehandler) == 3 |
4995 " g:Netrw_corehandler is a List of function references (see :help Funcref) | 5131 " g:Netrw_corehandler is a List of function references (see :help Funcref) |
4996 " call Decho("g:Netrw_corehandler is a List",'~'.expand("<slnum>")) | 5132 " call Decho("(netrw#BrowseX) g:Netrw_corehandler is a List",'~'.expand("<slnum>")) |
4997 for Fncref in g:Netrw_corehandler | 5133 for Fncref in g:Netrw_corehandler |
4998 if type(FncRef) == 2 | 5134 if type(FncRef) == 2 |
4999 call FncRef(a:fname) | 5135 call FncRef(a:fname) |
5000 endif | 5136 endif |
5001 endfor | 5137 endfor |
5002 endif | 5138 endif |
5003 " call Decho("restoring posn to screenposn<".string(screenposn).">,'~'.expand("<slnum>"))" | 5139 " call Decho("(netrw#BrowseX) restoring posn: screenposn<".string(screenposn).">,'~'.expand("<slnum>"))" |
5004 call winrestview(screenposn) | 5140 call winrestview(screenposn) |
5005 let @@= ykeep | 5141 let @@= ykeep |
5006 let &aw= awkeep | 5142 let &aw= awkeep |
5007 " call Dret("netrw#BrowseX : coredump handler invoked") | 5143 " call Dret("netrw#BrowseX : coredump handler invoked") |
5008 return | 5144 return |
5013 " (lower case the extension, make a local copy of a remote file) | 5149 " (lower case the extension, make a local copy of a remote file) |
5014 let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e') | 5150 let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e') |
5015 if has("win32") || has("win95") || has("win64") || has("win16") | 5151 if has("win32") || has("win95") || has("win64") || has("win16") |
5016 let exten= substitute(exten,'^.*$','\L&\E','') | 5152 let exten= substitute(exten,'^.*$','\L&\E','') |
5017 endif | 5153 endif |
5018 " call Decho("exten<".exten.">",'~'.expand("<slnum>")) | 5154 if exten =~ "[\\/]" |
5155 let exten= "" | |
5156 endif | |
5157 " call Decho("(netrw#BrowseX) exten<".exten.">",'~'.expand("<slnum>")) | |
5019 | 5158 |
5020 if a:remote == 1 | 5159 if a:remote == 1 |
5021 " create a local copy | 5160 " create a local copy |
5022 " call Decho("remote: a:remote=".a:remote.": create a local copy of <".a:fname.">",'~'.expand("<slnum>")) | 5161 " call Decho("(netrw#BrowseX) remote: a:remote=".a:remote.": create a local copy of <".a:fname.">",'~'.expand("<slnum>")) |
5023 setl bh=delete | 5162 setl bh=delete |
5024 call netrw#NetRead(3,a:fname) | 5163 call netrw#NetRead(3,a:fname) |
5025 " attempt to rename tempfile | 5164 " attempt to rename tempfile |
5026 let basename= substitute(a:fname,'^\(.*\)/\(.*\)\.\([^.]*\)$','\2','') | 5165 let basename= substitute(a:fname,'^\(.*\)/\(.*\)\.\([^.]*\)$','\2','') |
5027 let newname = substitute(s:netrw_tmpfile,'^\(.*\)/\(.*\)\.\([^.]*\)$','\1/'.basename.'.\3','') | 5166 let newname = substitute(s:netrw_tmpfile,'^\(.*\)/\(.*\)\.\([^.]*\)$','\1/'.basename.'.\3','') |
5028 " call Decho("basename<".basename.">",'~'.expand("<slnum>")) | 5167 " call Decho("(netrw#BrowseX) basename<".basename.">",'~'.expand("<slnum>")) |
5029 " call Decho("newname <".newname.">",'~'.expand("<slnum>")) | 5168 " call Decho("(netrw#BrowseX) newname <".newname.">",'~'.expand("<slnum>")) |
5030 if rename(s:netrw_tmpfile,newname) == 0 | 5169 if s:netrw_tmpfile != newname && newname != "" |
5031 " renaming succeeded | 5170 if rename(s:netrw_tmpfile,newname) == 0 |
5032 let fname= newname | 5171 " renaming succeeded |
5033 else | 5172 " call Decho("(netrw#BrowseX) renaming succeeded (tmpfile<".s:netrw_tmpfile."> to <".newname.">)") |
5034 " renaming failed | 5173 let fname= newname |
5174 else | |
5175 " renaming failed | |
5176 " call Decho("(netrw#BrowseX) renaming failed (tmpfile<".s:netrw_tmpfile."> to <".newname.">)") | |
5177 let fname= s:netrw_tmpfile | |
5178 endif | |
5179 else | |
5035 let fname= s:netrw_tmpfile | 5180 let fname= s:netrw_tmpfile |
5036 endif | 5181 endif |
5037 else | 5182 else |
5038 " call Decho("local: a:remote=".a:remote.": handling local copy of <".a:fname.">",'~'.expand("<slnum>")) | 5183 " call Decho("(netrw#BrowseX) local: a:remote=".a:remote.": handling local copy of <".a:fname.">",'~'.expand("<slnum>")) |
5039 let fname= a:fname | 5184 let fname= a:fname |
5040 " special ~ handler for local | 5185 " special ~ handler for local |
5041 if fname =~ '^\~' && expand("$HOME") != "" | 5186 if fname =~ '^\~' && expand("$HOME") != "" |
5042 " call Decho('invoking special ~ handler','~'.expand("<slnum>")) | 5187 " call Decho('invoking special ~ handler','~'.expand("<slnum>")) |
5043 let fname= s:NetrwFile(substitute(fname,'^\~',expand("$HOME"),'')) | 5188 let fname= s:NetrwFile(substitute(fname,'^\~',expand("$HOME"),'')) |
5044 endif | 5189 endif |
5045 endif | 5190 endif |
5046 " call Decho("fname<".fname.">",'~'.expand("<slnum>")) | 5191 " call Decho("(netrw#BrowseX) fname<".fname.">",'~'.expand("<slnum>")) |
5047 " call Decho("exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten),'~'.expand("<slnum>")) | 5192 " call Decho("(netrw#BrowseX) exten<".exten."> "."netrwFileHandlers#NFH_".exten."():exists=".exists("*netrwFileHandlers#NFH_".exten),'~'.expand("<slnum>")) |
5048 | 5193 |
5049 " set up redirection (avoids browser messages) | 5194 " set up redirection (avoids browser messages) |
5050 " by default, g:netrw_suppress_gx_mesg is true | 5195 " by default, g:netrw_suppress_gx_mesg is true |
5051 if g:netrw_suppress_gx_mesg | 5196 if g:netrw_suppress_gx_mesg |
5052 if &srr =~ "%s" | 5197 if &srr =~ "%s" |
5059 let redir= &srr . "nul" | 5204 let redir= &srr . "nul" |
5060 else | 5205 else |
5061 let redir= &srr . "/dev/null" | 5206 let redir= &srr . "/dev/null" |
5062 endif | 5207 endif |
5063 endif | 5208 endif |
5064 " call Decho("set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>")) | 5209 " call Decho("(netrw#BrowseX) set up redirection: redir{".redir."} srr{".&srr."}",'~'.expand("<slnum>")) |
5065 | 5210 |
5066 " extract any viewing options. Assumes that they're set apart by quotes. | 5211 " extract any viewing options. Assumes that they're set apart by quotes. |
5067 " call Decho("extract any viewing options",'~'.expand("<slnum>")) | 5212 " call Decho("(netrw#BrowseX) extract any viewing options",'~'.expand("<slnum>")) |
5068 if exists("g:netrw_browsex_viewer") | 5213 if exists("g:netrw_browsex_viewer") |
5069 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) | 5214 " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) |
5070 if g:netrw_browsex_viewer =~ '\s' | 5215 if g:netrw_browsex_viewer =~ '\s' |
5071 let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','') | 5216 let viewer = substitute(g:netrw_browsex_viewer,'\s.*$','','') |
5072 let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." " | 5217 let viewopt = substitute(g:netrw_browsex_viewer,'^\S\+\s*','','')." " |
5073 let oviewer = '' | 5218 let oviewer = '' |
5074 let cnt = 1 | 5219 let cnt = 1 |
5075 while !executable(viewer) && viewer != oviewer | 5220 while !executable(viewer) && viewer != oviewer |
5076 let viewer = substitute(g:netrw_browsex_viewer,'^\(\(^\S\+\s\+\)\{'.cnt.'}\S\+\)\(.*\)$','\1','') | 5221 let viewer = substitute(g:netrw_browsex_viewer,'^\(\(^\S\+\s\+\)\{'.cnt.'}\S\+\)\(.*\)$','\1','') |
5077 let viewopt = substitute(g:netrw_browsex_viewer,'^\(\(^\S\+\s\+\)\{'.cnt.'}\S\+\)\(.*\)$','\3','')." " | 5222 let viewopt = substitute(g:netrw_browsex_viewer,'^\(\(^\S\+\s\+\)\{'.cnt.'}\S\+\)\(.*\)$','\3','')." " |
5078 let cnt = cnt + 1 | 5223 let cnt = cnt + 1 |
5079 let oviewer = viewer | 5224 let oviewer = viewer |
5080 " call Decho("!exe: viewer<".viewer."> viewopt<".viewopt.">",'~'.expand("<slnum>")) | 5225 " call Decho("(netrw#BrowseX) !exe: viewer<".viewer."> viewopt<".viewopt.">",'~'.expand("<slnum>")) |
5081 endwhile | 5226 endwhile |
5082 else | 5227 else |
5083 let viewer = g:netrw_browsex_viewer | 5228 let viewer = g:netrw_browsex_viewer |
5084 let viewopt = "" | 5229 let viewopt = "" |
5085 endif | 5230 endif |
5086 " call Decho("viewer<".viewer."> viewopt<".viewopt.">",'~'.expand("<slnum>")) | 5231 " call Decho("(netrw#BrowseX) viewer<".viewer."> viewopt<".viewopt.">",'~'.expand("<slnum>")) |
5087 endif | 5232 endif |
5088 | 5233 |
5089 " execute the file handler | 5234 " execute the file handler |
5090 " call Decho("execute the file handler (if any)",'~'.expand("<slnum>")) | 5235 " call Decho("(netrw#BrowseX) execute the file handler (if any)",'~'.expand("<slnum>")) |
5091 if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-' | 5236 if exists("g:netrw_browsex_viewer") && g:netrw_browsex_viewer == '-' |
5092 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) | 5237 " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) |
5093 let ret= netrwFileHandlers#Invoke(exten,fname) | 5238 let ret= netrwFileHandlers#Invoke(exten,fname) |
5094 | 5239 |
5095 elseif exists("g:netrw_browsex_viewer") && executable(viewer) | 5240 elseif exists("g:netrw_browsex_viewer") && executable(viewer) |
5096 " call Decho("g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) | 5241 " call Decho("(netrw#BrowseX) g:netrw_browsex_viewer<".g:netrw_browsex_viewer.">",'~'.expand("<slnum>")) |
5097 call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir) | 5242 call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir) |
5098 let ret= v:shell_error | 5243 let ret= v:shell_error |
5099 | 5244 |
5100 elseif has("win32") || has("win64") | 5245 elseif has("win32") || has("win64") |
5101 " call Decho("windows",'~'.expand("<slnum>")) | 5246 " call Decho("(netrw#BrowseX) win".(has("win32")? "32" : "64")",'~'.expand("<slnum>")) |
5102 if executable("start") | 5247 if executable("start") |
5103 call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) | 5248 call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) |
5104 elseif executable("rundll32") | 5249 elseif executable("rundll32") |
5105 call s:NetrwExe('sil! !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) | 5250 call s:NetrwExe('sil! !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) |
5106 else | 5251 else |
5107 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) | 5252 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) |
5108 endif | 5253 endif |
5109 call inputsave()|call input("Press <cr> to continue")|call inputrestore() | 5254 " call inputsave()|call input("Press <cr> to continue")|call inputrestore() |
5110 let ret= v:shell_error | 5255 let ret= v:shell_error |
5111 | 5256 |
5112 elseif has("win32unix") | 5257 elseif has("win32unix") |
5113 let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g') | 5258 let winfname= 'c:\cygwin'.substitute(fname,'/','\\','g') |
5114 " call Decho("cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>")) | 5259 " call Decho("(netrw#BrowseX) cygwin: winfname<".s:ShellEscape(winfname,1).">",'~'.expand("<slnum>")) |
5115 if executable("start") | 5260 if executable("start") |
5116 call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) | 5261 call s:NetrwExe('sil !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) |
5117 elseif executable("rundll32") | 5262 elseif executable("rundll32") |
5118 call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) | 5263 call s:NetrwExe('sil !rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(winfname,1)) |
5119 elseif executable("cygstart") | 5264 elseif executable("cygstart") |
5120 call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1)) | 5265 call s:NetrwExe('sil !cygstart '.s:ShellEscape(fname,1)) |
5121 else | 5266 else |
5122 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) | 5267 call netrw#ErrorMsg(s:WARNING,"rundll32 not on path",74) |
5123 endif | 5268 endif |
5124 call inputsave()|call input("Press <cr> to continue")|call inputrestore() | 5269 " call inputsave()|call input("Press <cr> to continue")|call inputrestore() |
5125 let ret= v:shell_error | 5270 let ret= v:shell_error |
5126 | 5271 |
5127 elseif has("unix") && executable("kfmclient") && s:CheckIfKde() | 5272 elseif has("unix") && executable("kfmclient") && s:CheckIfKde() |
5128 " call Decho("unix and kfmclient",'~'.expand("<slnum>")) | 5273 " call Decho("(netrw#BrowseX) unix and kfmclient",'~'.expand("<slnum>")) |
5129 call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir) | 5274 call s:NetrwExe("sil !kfmclient exec ".s:ShellEscape(fname,1)." ".redir) |
5130 let ret= v:shell_error | 5275 let ret= v:shell_error |
5131 | 5276 |
5132 elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid") | 5277 elseif has("unix") && executable("exo-open") && executable("xdg-open") && executable("setsid") |
5133 " call Decho("unix, exo-open, xdg-open",'~'.expand("<slnum>")) | 5278 " call Decho("(netrw#BrowseX) unix, exo-open, xdg-open",'~'.expand("<slnum>")) |
5134 call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir) | 5279 call s:NetrwExe("sil !setsid xdg-open ".s:ShellEscape(fname,1).redir) |
5135 let ret= v:shell_error | 5280 let ret= v:shell_error |
5136 | 5281 |
5282 elseif has("unix") && $DESKTOP_SESSION == "mate" && executable("atril") | |
5283 " call Decho("(netrw#BrowseX) unix and atril",'~'.expand("<slnum>")) | |
5284 call s:NetrwExe("sil !atril ".s:ShellEscape(fname,1).redir) | |
5285 let ret= v:shell_error | |
5286 | |
5137 elseif has("unix") && executable("xdg-open") | 5287 elseif has("unix") && executable("xdg-open") |
5138 " call Decho("unix and xdg-open",'~'.expand("<slnum>")) | 5288 " call Decho("(netrw#BrowseX) unix and xdg-open",'~'.expand("<slnum>")) |
5139 call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir) | 5289 call s:NetrwExe("sil !xdg-open ".s:ShellEscape(fname,1).redir) |
5140 let ret= v:shell_error | 5290 let ret= v:shell_error |
5141 | 5291 |
5142 elseif has("macunix") && executable("open") | 5292 elseif has("macunix") && executable("open") |
5143 " call Decho("macunix and open",'~'.expand("<slnum>")) | 5293 " call Decho("(netrw#BrowseX) macunix and open",'~'.expand("<slnum>")) |
5144 call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir) | 5294 call s:NetrwExe("sil !open ".s:ShellEscape(fname,1)." ".redir) |
5145 let ret= v:shell_error | 5295 let ret= v:shell_error |
5146 | 5296 |
5147 else | 5297 else |
5148 " netrwFileHandlers#Invoke() always returns 0 | 5298 " netrwFileHandlers#Invoke() always returns 0 |
5173 setl noswf | 5323 setl noswf |
5174 endif | 5324 endif |
5175 exe "sil! NetrwKeepj norm! \<c-o>" | 5325 exe "sil! NetrwKeepj norm! \<c-o>" |
5176 " redraw! | 5326 " redraw! |
5177 endif | 5327 endif |
5178 " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) | 5328 " call Decho("(netrw#BrowseX) restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) |
5179 call winrestview(screenposn) | 5329 call winrestview(screenposn) |
5180 let @@ = ykeep | 5330 let @@ = ykeep |
5181 let &aw= awkeep | 5331 let &aw= awkeep |
5182 | 5332 |
5183 " call Dret("netrw#BrowseX") | 5333 " call Dret("netrw#BrowseX") |
5334 endfun | |
5335 | |
5336 " --------------------------------------------------------------------- | |
5337 " netrw#GX: gets word under cursor for gx support {{{2 | |
5338 " See also: netrw#BrowseXVis | |
5339 " netrw#BrowseX | |
5340 fun! netrw#GX() | |
5341 " call Dfunc("netrw#GX()") | |
5342 if &ft == "netrw" | |
5343 let fname= s:NetrwGetWord() | |
5344 else | |
5345 let fname= expand((exists("g:netrw_gx")? g:netrw_gx : '<cfile>')) | |
5346 endif | |
5347 " call Dret("netrw#GX <".fname.">") | |
5348 return fname | |
5184 endfun | 5349 endfun |
5185 | 5350 |
5186 " --------------------------------------------------------------------- | 5351 " --------------------------------------------------------------------- |
5187 " netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2 | 5352 " netrw#BrowseXVis: used by gx in visual mode to select a file for browsing {{{2 |
5188 fun! netrw#BrowseXVis() | 5353 fun! netrw#BrowseXVis() |
5189 " call Dfunc("netrw#BrowseXVis()") | 5354 " call Dfunc("netrw#BrowseXVis()") |
5190 let atkeep = @@ | 5355 let atkeep = @@ |
5191 norm! gvy | 5356 norm! gvy |
5192 " call Decho("@@<".@@.">",'~'.expand("<slnum>")) | 5357 " call Decho("@@<".@@.">",'~'.expand("<slnum>")) |
5193 call netrw#BrowseX(@@,netrw#CheckIfRemote()) | 5358 call netrw#BrowseX(@@,netrw#CheckIfRemote(@@)) |
5194 let @@ = atkeep | 5359 let @@ = atkeep |
5195 " call Dret("netrw#BrowseXVis") | 5360 " call Dret("netrw#BrowseXVis") |
5196 endfun | 5361 endfun |
5197 | 5362 |
5198 " --------------------------------------------------------------------- | 5363 " --------------------------------------------------------------------- |
5364 " s:NetrwBufRename: renames a buffer without the side effect of retaining an unlisted buffer having the old name {{{2 | |
5365 " Using the file command on a "[No Name]" buffer does not seem to cause the old "[No Name]" buffer | |
5366 " to become an unlisted buffer, so in that case don't bwipe it. | |
5367 fun! s:NetrwBufRename(newname) | |
5368 " call Dfunc("s:NetrwBufRename(newname<".a:newname.">) buf(%)#".bufnr("%")."<".bufname(bufnr("%")).">") | |
5369 " call Dredir("ls!","s:NetrwBufRename (before rename)") | |
5370 let oldbufname= bufname(bufnr("%")) | |
5371 " call Decho("buf#".bufnr("%").": oldbufname<".oldbufname.">",'~'.expand("<slnum>")) | |
5372 if oldbufname != a:newname | |
5373 " call Decho("do renaming (oldbufname != a:newname)",'~'.expand("<slnum>")) | |
5374 exe 'sil! keepj keepalt file '.fnameescape(a:newname) | |
5375 let oldbufnr= bufnr(oldbufname) | |
5376 if oldbufname != "" && oldbufnr != -1 | |
5377 exe "bwipe! ".oldbufnr | |
5378 endif | |
5379 endif | |
5380 " call Dredir("ls!","s:NetrwBufRename (after rename)") | |
5381 " call Dret("s:NetrwBufRename : buf#".bufnr("%").": oldname<".oldbufname."> newname<".a:newname."> expand(%)<".expand("%").">") | |
5382 endfun | |
5383 | |
5384 " --------------------------------------------------------------------- | |
5199 " netrw#CheckIfRemote: returns 1 if current file looks like an url, 0 else {{{2 | 5385 " netrw#CheckIfRemote: returns 1 if current file looks like an url, 0 else {{{2 |
5200 fun! netrw#CheckIfRemote() | 5386 fun! netrw#CheckIfRemote(...) |
5201 " call Dfunc("netrw#CheckIfRemote()") | 5387 " call Dfunc("netrw#CheckIfRemote() a:0=".a:0) |
5202 if expand("%") =~ '^\a\{3,}://' | 5388 if a:0 > 0 |
5389 let curfile= a:1 | |
5390 else | |
5391 let curfile= expand("%") | |
5392 endif | |
5393 " call Decho("curfile<".curfile.">") | |
5394 if curfile =~ '^\a\{3,}://' | |
5203 " call Dret("netrw#CheckIfRemote 1") | 5395 " call Dret("netrw#CheckIfRemote 1") |
5204 return 1 | 5396 return 1 |
5205 else | 5397 else |
5206 " call Dret("netrw#CheckIfRemote 0") | 5398 " call Dret("netrw#CheckIfRemote 0") |
5207 return 0 | 5399 return 0 |
5463 " s:NetrwHidden: invoked by "gh" {{{2 | 5655 " s:NetrwHidden: invoked by "gh" {{{2 |
5464 fun! s:NetrwHidden(islocal) | 5656 fun! s:NetrwHidden(islocal) |
5465 " call Dfunc("s:NetrwHidden()") | 5657 " call Dfunc("s:NetrwHidden()") |
5466 let ykeep= @@ | 5658 let ykeep= @@ |
5467 " save current position | 5659 " save current position |
5468 let svpos= winsaveview() | 5660 let svpos = winsaveview() |
5469 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 5661 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
5470 | 5662 |
5471 if g:netrw_list_hide =~ '\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+' | 5663 if g:netrw_list_hide =~ '\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+' |
5472 " remove pattern from hiding list | 5664 " remove .file pattern from hiding list |
5665 " call Decho("remove .file pattern from hiding list",'~'.expand("<slnum>")) | |
5473 let g:netrw_list_hide= substitute(g:netrw_list_hide,'\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+','','') | 5666 let g:netrw_list_hide= substitute(g:netrw_list_hide,'\(^\|,\)\\(^\\|\\s\\s\\)\\zs\\.\\S\\+','','') |
5474 elseif s:Strlen(g:netrw_list_hide) >= 1 | 5667 elseif s:Strlen(g:netrw_list_hide) >= 1 |
5668 " call Decho("add .file pattern from hiding list",'~'.expand("<slnum>")) | |
5475 let g:netrw_list_hide= g:netrw_list_hide . ',\(^\|\s\s\)\zs\.\S\+' | 5669 let g:netrw_list_hide= g:netrw_list_hide . ',\(^\|\s\s\)\zs\.\S\+' |
5476 else | 5670 else |
5671 " call Decho("set .file pattern as hiding list",'~'.expand("<slnum>")) | |
5477 let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+' | 5672 let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+' |
5673 endif | |
5674 if g:netrw_list_hide =~ '^,' | |
5675 let g:netrw_list_hide= strpart(g:netrw_list_hide,1) | |
5478 endif | 5676 endif |
5479 | 5677 |
5480 " refresh screen and return to saved position | 5678 " refresh screen and return to saved position |
5481 NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) | 5679 NetrwKeepj call s:NetrwRefresh(a:islocal,s:NetrwBrowseChgDir(a:islocal,'./')) |
5482 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 5680 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
5487 | 5685 |
5488 " --------------------------------------------------------------------- | 5686 " --------------------------------------------------------------------- |
5489 " s:NetrwHome: this function determines a "home" for saving bookmarks and history {{{2 | 5687 " s:NetrwHome: this function determines a "home" for saving bookmarks and history {{{2 |
5490 fun! s:NetrwHome() | 5688 fun! s:NetrwHome() |
5491 if exists("g:netrw_home") | 5689 if exists("g:netrw_home") |
5492 let home= g:netrw_home | 5690 let home= expand(g:netrw_home) |
5493 else | 5691 else |
5494 " go to vim plugin home | 5692 " go to vim plugin home |
5495 for home in split(&rtp,',') + [''] | 5693 for home in split(&rtp,',') + [''] |
5496 if isdirectory(s:NetrwFile(home)) && filewritable(s:NetrwFile(home)) | break | endif | 5694 if isdirectory(s:NetrwFile(home)) && filewritable(s:NetrwFile(home)) | break | endif |
5497 let basehome= substitute(home,'[/\\]\.vim$','','') | 5695 let basehome= substitute(home,'[/\\]\.vim$','','') |
5508 let home= substitute(home,'/','\\','g') | 5706 let home= substitute(home,'/','\\','g') |
5509 endif | 5707 endif |
5510 endif | 5708 endif |
5511 " insure that the home directory exists | 5709 " insure that the home directory exists |
5512 if g:netrw_dirhistmax > 0 && !isdirectory(s:NetrwFile(home)) | 5710 if g:netrw_dirhistmax > 0 && !isdirectory(s:NetrwFile(home)) |
5711 " call Decho("insure that the home<".home."> directory exists") | |
5513 if exists("g:netrw_mkdir") | 5712 if exists("g:netrw_mkdir") |
5713 " call Decho("call system(".g:netrw_mkdir." ".s:ShellEscape(s:NetrwFile(home)).")") | |
5514 call system(g:netrw_mkdir." ".s:ShellEscape(s:NetrwFile(home))) | 5714 call system(g:netrw_mkdir." ".s:ShellEscape(s:NetrwFile(home))) |
5515 else | 5715 else |
5716 " call Decho("mkdir(".home.")") | |
5516 call mkdir(home) | 5717 call mkdir(home) |
5517 endif | 5718 endif |
5518 endif | 5719 endif |
5519 let g:netrw_home= home | 5720 let g:netrw_home= home |
5520 return home | 5721 return home |
5522 | 5723 |
5523 " --------------------------------------------------------------------- | 5724 " --------------------------------------------------------------------- |
5524 " s:NetrwLeftmouse: handles the <leftmouse> when in a netrw browsing window {{{2 | 5725 " s:NetrwLeftmouse: handles the <leftmouse> when in a netrw browsing window {{{2 |
5525 fun! s:NetrwLeftmouse(islocal) | 5726 fun! s:NetrwLeftmouse(islocal) |
5526 if exists("s:netrwdrag") | 5727 if exists("s:netrwdrag") |
5728 return | |
5729 endif | |
5730 if &ft != "netrw" | |
5527 return | 5731 return |
5528 endif | 5732 endif |
5529 " call Dfunc("s:NetrwLeftmouse(islocal=".a:islocal.")") | 5733 " call Dfunc("s:NetrwLeftmouse(islocal=".a:islocal.")") |
5530 | 5734 |
5531 let ykeep= @@ | 5735 let ykeep= @@ |
5571 endfun | 5775 endfun |
5572 | 5776 |
5573 " --------------------------------------------------------------------- | 5777 " --------------------------------------------------------------------- |
5574 " s:NetrwCLeftmouse: used to select a file/directory for a target {{{2 | 5778 " s:NetrwCLeftmouse: used to select a file/directory for a target {{{2 |
5575 fun! s:NetrwCLeftmouse(islocal) | 5779 fun! s:NetrwCLeftmouse(islocal) |
5780 if &ft != "netrw" | |
5781 return | |
5782 endif | |
5576 " call Dfunc("s:NetrwCLeftmouse(islocal=".a:islocal.")") | 5783 " call Dfunc("s:NetrwCLeftmouse(islocal=".a:islocal.")") |
5577 call s:NetrwMarkFileTgt(a:islocal) | 5784 call s:NetrwMarkFileTgt(a:islocal) |
5578 " call Dret("s:NetrwCLeftmouse") | 5785 " call Dret("s:NetrwCLeftmouse") |
5579 endfun | 5786 endfun |
5580 | 5787 |
5581 " --------------------------------------------------------------------- | 5788 " --------------------------------------------------------------------- |
5582 " s:NetrwServerEdit: edit file in a server gvim, usually NETRWSERVER (implements <c-r>){{{2 | 5789 " s:NetrwServerEdit: edit file in a server gvim, usually NETRWSERVER (implements <c-r>){{{2 |
5583 " a:islocal=0 : <c-r> not used, remote | 5790 " a:islocal=0 : <c-r> not used, remote |
5584 " a:islocal=1 : <c-r> no used, local | 5791 " a:islocal=1 : <c-r> not used, local |
5585 " a:islocal=2 : <c-r> used, remote | 5792 " a:islocal=2 : <c-r> used, remote |
5586 " a:islocal=3 : <c-r> used, local | 5793 " a:islocal=3 : <c-r> used, local |
5587 fun! s:NetrwServerEdit(islocal,fname) | 5794 fun! s:NetrwServerEdit(islocal,fname) |
5588 " call Dfunc("s:NetrwServerEdit(islocal=".a:islocal.",fname<".a:fname.">)") | 5795 " call Dfunc("s:NetrwServerEdit(islocal=".a:islocal.",fname<".a:fname.">)") |
5589 let islocal = a:islocal%2 " =0: remote =1: local | 5796 let islocal = a:islocal%2 " =0: remote =1: local |
5704 endfun | 5911 endfun |
5705 | 5912 |
5706 " --------------------------------------------------------------------- | 5913 " --------------------------------------------------------------------- |
5707 " s:NetrwSLeftmouse: marks the file under the cursor. May be dragged to select additional files {{{2 | 5914 " s:NetrwSLeftmouse: marks the file under the cursor. May be dragged to select additional files {{{2 |
5708 fun! s:NetrwSLeftmouse(islocal) | 5915 fun! s:NetrwSLeftmouse(islocal) |
5916 if &ft != "netrw" | |
5917 return | |
5918 endif | |
5709 " call Dfunc("s:NetrwSLeftmouse(islocal=".a:islocal.")") | 5919 " call Dfunc("s:NetrwSLeftmouse(islocal=".a:islocal.")") |
5710 | 5920 |
5711 let s:ngw= s:NetrwGetWord() | 5921 let s:ngw= s:NetrwGetWord() |
5712 call s:NetrwMarkFile(a:islocal,s:ngw) | 5922 call s:NetrwMarkFile(a:islocal,s:ngw) |
5713 | 5923 |
5756 " --------------------------------------------------------------------- | 5966 " --------------------------------------------------------------------- |
5757 " s:NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2 | 5967 " s:NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2 |
5758 " separated patterns given in g:netrw_list_hide | 5968 " separated patterns given in g:netrw_list_hide |
5759 fun! s:NetrwListHide() | 5969 fun! s:NetrwListHide() |
5760 " call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">") | 5970 " call Dfunc("s:NetrwListHide() g:netrw_hide=".g:netrw_hide." g:netrw_list_hide<".g:netrw_list_hide.">") |
5971 " call Decho("initial: ".string(getline(w:netrw_bannercnt,'$'))) | |
5761 let ykeep= @@ | 5972 let ykeep= @@ |
5762 | 5973 |
5763 " find a character not in the "hide" string to use as a separator for :g and :v commands | 5974 " find a character not in the "hide" string to use as a separator for :g and :v commands |
5764 " How-it-works: take the hiding command, convert it into a range. Duplicate | 5975 " How-it-works: take the hiding command, convert it into a range. Duplicate |
5765 " characters don't matter. Remove all such characters from the '/~...90' | 5976 " characters don't matter. Remove all such characters from the '/~...90' |
5774 let listhide = substitute(listhide,'^.\{-},\(.*\)$','\1','e') | 5985 let listhide = substitute(listhide,'^.\{-},\(.*\)$','\1','e') |
5775 else | 5986 else |
5776 let hide = listhide | 5987 let hide = listhide |
5777 let listhide = "" | 5988 let listhide = "" |
5778 endif | 5989 endif |
5990 " call Decho("hide<".hide."> listhide<".listhide.'>','~'.expand("<slnum>")) | |
5779 | 5991 |
5780 " Prune the list by hiding any files which match | 5992 " Prune the list by hiding any files which match |
5781 if g:netrw_hide == 1 | 5993 if g:netrw_hide == 1 |
5782 " call Decho("hiding<".hide."> listhide<".listhide.">",'~'.expand("<slnum>")) | 5994 " call Decho("..hiding<".hide.">",'~'.expand("<slnum>")) |
5783 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d' | 5995 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'d' |
5784 elseif g:netrw_hide == 2 | 5996 elseif g:netrw_hide == 2 |
5785 " call Decho("showing<".hide."> listhide<".listhide.">",'~'.expand("<slnum>")) | 5997 " call Decho("..showing<".hide.">",'~'.expand("<slnum>")) |
5786 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'s@^@ /-KEEP-/ @' | 5998 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$g'.sep.hide.sep.'s@^@ /-KEEP-/ @' |
5787 endif | 5999 endif |
6000 " call Decho("..result: ".string(getline(w:netrw_bannercnt,'$')),'~'.expand("<slnum>")) | |
5788 endwhile | 6001 endwhile |
5789 if g:netrw_hide == 2 | 6002 if g:netrw_hide == 2 |
5790 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$v@^ /-KEEP-/ @d' | 6003 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$v@^ /-KEEP-/ @d' |
6004 " call Decho("..v KEEP: ".string(getline(w:netrw_bannercnt,'$')),'~'.expand("<slnum>")) | |
5791 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s@^\%( /-KEEP-/ \)\+@@e' | 6005 exe 'sil! NetrwKeepj '.w:netrw_bannercnt.',$s@^\%( /-KEEP-/ \)\+@@e' |
6006 " call Decho("..g KEEP: ".string(getline(w:netrw_bannercnt,'$')),'~'.expand("<slnum>")) | |
5792 endif | 6007 endif |
5793 | 6008 |
5794 " remove any blank lines that have somehow remained. | 6009 " remove any blank lines that have somehow remained. |
5795 " This seems to happen under Windows. | 6010 " This seems to happen under Windows. |
5796 exe 'sil! NetrwKeepj 1,$g@^\s*$@d' | 6011 exe 'sil! NetrwKeepj 1,$g@^\s*$@d' |
5852 else | 6067 else |
5853 call mkdir(fullnewdir,"p") | 6068 call mkdir(fullnewdir,"p") |
5854 endif | 6069 endif |
5855 else | 6070 else |
5856 let netrw_origdir= s:NetrwGetcwd(1) | 6071 let netrw_origdir= s:NetrwGetcwd(1) |
5857 call s:NetrwLcd(b:netrw_curdir) | 6072 if s:NetrwLcd(b:netrw_curdir) |
6073 " call Dret("s:NetrwMakeDir : lcd failure") | |
6074 return | |
6075 endif | |
5858 " call Decho("netrw_origdir<".netrw_origdir.">: lcd b:netrw_curdir<".fnameescape(b:netrw_curdir).">",'~'.expand("<slnum>")) | 6076 " call Decho("netrw_origdir<".netrw_origdir.">: lcd b:netrw_curdir<".fnameescape(b:netrw_curdir).">",'~'.expand("<slnum>")) |
5859 call s:NetrwExe("sil! !".g:netrw_localmkdir.' '.s:ShellEscape(newdirname,1)) | 6077 call s:NetrwExe("sil! !".g:netrw_localmkdir.g:netrw_localmkdiropt.' '.s:ShellEscape(newdirname,1)) |
5860 if v:shell_error != 0 | 6078 if v:shell_error != 0 |
5861 let @@= ykeep | 6079 let @@= ykeep |
5862 call netrw#ErrorMsg(s:ERROR,"consider setting g:netrw_localmkdir<".g:netrw_localmkdir."> to something that works",80) | 6080 call netrw#ErrorMsg(s:ERROR,"consider setting g:netrw_localmkdir<".g:netrw_localmkdir."> to something that works",80) |
5863 " call Dret("s:NetrwMakeDir : failed: sil! !".g:netrw_localmkdir.' '.s:ShellEscape(newdirname,1)) | 6081 " call Dret("s:NetrwMakeDir : failed: sil! !".g:netrw_localmkdir.' '.s:ShellEscape(newdirname,1)) |
5864 return | 6082 return |
5865 endif | 6083 endif |
5866 if !g:netrw_keepdir | 6084 if !g:netrw_keepdir |
5867 " call Decho("restoring netrw_origdir since g:netrw_keepdir=".g:netrw_keepdir,'~'.expand("<slnum>")) | 6085 " call Decho("restoring netrw_origdir since g:netrw_keepdir=".g:netrw_keepdir,'~'.expand("<slnum>")) |
5868 call s:NetrwLcd(netrw_origdir) | 6086 if s:NetrwLcd(netrw_origdir) |
6087 " call Dret("s:NetrwBrowse : lcd failure") | |
6088 return | |
6089 endif | |
5869 endif | 6090 endif |
5870 endif | 6091 endif |
5871 | 6092 |
5872 if v:shell_error == 0 | 6093 if v:shell_error == 0 |
5873 " refresh listing | 6094 " refresh listing |
5975 " --------------------------------------------------------------------- | 6196 " --------------------------------------------------------------------- |
5976 " s:NetrwMaps: {{{2 | 6197 " s:NetrwMaps: {{{2 |
5977 fun! s:NetrwMaps(islocal) | 6198 fun! s:NetrwMaps(islocal) |
5978 " call Dfunc("s:NetrwMaps(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">") | 6199 " call Dfunc("s:NetrwMaps(islocal=".a:islocal.") b:netrw_curdir<".b:netrw_curdir.">") |
5979 | 6200 |
6201 " mouse <Plug> maps: {{{3 | |
5980 if g:netrw_mousemaps && g:netrw_retmap | 6202 if g:netrw_mousemaps && g:netrw_retmap |
5981 " call Decho("set up Rexplore 2-leftmouse",'~'.expand("<slnum>")) | 6203 " call Decho("set up Rexplore 2-leftmouse",'~'.expand("<slnum>")) |
5982 if !hasmapto("<Plug>NetrwReturn") | 6204 if !hasmapto("<Plug>NetrwReturn") |
5983 if maparg("<2-leftmouse>","n") == "" || maparg("<2-leftmouse>","n") =~ '^-$' | 6205 if maparg("<2-leftmouse>","n") == "" || maparg("<2-leftmouse>","n") =~ '^-$' |
5984 " call Decho("making map for 2-leftmouse",'~'.expand("<slnum>")) | 6206 " call Decho("making map for 2-leftmouse",'~'.expand("<slnum>")) |
5990 endif | 6212 endif |
5991 nno <silent> <Plug>NetrwReturn :Rexplore<cr> | 6213 nno <silent> <Plug>NetrwReturn :Rexplore<cr> |
5992 " call Decho("made <Plug>NetrwReturn map",'~'.expand("<slnum>")) | 6214 " call Decho("made <Plug>NetrwReturn map",'~'.expand("<slnum>")) |
5993 endif | 6215 endif |
5994 | 6216 |
6217 " generate default <Plug> maps {{{3 | |
6218 if !hasmapto('<Plug>NetrwHide') |nmap <buffer> <silent> <nowait> a <Plug>NetrwHide_a|endif | |
6219 if !hasmapto('<Plug>NetrwBrowseUpDir') |nmap <buffer> <silent> <nowait> - <Plug>NetrwBrowseUpDir |endif | |
6220 if !hasmapto('<Plug>NetrwOpenFile') |nmap <buffer> <silent> <nowait> % <Plug>NetrwOpenFile|endif | |
6221 if !hasmapto('<Plug>NetrwBadd_cb') |nmap <buffer> <silent> <nowait> cb <Plug>NetrwBadd_cb|endif | |
6222 if !hasmapto('<Plug>NetrwBadd_cB') |nmap <buffer> <silent> <nowait> cB <Plug>NetrwBadd_cB|endif | |
6223 if !hasmapto('<Plug>NetrwLcd') |nmap <buffer> <silent> <nowait> cd <Plug>NetrwLcd|endif | |
6224 if !hasmapto('<Plug>NetrwSetChgwin') |nmap <buffer> <silent> <nowait> C <Plug>NetrwSetChgwin|endif | |
6225 if !hasmapto('<Plug>NetrwRefresh') |nmap <buffer> <silent> <nowait> <c-l> <Plug>NetrwRefresh|endif | |
6226 if !hasmapto('<Plug>NetrwLocalBrowseCheck') |nmap <buffer> <silent> <nowait> <cr> <Plug>NetrwLocalBrowseCheck|endif | |
6227 if !hasmapto('<Plug>NetrwServerEdit') |nmap <buffer> <silent> <nowait> <c-r> <Plug>NetrwServerEdit|endif | |
6228 if !hasmapto('<Plug>NetrwMakeDir') |nmap <buffer> <silent> <nowait> d <Plug>NetrwMakeDir|endif | |
6229 if !hasmapto('<Plug>NetrwBookHistHandler_gb')|nmap <buffer> <silent> <nowait> gb <Plug>NetrwBookHistHandler_gb|endif | |
6230 " --------------------------------------------------------------------- | |
6231 " if !hasmapto('<Plug>NetrwForceChgDir') |nmap <buffer> <silent> <nowait> gd <Plug>NetrwForceChgDir|endif | |
6232 " if !hasmapto('<Plug>NetrwForceFile') |nmap <buffer> <silent> <nowait> gf <Plug>NetrwForceFile|endif | |
6233 " if !hasmapto('<Plug>NetrwHidden') |nmap <buffer> <silent> <nowait> gh <Plug>NetrwHidden|endif | |
6234 " if !hasmapto('<Plug>NetrwSetTreetop') |nmap <buffer> <silent> <nowait> gn <Plug>NetrwSetTreetop|endif | |
6235 " if !hasmapto('<Plug>NetrwChgPerm') |nmap <buffer> <silent> <nowait> gp <Plug>NetrwChgPerm|endif | |
6236 " if !hasmapto('<Plug>NetrwBannerCtrl') |nmap <buffer> <silent> <nowait> I <Plug>NetrwBannerCtrl|endif | |
6237 " if !hasmapto('<Plug>NetrwListStyle') |nmap <buffer> <silent> <nowait> i <Plug>NetrwListStyle|endif | |
6238 " if !hasmapto('<Plug>NetrwMarkMoveMF2Arglist')|nmap <buffer> <silent> <nowait> ma <Plug>NetrwMarkMoveMF2Arglist|endif | |
6239 " if !hasmapto('<Plug>NetrwMarkMoveArglist2MF')|nmap <buffer> <silent> <nowait> mA <Plug>NetrwMarkMoveArglist2MF|endif | |
6240 " if !hasmapto('<Plug>NetrwBookHistHandler_mA')|nmap <buffer> <silent> <nowait> mb <Plug>NetrwBookHistHandler_mA|endif | |
6241 " if !hasmapto('<Plug>NetrwBookHistHandler_mB')|nmap <buffer> <silent> <nowait> mB <Plug>NetrwBookHistHandler_mB|endif | |
6242 " if !hasmapto('<Plug>NetrwMarkFileCopy') |nmap <buffer> <silent> <nowait> mc <Plug>NetrwMarkFileCopy|endif | |
6243 " if !hasmapto('<Plug>NetrwMarkFileDiff') |nmap <buffer> <silent> <nowait> md <Plug>NetrwMarkFileDiff|endif | |
6244 " if !hasmapto('<Plug>NetrwMarkFileEdit') |nmap <buffer> <silent> <nowait> me <Plug>NetrwMarkFileEdit|endif | |
6245 " if !hasmapto('<Plug>NetrwMarkFile') |nmap <buffer> <silent> <nowait> mf <Plug>NetrwMarkFile|endif | |
6246 " if !hasmapto('<Plug>NetrwUnmarkList') |nmap <buffer> <silent> <nowait> mF <Plug>NetrwUnmarkList|endif | |
6247 " if !hasmapto('<Plug>NetrwMarkFileGrep') |nmap <buffer> <silent> <nowait> mg <Plug>NetrwMarkFileGrep|endif | |
6248 " if !hasmapto('<Plug>NetrwMarkHideSfx') |nmap <buffer> <silent> <nowait> mh <Plug>NetrwMarkHideSfx|endif | |
6249 " if !hasmapto('<Plug>NetrwMarkFileMove') |nmap <buffer> <silent> <nowait> mm <Plug>NetrwMarkFileMove|endif | |
6250 " if !hasmapto('<Plug>NetrwMarkFilePrint') |nmap <buffer> <silent> <nowait> mp <Plug>NetrwMarkFilePrint|endif | |
6251 " if !hasmapto('<Plug>NetrwMarkFileRegexp') |nmap <buffer> <silent> <nowait> mr <Plug>NetrwMarkFileRegexp|endif | |
6252 " if !hasmapto('<Plug>NetrwMarkFileSource') |nmap <buffer> <silent> <nowait> ms <Plug>NetrwMarkFileSource|endif | |
6253 " if !hasmapto('<Plug>NetrwMarkFileTag') |nmap <buffer> <silent> <nowait> mT <Plug>NetrwMarkFileTag|endif | |
6254 " if !hasmapto('<Plug>NetrwMarkFileTgt') |nmap <buffer> <silent> <nowait> mt <Plug>NetrwMarkFileTgt|endif | |
6255 " if !hasmapto('<Plug>NetrwUnMarkFile') |nmap <buffer> <silent> <nowait> mu <Plug>NetrwUnMarkFile|endif | |
6256 " if !hasmapto('<Plug>NetrwMarkFileVimCmd') |nmap <buffer> <silent> <nowait> mv <Plug>NetrwMarkFileVimCmd|endif | |
6257 " if !hasmapto('<Plug>NetrwMarkFileExe_mx') |nmap <buffer> <silent> <nowait> mx <Plug>NetrwMarkFileExe_mx|endif | |
6258 " if !hasmapto('<Plug>NetrwMarkFileExe_mX') |nmap <buffer> <silent> <nowait> mX <Plug>NetrwMarkFileExe_mX|endif | |
6259 " if !hasmapto('<Plug>NetrwMarkFileCompress') |nmap <buffer> <silent> <nowait> mz <Plug>NetrwMarkFileCompress|endif | |
6260 " if !hasmapto('<Plug>NetrwObtain') |nmap <buffer> <silent> <nowait> O <Plug>NetrwObtain|endif | |
6261 " if !hasmapto('<Plug>NetrwSplit_o') |nmap <buffer> <silent> <nowait> o <Plug>NetrwSplit_o|endif | |
6262 " if !hasmapto('<Plug>NetrwPreview') |nmap <buffer> <silent> <nowait> p <Plug>NetrwPreview|endif | |
6263 " if !hasmapto('<Plug>NetrwPrevWinOpen') |nmap <buffer> <silent> <nowait> P <Plug>NetrwPrevWinOpen|endif | |
6264 " if !hasmapto('<Plug>NetrwBookHistHandler_qb')|nmap <buffer> <silent> <nowait> qb <Plug>NetrwBookHistHandler_qb|endif | |
6265 " if !hasmapto('<Plug>NetrwFileInfo') |nmap <buffer> <silent> <nowait> qf <Plug>NetrwFileInfo|endif | |
6266 " if !hasmapto('<Plug>NetrwMarkFileQFEL_qF') |nmap <buffer> <silent> <nowait> qF <Plug>NetrwMarkFileQFEL_qF|endif | |
6267 " if !hasmapto('<Plug>NetrwMarkFileQFEL_qL') |nmap <buffer> <silent> <nowait> qL <Plug>NetrwMarkFileQFEL_qL|endif | |
6268 " if !hasmapto('<Plug>NetrwSortStyle') |nmap <buffer> <silent> <nowait> s <Plug>NetrwSortStyle|endif | |
6269 " if !hasmapto('<Plug>NetSortSequence') |nmap <buffer> <silent> <nowait> S <Plug>NetSortSequence|endif | |
6270 " if !hasmapto('<Plug>NetrwSetTgt_Tb') |nmap <buffer> <silent> <nowait> Tb <Plug>NetrwSetTgt_Tb|endif | |
6271 " if !hasmapto('<Plug>NetrwSetTgt_Th') |nmap <buffer> <silent> <nowait> Th <Plug>NetrwSetTgt_Th|endif | |
6272 " if !hasmapto('<Plug>NetrwSplit_t') |nmap <buffer> <silent> <nowait> t <Plug>NetrwSplit_t|endif | |
6273 " if !hasmapto('<Plug>NetrwBookHistHandler_u') |nmap <buffer> <silent> <nowait> u <Plug>NetrwBookHistHandler_u|endif | |
6274 " if !hasmapto('<Plug>NetrwBookHistHandler_U') |nmap <buffer> <silent> <nowait> U <Plug>NetrwBookHistHandler_U|endif | |
6275 " if !hasmapto('<Plug>NetrwSplit_v') |nmap <buffer> <silent> <nowait> v <Plug>NetrwSplit_v|endif | |
6276 " if !hasmapto('<Plug>NetrwBrowseX') |nmap <buffer> <silent> <nowait> x <Plug>NetrwBrowseX|endif | |
6277 " if !hasmapto('<Plug>NetrwLocalExecute') |nmap <buffer> <silent> <nowait> X <Plug>NetrwLocalExecute|endif | |
6278 | |
5995 if a:islocal | 6279 if a:islocal |
5996 " call Decho("make local maps",'~'.expand("<slnum>")) | 6280 " call Decho("make local maps",'~'.expand("<slnum>")) |
5997 " local normal-mode maps | 6281 " local normal-mode maps {{{3 |
5998 nnoremap <buffer> <silent> <nowait> a :<c-u>call <SID>NetrwHide(1)<cr> | 6282 nnoremap <buffer> <silent> <Plug>NetrwHide_a :<c-u>call <SID>NetrwHide(1)<cr> |
5999 nnoremap <buffer> <silent> <nowait> - :<c-u>call <SID>NetrwBrowseUpDir(1)<cr> | 6283 nnoremap <buffer> <silent> <Plug>NetrwBrowseUpDir :<c-u>call <SID>NetrwBrowseUpDir(1)<cr> |
6000 nnoremap <buffer> <silent> <nowait> % :<c-u>call <SID>NetrwOpenFile(1)<cr> | 6284 nnoremap <buffer> <silent> <Plug>NetrwOpenFile :<c-u>call <SID>NetrwOpenFile(1)<cr> |
6001 nnoremap <buffer> <silent> <nowait> c :<c-u>call <SID>NetrwLcd(b:netrw_curdir)<cr> | 6285 nnoremap <buffer> <silent> <Plug>NetrwBadd_cb :<c-u>call <SID>NetrwBadd(1,0)<cr> |
6002 nnoremap <buffer> <silent> <nowait> C :<c-u>call <SID>NetrwSetChgwin()<cr> | 6286 nnoremap <buffer> <silent> <Plug>NetrwBadd_cB :<c-u>call <SID>NetrwBadd(1,1)<cr> |
6003 nnoremap <buffer> <silent> <nowait> <cr> :<c-u>call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr> | 6287 nnoremap <buffer> <silent> <Plug>NetrwLcd :<c-u>call <SID>NetrwLcd(b:netrw_curdir)<cr> |
6004 nnoremap <buffer> <silent> <nowait> <c-r> :<c-u>call <SID>NetrwServerEdit(3,<SID>NetrwGetWord())<cr> | 6288 nnoremap <buffer> <silent> <Plug>NetrwSetChgwin :<c-u>call <SID>NetrwSetChgwin()<cr> |
6005 nnoremap <buffer> <silent> <nowait> d :<c-u>call <SID>NetrwMakeDir("")<cr> | 6289 nnoremap <buffer> <silent> <Plug>NetrwLocalBrowseCheck :<c-u>call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr> |
6006 nnoremap <buffer> <silent> <nowait> gb :<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr> | 6290 nnoremap <buffer> <silent> <Plug>NetrwServerEdit :<c-u>call <SID>NetrwServerEdit(3,<SID>NetrwGetWord())<cr> |
6291 nnoremap <buffer> <silent> <Plug>NetrwMakeDir :<c-u>call <SID>NetrwMakeDir("")<cr> | |
6292 nnoremap <buffer> <silent> <Plug>NetrwBookHistHandler_gb :<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr> | |
6293 " --------------------------------------------------------------------- | |
6007 nnoremap <buffer> <silent> <nowait> gd :<c-u>call <SID>NetrwForceChgDir(1,<SID>NetrwGetWord())<cr> | 6294 nnoremap <buffer> <silent> <nowait> gd :<c-u>call <SID>NetrwForceChgDir(1,<SID>NetrwGetWord())<cr> |
6008 nnoremap <buffer> <silent> <nowait> gf :<c-u>call <SID>NetrwForceFile(1,<SID>NetrwGetWord())<cr> | 6295 nnoremap <buffer> <silent> <nowait> gf :<c-u>call <SID>NetrwForceFile(1,<SID>NetrwGetWord())<cr> |
6009 nnoremap <buffer> <silent> <nowait> gh :<c-u>call <SID>NetrwHidden(1)<cr> | 6296 nnoremap <buffer> <silent> <nowait> gh :<c-u>call <SID>NetrwHidden(1)<cr> |
6010 nnoremap <buffer> <silent> <nowait> gn :<c-u>call netrw#SetTreetop(<SID>NetrwGetWord())<cr> | 6297 nnoremap <buffer> <silent> <nowait> gn :<c-u>call netrw#SetTreetop(0,<SID>NetrwGetWord())<cr> |
6011 nnoremap <buffer> <silent> <nowait> gp :<c-u>call <SID>NetrwChgPerm(1,b:netrw_curdir)<cr> | 6298 nnoremap <buffer> <silent> <nowait> gp :<c-u>call <SID>NetrwChgPerm(1,b:netrw_curdir)<cr> |
6012 nnoremap <buffer> <silent> <nowait> I :<c-u>call <SID>NetrwBannerCtrl(1)<cr> | 6299 nnoremap <buffer> <silent> <nowait> I :<c-u>call <SID>NetrwBannerCtrl(1)<cr> |
6013 nnoremap <buffer> <silent> <nowait> i :<c-u>call <SID>NetrwListStyle(1)<cr> | 6300 nnoremap <buffer> <silent> <nowait> i :<c-u>call <SID>NetrwListStyle(1)<cr> |
6014 nnoremap <buffer> <silent> <nowait> ma :<c-u>call <SID>NetrwMarkFileArgList(1,0)<cr> | 6301 nnoremap <buffer> <silent> <nowait> ma :<c-u>call <SID>NetrwMarkFileArgList(1,0)<cr> |
6015 nnoremap <buffer> <silent> <nowait> mA :<c-u>call <SID>NetrwMarkFileArgList(1,1)<cr> | 6302 nnoremap <buffer> <silent> <nowait> mA :<c-u>call <SID>NetrwMarkFileArgList(1,1)<cr> |
6039 nnoremap <buffer> <silent> <nowait> P :<c-u>call <SID>NetrwPrevWinOpen(1)<cr> | 6326 nnoremap <buffer> <silent> <nowait> P :<c-u>call <SID>NetrwPrevWinOpen(1)<cr> |
6040 nnoremap <buffer> <silent> <nowait> qb :<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr> | 6327 nnoremap <buffer> <silent> <nowait> qb :<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr> |
6041 nnoremap <buffer> <silent> <nowait> qf :<c-u>call <SID>NetrwFileInfo(1,<SID>NetrwGetWord())<cr> | 6328 nnoremap <buffer> <silent> <nowait> qf :<c-u>call <SID>NetrwFileInfo(1,<SID>NetrwGetWord())<cr> |
6042 nnoremap <buffer> <silent> <nowait> qF :<c-u>call <SID>NetrwMarkFileQFEL(1,getqflist())<cr> | 6329 nnoremap <buffer> <silent> <nowait> qF :<c-u>call <SID>NetrwMarkFileQFEL(1,getqflist())<cr> |
6043 nnoremap <buffer> <silent> <nowait> qL :<c-u>call <SID>NetrwMarkFileQFEL(1,getloclist(v:count))<cr> | 6330 nnoremap <buffer> <silent> <nowait> qL :<c-u>call <SID>NetrwMarkFileQFEL(1,getloclist(v:count))<cr> |
6044 nnoremap <buffer> <silent> <nowait> r :<c-u>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> | |
6045 nnoremap <buffer> <silent> <nowait> s :call <SID>NetrwSortStyle(1)<cr> | 6331 nnoremap <buffer> <silent> <nowait> s :call <SID>NetrwSortStyle(1)<cr> |
6046 nnoremap <buffer> <silent> <nowait> S :<c-u>call <SID>NetSortSequence(1)<cr> | 6332 nnoremap <buffer> <silent> <nowait> S :<c-u>call <SID>NetSortSequence(1)<cr> |
6047 nnoremap <buffer> <silent> <nowait> Tb :<c-u>call <SID>NetrwSetTgt(1,'b',v:count1)<cr> | 6333 nnoremap <buffer> <silent> <nowait> Tb :<c-u>call <SID>NetrwSetTgt(1,'b',v:count1)<cr> |
6048 nnoremap <buffer> <silent> <nowait> t :call <SID>NetrwSplit(4)<cr> | 6334 nnoremap <buffer> <silent> <nowait> t :call <SID>NetrwSplit(4)<cr> |
6049 nnoremap <buffer> <silent> <nowait> Th :<c-u>call <SID>NetrwSetTgt(1,'h',v:count)<cr> | 6335 nnoremap <buffer> <silent> <nowait> Th :<c-u>call <SID>NetrwSetTgt(1,'h',v:count)<cr> |
6050 nnoremap <buffer> <silent> <nowait> u :<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr> | 6336 nnoremap <buffer> <silent> <nowait> u :<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr> |
6051 nnoremap <buffer> <silent> <nowait> U :<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr> | 6337 nnoremap <buffer> <silent> <nowait> U :<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr> |
6052 nnoremap <buffer> <silent> <nowait> v :call <SID>NetrwSplit(5)<cr> | 6338 nnoremap <buffer> <silent> <nowait> v :call <SID>NetrwSplit(5)<cr> |
6053 nnoremap <buffer> <silent> <nowait> x :<c-u>call netrw#BrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr> | 6339 nnoremap <buffer> <silent> <nowait> x :<c-u>call netrw#BrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr> |
6054 nnoremap <buffer> <silent> <nowait> X :<c-u>call <SID>NetrwLocalExecute(expand("<cword>"))"<cr> | 6340 nnoremap <buffer> <silent> <nowait> X :<c-u>call <SID>NetrwLocalExecute(expand("<cword>"))"<cr> |
6055 " " local insert-mode maps | 6341 |
6056 " inoremap <buffer> <silent> <nowait> a <c-o>:call <SID>NetrwHide(1)<cr> | 6342 nnoremap <buffer> <silent> <nowait> r :<c-u>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> |
6057 " inoremap <buffer> <silent> <nowait> c <c-o>:exe "NetrwKeepj lcd ".fnameescape(b:netrw_curdir)<cr> | |
6058 " inoremap <buffer> <silent> <nowait> c <c-o>:call <SID>NetrwLcd(b:netrw_curdir)<cr> | |
6059 " inoremap <buffer> <silent> <nowait> C <c-o>:call <SID>NetrwSetChgwin()<cr> | |
6060 " inoremap <buffer> <silent> <nowait> % <c-o>:call <SID>NetrwOpenFile(1)<cr> | |
6061 " inoremap <buffer> <silent> <nowait> - <c-o>:call <SID>NetrwBrowseUpDir(1)<cr> | |
6062 " inoremap <buffer> <silent> <nowait> <cr> <c-o>:call netrw#LocalBrowseCheck(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord()))<cr> | |
6063 " inoremap <buffer> <silent> <nowait> d <c-o>:call <SID>NetrwMakeDir("")<cr> | |
6064 " inoremap <buffer> <silent> <nowait> gb <c-o>:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr> | |
6065 " inoremap <buffer> <silent> <nowait> gh <c-o>:<c-u>call <SID>NetrwHidden(1)<cr> | |
6066 " nnoremap <buffer> <silent> <nowait> gn :<c-u>call netrw#SetTreetop(<SID>NetrwGetWord())<cr> | |
6067 " inoremap <buffer> <silent> <nowait> gp <c-o>:<c-u>call <SID>NetrwChgPerm(1,b:netrw_curdir)<cr> | |
6068 " inoremap <buffer> <silent> <nowait> I <c-o>:call <SID>NetrwBannerCtrl(1)<cr> | |
6069 " inoremap <buffer> <silent> <nowait> i <c-o>:call <SID>NetrwListStyle(1)<cr> | |
6070 " inoremap <buffer> <silent> <nowait> mb <c-o>:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr> | |
6071 " inoremap <buffer> <silent> <nowait> mB <c-o>:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr> | |
6072 " inoremap <buffer> <silent> <nowait> mc <c-o>:<c-u>call <SID>NetrwMarkFileCopy(1)<cr> | |
6073 " inoremap <buffer> <silent> <nowait> md <c-o>:<c-u>call <SID>NetrwMarkFileDiff(1)<cr> | |
6074 " inoremap <buffer> <silent> <nowait> me <c-o>:<c-u>call <SID>NetrwMarkFileEdit(1)<cr> | |
6075 " inoremap <buffer> <silent> <nowait> mf <c-o>:<c-u>call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr> | |
6076 " inoremap <buffer> <silent> <nowait> mg <c-o>:<c-u>call <SID>NetrwMarkFileGrep(1)<cr> | |
6077 " inoremap <buffer> <silent> <nowait> mh <c-o>:<c-u>call <SID>NetrwMarkHideSfx(1)<cr> | |
6078 " inoremap <buffer> <silent> <nowait> mm <c-o>:<c-u>call <SID>NetrwMarkFileMove(1)<cr> | |
6079 " inoremap <buffer> <silent> <nowait> mp <c-o>:<c-u>call <SID>NetrwMarkFilePrint(1)<cr> | |
6080 " inoremap <buffer> <silent> <nowait> mr <c-o>:<c-u>call <SID>NetrwMarkFileRegexp(1)<cr> | |
6081 " inoremap <buffer> <silent> <nowait> ms <c-o>:<c-u>call <SID>NetrwMarkFileSource(1)<cr> | |
6082 " inoremap <buffer> <silent> <nowait> mT <c-o>:<c-u>call <SID>NetrwMarkFileTag(1)<cr> | |
6083 " inoremap <buffer> <silent> <nowait> mt <c-o>:<c-u>call <SID>NetrwMarkFileTgt(1)<cr> | |
6084 " inoremap <buffer> <silent> <nowait> mu <c-o>:<c-u>call <SID>NetrwUnMarkFile(1)<cr> | |
6085 " inoremap <buffer> <silent> <nowait> mv <c-o>:<c-u>call <SID>NetrwMarkFileVimCmd(1)<cr> | |
6086 " inoremap <buffer> <silent> <nowait> mx <c-o>:<c-u>call <SID>NetrwMarkFileExe(1,0)<cr> | |
6087 " inoremap <buffer> <silent> <nowait> mX <c-o>:<c-u>call <SID>NetrwMarkFileExe(1,1)<cr> | |
6088 " inoremap <buffer> <silent> <nowait> mz <c-o>:<c-u>call <SID>NetrwMarkFileCompress(1)<cr> | |
6089 " inoremap <buffer> <silent> <nowait> O <c-o>:call <SID>NetrwObtain(1)<cr> | |
6090 " inoremap <buffer> <silent> <nowait> o <c-o>:call <SID>NetrwSplit(3)<cr> | |
6091 " inoremap <buffer> <silent> <nowait> p <c-o>:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr> | |
6092 " inoremap <buffer> <silent> <nowait> P <c-o>:call <SID>NetrwPrevWinOpen(1)<cr> | |
6093 " inoremap <buffer> <silent> <nowait> qb <c-o>:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr> | |
6094 " inoremap <buffer> <silent> <nowait> qf <c-o>:<c-u>call <SID>NetrwFileInfo(1,<SID>NetrwGetWord())<cr> | |
6095 " inoremap <buffer> <silent> <nowait> qF :<c-u>call <SID>NetrwMarkFileQFEL(1,getqflist())<cr> | |
6096 " inoremap <buffer> <silent> <nowait> qL :<c-u>call <SID>NetrwMarkFileQFEL(1,getloclist(v:count))<cr> | |
6097 " inoremap <buffer> <silent> <nowait> 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> | |
6098 " inoremap <buffer> <silent> <nowait> s <c-o>:call <SID>NetrwSortStyle(1)<cr> | |
6099 " inoremap <buffer> <silent> <nowait> S <c-o>:call <SID>NetSortSequence(1)<cr> | |
6100 " inoremap <buffer> <silent> <nowait> t <c-o>:call <SID>NetrwSplit(4)<cr> | |
6101 " inoremap <buffer> <silent> <nowait> Tb <c-o>:<c-u>call <SID>NetrwSetTgt(1,'b',v:count1)<cr> | |
6102 " inoremap <buffer> <silent> <nowait> Th <c-o>:<c-u>call <SID>NetrwSetTgt(1,'h',v:count)<cr> | |
6103 " inoremap <buffer> <silent> <nowait> u <c-o>:<c-u>call <SID>NetrwBookHistHandler(4,expand("%"))<cr> | |
6104 " inoremap <buffer> <silent> <nowait> U <c-o>:<c-u>call <SID>NetrwBookHistHandler(5,expand("%"))<cr> | |
6105 " inoremap <buffer> <silent> <nowait> v <c-o>:call <SID>NetrwSplit(5)<cr> | |
6106 " inoremap <buffer> <silent> <nowait> x <c-o>:call netrw#BrowseX(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),0),0)"<cr> | |
6107 if !hasmapto('<Plug>NetrwHideEdit') | 6343 if !hasmapto('<Plug>NetrwHideEdit') |
6108 nmap <buffer> <unique> <c-h> <Plug>NetrwHideEdit | 6344 nmap <buffer> <unique> <c-h> <Plug>NetrwHideEdit |
6109 " imap <buffer> <unique> <c-h> <c-o><Plug>NetrwHideEdit | |
6110 endif | 6345 endif |
6111 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(1)<cr> | 6346 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(1)<cr> |
6112 if !hasmapto('<Plug>NetrwRefresh') | 6347 if !hasmapto('<Plug>NetrwRefresh') |
6113 nmap <buffer> <unique> <c-l> <Plug>NetrwRefresh | 6348 nmap <buffer> <unique> <c-l> <Plug>NetrwRefresh |
6114 " imap <buffer> <unique> <c-l> <c-o><Plug>NetrwRefresh | |
6115 endif | 6349 endif |
6116 nnoremap <buffer> <silent> <Plug>NetrwRefresh <c-l>:call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,(w:netrw_liststyle == 3)? w:netrw_treetop : './'))<cr> | 6350 nnoremap <buffer> <silent> <Plug>NetrwRefresh <c-l>:call <SID>NetrwRefresh(1,<SID>NetrwBrowseChgDir(1,(w:netrw_liststyle == 3)? w:netrw_treetop : './'))<cr> |
6117 if s:didstarstar || !mapcheck("<s-down>","n") | 6351 if s:didstarstar || !mapcheck("<s-down>","n") |
6118 nnoremap <buffer> <silent> <s-down> :Nexplore<cr> | 6352 nnoremap <buffer> <silent> <s-down> :Nexplore<cr> |
6119 " inoremap <buffer> <silent> <s-down> <c-o>:Nexplore<cr> | |
6120 endif | 6353 endif |
6121 if s:didstarstar || !mapcheck("<s-up>","n") | 6354 if s:didstarstar || !mapcheck("<s-up>","n") |
6122 nnoremap <buffer> <silent> <s-up> :Pexplore<cr> | 6355 nnoremap <buffer> <silent> <s-up> :Pexplore<cr> |
6123 " inoremap <buffer> <silent> <s-up> <c-o>:Pexplore<cr> | |
6124 endif | 6356 endif |
6125 if !hasmapto('<Plug>NetrwTreeSqueeze') | 6357 if !hasmapto('<Plug>NetrwTreeSqueeze') |
6126 nmap <buffer> <silent> <nowait> <s-cr> <Plug>NetrwTreeSqueeze | 6358 nmap <buffer> <silent> <nowait> <s-cr> <Plug>NetrwTreeSqueeze |
6127 " imap <buffer> <silent> <nowait> <s-cr> <c-o><Plug>NetrwTreeSqueeze | |
6128 endif | 6359 endif |
6129 nnoremap <buffer> <silent> <Plug>NetrwTreeSqueeze :call <SID>TreeSqueezeDir(1)<cr> | 6360 nnoremap <buffer> <silent> <Plug>NetrwTreeSqueeze :call <SID>TreeSqueezeDir(1)<cr> |
6130 let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape) | 6361 let mapsafecurdir = escape(b:netrw_curdir, s:netrw_map_escape) |
6131 if g:netrw_mousemaps == 1 | 6362 if g:netrw_mousemaps == 1 |
6132 nmap <buffer> <leftmouse> <Plug>NetrwLeftmouse | 6363 nmap <buffer> <leftmouse> <Plug>NetrwLeftmouse |
6364 nmap <buffer> <c-leftmouse> <Plug>NetrwCLeftmouse | |
6365 nmap <buffer> <middlemouse> <Plug>NetrwMiddlemouse | |
6366 nmap <buffer> <s-leftmouse> <Plug>NetrwSLeftmouse | |
6367 nmap <buffer> <s-leftdrag> <Plug>NetrwSLeftdrag | |
6368 nmap <buffer> <2-leftmouse> <Plug>Netrw2Leftmouse | |
6369 imap <buffer> <leftmouse> <Plug>ILeftmouse | |
6370 imap <buffer> <middlemouse> <Plug>IMiddlemouse | |
6133 nno <buffer> <silent> <Plug>NetrwLeftmouse <leftmouse>:call <SID>NetrwLeftmouse(1)<cr> | 6371 nno <buffer> <silent> <Plug>NetrwLeftmouse <leftmouse>:call <SID>NetrwLeftmouse(1)<cr> |
6134 nmap <buffer> <c-leftmouse> <Plug>NetrwCLeftmouse | |
6135 nno <buffer> <silent> <Plug>NetrwCLeftmouse <leftmouse>:call <SID>NetrwCLeftmouse(1)<cr> | 6372 nno <buffer> <silent> <Plug>NetrwCLeftmouse <leftmouse>:call <SID>NetrwCLeftmouse(1)<cr> |
6136 nmap <buffer> <middlemouse> <Plug>NetrwMiddlemouse | |
6137 nno <buffer> <silent> <Plug>NetrwMiddlemouse <leftmouse>:call <SID>NetrwPrevWinOpen(1)<cr> | 6373 nno <buffer> <silent> <Plug>NetrwMiddlemouse <leftmouse>:call <SID>NetrwPrevWinOpen(1)<cr> |
6138 nmap <buffer> <s-leftmouse> <Plug>NetrwSLeftmouse | |
6139 nno <buffer> <silent> <Plug>NetrwSLeftmouse <leftmouse>:call <SID>NetrwSLeftmouse(1)<cr> | 6374 nno <buffer> <silent> <Plug>NetrwSLeftmouse <leftmouse>:call <SID>NetrwSLeftmouse(1)<cr> |
6140 nmap <buffer> <s-leftdrag> <Plug>NetrwSLeftdrag | |
6141 nno <buffer> <silent> <Plug>NetrwSLeftdrag <leftmouse>:call <SID>NetrwSLeftdrag(1)<cr> | 6375 nno <buffer> <silent> <Plug>NetrwSLeftdrag <leftmouse>:call <SID>NetrwSLeftdrag(1)<cr> |
6142 nmap <buffer> <2-leftmouse> <Plug>Netrw2Leftmouse | |
6143 nmap <buffer> <silent> <Plug>Netrw2Leftmouse - | 6376 nmap <buffer> <silent> <Plug>Netrw2Leftmouse - |
6144 imap <buffer> <leftmouse> <Plug>ILeftmouse | |
6145 " ino <buffer> <silent> <Plug>ILeftmouse <c-o><leftmouse><c-o>:call <SID>NetrwLeftmouse(1)<cr> | |
6146 imap <buffer> <middlemouse> <Plug>IMiddlemouse | |
6147 " ino <buffer> <silent> <Plug>IMiddlemouse <c-o><leftmouse><c-o>:call <SID>NetrwPrevWinOpen(1)<cr> | |
6148 " imap <buffer> <s-leftmouse> <Plug>ISLeftmouse | |
6149 " ino <buffer> <silent> <Plug>ISLeftmouse <c-o><leftmouse><c-o>:call <SID>NetrwMarkFile(1,<SID>NetrwGetWord())<cr> | |
6150 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 6377 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
6151 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 6378 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
6152 " exe 'inoremap <buffer> <silent> <rightmouse> <c-o><leftmouse><c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | |
6153 endif | 6379 endif |
6154 exe 'nnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 6380 exe 'nnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
6155 exe 'nnoremap <buffer> <silent> <nowait> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 6381 exe 'nnoremap <buffer> <silent> <nowait> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
6156 exe 'nnoremap <buffer> <silent> <nowait> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' | 6382 exe 'nnoremap <buffer> <silent> <nowait> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' |
6157 exe 'nnoremap <buffer> <silent> <nowait> d :call <SID>NetrwMakeDir("")<cr>' | 6383 exe 'nnoremap <buffer> <silent> <nowait> d :call <SID>NetrwMakeDir("")<cr>' |
6158 exe 'vnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 6384 exe 'vnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
6159 exe 'vnoremap <buffer> <silent> <nowait> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | 6385 exe 'vnoremap <buffer> <silent> <nowait> D :call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' |
6160 exe 'vnoremap <buffer> <silent> <nowait> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' | 6386 exe 'vnoremap <buffer> <silent> <nowait> R :call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' |
6161 " exe 'inoremap <buffer> <silent> <nowait> <del> <c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | |
6162 " exe 'inoremap <buffer> <silent> <nowait> D <c-o>:call <SID>NetrwLocalRm("'.mapsafecurdir.'")<cr>' | |
6163 " exe 'inoremap <buffer> <silent> <nowait> R <c-o>:call <SID>NetrwLocalRename("'.mapsafecurdir.'")<cr>' | |
6164 " exe 'inoremap <buffer> <silent> <nowait> d <c-o>:call <SID>NetrwMakeDir("")<cr>' | |
6165 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> | 6387 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> |
6166 | 6388 |
6167 " support user-specified maps | 6389 " support user-specified maps |
6168 call netrw#UserMaps(1) | 6390 call netrw#UserMaps(1) |
6169 | 6391 |
6170 else " remote | 6392 else |
6393 " remote normal-mode maps {{{3 | |
6171 " call Decho("make remote maps",'~'.expand("<slnum>")) | 6394 " call Decho("make remote maps",'~'.expand("<slnum>")) |
6172 call s:RemotePathAnalysis(b:netrw_curdir) | 6395 call s:RemotePathAnalysis(b:netrw_curdir) |
6173 " remote normal-mode maps | 6396 nnoremap <buffer> <silent> <Plug>NetrwHide_a :<c-u>call <SID>NetrwHide(0)<cr> |
6174 nnoremap <buffer> <silent> <nowait> a :<c-u>call <SID>NetrwHide(0)<cr> | 6397 nnoremap <buffer> <silent> <Plug>NetrwBrowseUpDir :<c-u>call <SID>NetrwBrowseUpDir(0)<cr> |
6175 nnoremap <buffer> <silent> <nowait> - :<c-u>call <SID>NetrwBrowseUpDir(0)<cr> | 6398 nnoremap <buffer> <silent> <Plug>NetrwOpenFile :<c-u>call <SID>NetrwOpenFile(0)<cr> |
6176 nnoremap <buffer> <silent> <nowait> % :<c-u>call <SID>NetrwOpenFile(0)<cr> | 6399 nnoremap <buffer> <silent> <Plug>NetrwBadd_cb :<c-u>call <SID>NetrwBadd(0,0)<cr> |
6177 nnoremap <buffer> <silent> <nowait> C :<c-u>call <SID>NetrwSetChgwin()<cr> | 6400 nnoremap <buffer> <silent> <Plug>NetrwBadd_cB :<c-u>call <SID>NetrwBadd(0,1)<cr> |
6178 nnoremap <buffer> <silent> <nowait> <c-l> :<c-u>call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr> | 6401 nnoremap <buffer> <silent> <Plug>NetrwLcd :<c-u>call <SID>NetrwLcd(b:netrw_curdir)<cr> |
6179 nnoremap <buffer> <silent> <nowait> <cr> :<c-u>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()))<cr> | 6402 nnoremap <buffer> <silent> <Plug>NetrwSetChgwin :<c-u>call <SID>NetrwSetChgwin()<cr> |
6180 nnoremap <buffer> <silent> <nowait> <c-r> :<c-u>call <SID>NetrwServerEdit(2,<SID>NetrwGetWord())<cr> | 6403 nnoremap <buffer> <silent> <Plug>NetrwRefresh :<c-u>call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr> |
6181 nnoremap <buffer> <silent> <nowait> gb :<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr> | 6404 nnoremap <buffer> <silent> <Plug>NetrwLocalBrowseCheck :<c-u>call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()))<cr> |
6405 nnoremap <buffer> <silent> <Plug>NetrwServerEdit :<c-u>call <SID>NetrwServerEdit(2,<SID>NetrwGetWord())<cr> | |
6406 nnoremap <buffer> <silent> <Plug>NetrwBookHistHandler_gb :<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr> | |
6407 " --------------------------------------------------------------------- | |
6182 nnoremap <buffer> <silent> <nowait> gd :<c-u>call <SID>NetrwForceChgDir(0,<SID>NetrwGetWord())<cr> | 6408 nnoremap <buffer> <silent> <nowait> gd :<c-u>call <SID>NetrwForceChgDir(0,<SID>NetrwGetWord())<cr> |
6183 nnoremap <buffer> <silent> <nowait> gf :<c-u>call <SID>NetrwForceFile(0,<SID>NetrwGetWord())<cr> | 6409 nnoremap <buffer> <silent> <nowait> gf :<c-u>call <SID>NetrwForceFile(0,<SID>NetrwGetWord())<cr> |
6184 nnoremap <buffer> <silent> <nowait> gh :<c-u>call <SID>NetrwHidden(0)<cr> | 6410 nnoremap <buffer> <silent> <nowait> gh :<c-u>call <SID>NetrwHidden(0)<cr> |
6185 nnoremap <buffer> <silent> <nowait> gp :<c-u>call <SID>NetrwChgPerm(0,b:netrw_curdir)<cr> | 6411 nnoremap <buffer> <silent> <nowait> gp :<c-u>call <SID>NetrwChgPerm(0,b:netrw_curdir)<cr> |
6186 nnoremap <buffer> <silent> <nowait> I :<c-u>call <SID>NetrwBannerCtrl(1)<cr> | 6412 nnoremap <buffer> <silent> <nowait> I :<c-u>call <SID>NetrwBannerCtrl(1)<cr> |
6223 nnoremap <buffer> <silent> <nowait> Th :<c-u>call <SID>NetrwSetTgt(0,'h',v:count)<cr> | 6449 nnoremap <buffer> <silent> <nowait> Th :<c-u>call <SID>NetrwSetTgt(0,'h',v:count)<cr> |
6224 nnoremap <buffer> <silent> <nowait> u :<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr> | 6450 nnoremap <buffer> <silent> <nowait> u :<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr> |
6225 nnoremap <buffer> <silent> <nowait> U :<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr> | 6451 nnoremap <buffer> <silent> <nowait> U :<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr> |
6226 nnoremap <buffer> <silent> <nowait> v :call <SID>NetrwSplit(2)<cr> | 6452 nnoremap <buffer> <silent> <nowait> v :call <SID>NetrwSplit(2)<cr> |
6227 nnoremap <buffer> <silent> <nowait> x :<c-u>call netrw#BrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr> | 6453 nnoremap <buffer> <silent> <nowait> x :<c-u>call netrw#BrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr> |
6228 " " remote insert-mode maps | |
6229 " inoremap <buffer> <silent> <nowait> <cr> <c-o>:call <SID>NetrwBrowse(0,<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()))<cr> | |
6230 " inoremap <buffer> <silent> <nowait> <c-l> <c-o>:call <SID>NetrwRefresh(0,<SID>NetrwBrowseChgDir(0,'./'))<cr> | |
6231 " inoremap <buffer> <silent> <nowait> <s-cr> <c-o>:call <SID>TreeSqueezeDir(0)<cr> | |
6232 " inoremap <buffer> <silent> <nowait> - <c-o>:call <SID>NetrwBrowseUpDir(0)<cr> | |
6233 " inoremap <buffer> <silent> <nowait> a <c-o>:call <SID>NetrwHide(0)<cr> | |
6234 " inoremap <buffer> <silent> <nowait> mb <c-o>:<c-u>call <SID>NetrwBookHistHandler(0,b:netrw_curdir)<cr> | |
6235 " inoremap <buffer> <silent> <nowait> mc <c-o>:<c-u>call <SID>NetrwMarkFileCopy(0)<cr> | |
6236 " inoremap <buffer> <silent> <nowait> md <c-o>:<c-u>call <SID>NetrwMarkFileDiff(0)<cr> | |
6237 " inoremap <buffer> <silent> <nowait> me <c-o>:<c-u>call <SID>NetrwMarkFileEdit(0)<cr> | |
6238 " inoremap <buffer> <silent> <nowait> mf <c-o>:<c-u>call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr> | |
6239 " inoremap <buffer> <silent> <nowait> mg <c-o>:<c-u>call <SID>NetrwMarkFileGrep(0)<cr> | |
6240 " inoremap <buffer> <silent> <nowait> mh <c-o>:<c-u>call <SID>NetrwMarkHideSfx(0)<cr> | |
6241 " inoremap <buffer> <silent> <nowait> mm <c-o>:<c-u>call <SID>NetrwMarkFileMove(0)<cr> | |
6242 " inoremap <buffer> <silent> <nowait> mp <c-o>:<c-u>call <SID>NetrwMarkFilePrint(0)<cr> | |
6243 " inoremap <buffer> <silent> <nowait> mr <c-o>:<c-u>call <SID>NetrwMarkFileRegexp(0)<cr> | |
6244 " inoremap <buffer> <silent> <nowait> ms <c-o>:<c-u>call <SID>NetrwMarkFileSource(0)<cr> | |
6245 " inoremap <buffer> <silent> <nowait> mt <c-o>:<c-u>call <SID>NetrwMarkFileTgt(0)<cr> | |
6246 " inoremap <buffer> <silent> <nowait> mT <c-o>:<c-u>call <SID>NetrwMarkFileTag(0)<cr> | |
6247 " inoremap <buffer> <silent> <nowait> mu <c-o>:<c-u>call <SID>NetrwUnMarkFile(0)<cr> | |
6248 " nnoremap <buffer> <silent> <nowait> mv :<c-u>call <SID>NetrwMarkFileVimCmd(1)<cr> | |
6249 " inoremap <buffer> <silent> <nowait> mx <c-o>:<c-u>call <SID>NetrwMarkFileExe(0,0)<cr> | |
6250 " inoremap <buffer> <silent> <nowait> mX <c-o>:<c-u>call <SID>NetrwMarkFileExe(0,1)<cr> | |
6251 " inoremap <buffer> <silent> <nowait> mv <c-o>:<c-u>call <SID>NetrwMarkFileVimCmd(0)<cr> | |
6252 " inoremap <buffer> <silent> <nowait> mz <c-o>:<c-u>call <SID>NetrwMarkFileCompress(0)<cr> | |
6253 " inoremap <buffer> <silent> <nowait> gb <c-o>:<c-u>call <SID>NetrwBookHistHandler(1,b:netrw_curdir)<cr> | |
6254 " inoremap <buffer> <silent> <nowait> gh <c-o>:<c-u>call <SID>NetrwHidden(0)<cr> | |
6255 " inoremap <buffer> <silent> <nowait> gp <c-o>:<c-u>call <SID>NetrwChgPerm(0,b:netrw_curdir)<cr> | |
6256 " inoremap <buffer> <silent> <nowait> C <c-o>:call <SID>NetrwSetChgwin()<cr> | |
6257 " inoremap <buffer> <silent> <nowait> i <c-o>:call <SID>NetrwListStyle(0)<cr> | |
6258 " inoremap <buffer> <silent> <nowait> I <c-o>:call <SID>NetrwBannerCtrl(1)<cr> | |
6259 " inoremap <buffer> <silent> <nowait> o <c-o>:call <SID>NetrwSplit(0)<cr> | |
6260 " inoremap <buffer> <silent> <nowait> O <c-o>:call <SID>NetrwObtain(0)<cr> | |
6261 " inoremap <buffer> <silent> <nowait> p <c-o>:call <SID>NetrwPreview(<SID>NetrwBrowseChgDir(1,<SID>NetrwGetWord(),1))<cr> | |
6262 " inoremap <buffer> <silent> <nowait> P <c-o>:call <SID>NetrwPrevWinOpen(0)<cr> | |
6263 " inoremap <buffer> <silent> <nowait> qb <c-o>:<c-u>call <SID>NetrwBookHistHandler(2,b:netrw_curdir)<cr> | |
6264 " inoremap <buffer> <silent> <nowait> mB <c-o>:<c-u>call <SID>NetrwBookHistHandler(6,b:netrw_curdir)<cr> | |
6265 " inoremap <buffer> <silent> <nowait> qf <c-o>:<c-u>call <SID>NetrwFileInfo(0,<SID>NetrwGetWord())<cr> | |
6266 " inoremap <buffer> <silent> <nowait> qF :<c-u>call <SID>NetrwMarkFileQFEL(0,getqflist())<cr> | |
6267 " inoremap <buffer> <silent> <nowait> qL :<c-u>call <SID>NetrwMarkFileQFEL(0,getloclist(v:count))<cr> | |
6268 " inoremap <buffer> <silent> <nowait> 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> | |
6269 " inoremap <buffer> <silent> <nowait> s <c-o>:call <SID>NetrwSortStyle(0)<cr> | |
6270 " inoremap <buffer> <silent> <nowait> S <c-o>:call <SID>NetSortSequence(0)<cr> | |
6271 " inoremap <buffer> <silent> <nowait> t <c-o>:call <SID>NetrwSplit(1)<cr> | |
6272 " inoremap <buffer> <silent> <nowait> Tb <c-o>:<c-u>call <SID>NetrwSetTgt('b',v:count1)<cr> | |
6273 " inoremap <buffer> <silent> <nowait> Th <c-o>:<c-u>call <SID>NetrwSetTgt('h',v:count)<cr> | |
6274 " inoremap <buffer> <silent> <nowait> u <c-o>:<c-u>call <SID>NetrwBookHistHandler(4,b:netrw_curdir)<cr> | |
6275 " inoremap <buffer> <silent> <nowait> U <c-o>:<c-u>call <SID>NetrwBookHistHandler(5,b:netrw_curdir)<cr> | |
6276 " inoremap <buffer> <silent> <nowait> v <c-o>:call <SID>NetrwSplit(2)<cr> | |
6277 " inoremap <buffer> <silent> <nowait> x <c-o>:call netrw#BrowseX(<SID>NetrwBrowseChgDir(0,<SID>NetrwGetWord()),1)<cr> | |
6278 " inoremap <buffer> <silent> <nowait> % <c-o>:call <SID>NetrwOpenFile(0)<cr> | |
6279 if !hasmapto('<Plug>NetrwHideEdit') | 6454 if !hasmapto('<Plug>NetrwHideEdit') |
6280 nmap <buffer> <c-h> <Plug>NetrwHideEdit | 6455 nmap <buffer> <c-h> <Plug>NetrwHideEdit |
6281 " imap <buffer> <c-h> <Plug>NetrwHideEdit | |
6282 endif | 6456 endif |
6283 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(0)<cr> | 6457 nnoremap <buffer> <silent> <Plug>NetrwHideEdit :call <SID>NetrwHideEdit(0)<cr> |
6284 if !hasmapto('<Plug>NetrwRefresh') | 6458 if !hasmapto('<Plug>NetrwRefresh') |
6285 nmap <buffer> <c-l> <Plug>NetrwRefresh | 6459 nmap <buffer> <c-l> <Plug>NetrwRefresh |
6286 " imap <buffer> <c-l> <Plug>NetrwRefresh | |
6287 endif | 6460 endif |
6288 if !hasmapto('<Plug>NetrwTreeSqueeze') | 6461 if !hasmapto('<Plug>NetrwTreeSqueeze') |
6289 nmap <buffer> <silent> <nowait> <s-cr> <Plug>NetrwTreeSqueeze | 6462 nmap <buffer> <silent> <nowait> <s-cr> <Plug>NetrwTreeSqueeze |
6290 " imap <buffer> <silent> <nowait> <s-cr> <c-o><Plug>NetrwTreeSqueeze | |
6291 endif | 6463 endif |
6292 nnoremap <buffer> <silent> <Plug>NetrwTreeSqueeze :call <SID>TreeSqueezeDir(0)<cr> | 6464 nnoremap <buffer> <silent> <Plug>NetrwTreeSqueeze :call <SID>TreeSqueezeDir(0)<cr> |
6293 | 6465 |
6294 let mapsafepath = escape(s:path, s:netrw_map_escape) | 6466 let mapsafepath = escape(s:path, s:netrw_map_escape) |
6295 let mapsafeusermach = escape(((s:user == "")? "" : s:user."@").s:machine, s:netrw_map_escape) | 6467 let mapsafeusermach = escape(((s:user == "")? "" : s:user."@").s:machine, s:netrw_map_escape) |
6307 nmap <middlemouse> <Plug>NetrwMiddlemouse | 6479 nmap <middlemouse> <Plug>NetrwMiddlemouse |
6308 nno <buffer> <silent> <middlemouse> <Plug>NetrwMiddlemouse <leftmouse>:call <SID>NetrwPrevWinOpen(0)<cr> | 6480 nno <buffer> <silent> <middlemouse> <Plug>NetrwMiddlemouse <leftmouse>:call <SID>NetrwPrevWinOpen(0)<cr> |
6309 nmap <buffer> <2-leftmouse> <Plug>Netrw2Leftmouse | 6481 nmap <buffer> <2-leftmouse> <Plug>Netrw2Leftmouse |
6310 nmap <buffer> <silent> <Plug>Netrw2Leftmouse - | 6482 nmap <buffer> <silent> <Plug>Netrw2Leftmouse - |
6311 imap <buffer> <leftmouse> <Plug>ILeftmouse | 6483 imap <buffer> <leftmouse> <Plug>ILeftmouse |
6312 " ino <buffer> <silent> <Plug>ILeftmouse <c-o><leftmouse><c-o>:call <SID>NetrwLeftmouse(0)<cr> | |
6313 imap <buffer> <middlemouse> <Plug>IMiddlemouse | 6484 imap <buffer> <middlemouse> <Plug>IMiddlemouse |
6314 " ino <buffer> <silent> <Plug>IMiddlemouse <c-o><leftmouse><c-o>:call <SID>NetrwPrevWinOpen(0)<cr> | |
6315 imap <buffer> <s-leftmouse> <Plug>ISLeftmouse | 6485 imap <buffer> <s-leftmouse> <Plug>ISLeftmouse |
6316 " ino <buffer> <silent> <Plug>ISLeftmouse <c-o><leftmouse><c-o>:call <SID>NetrwMarkFile(0,<SID>NetrwGetWord())<cr> | |
6317 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6486 exe 'nnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6318 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6487 exe 'vnoremap <buffer> <silent> <rightmouse> <leftmouse>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6319 " exe 'inoremap <buffer> <silent> <rightmouse> <c-o><leftmouse><c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
6320 endif | 6488 endif |
6321 exe 'nnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6489 exe 'nnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6322 exe 'nnoremap <buffer> <silent> <nowait> d :call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>' | 6490 exe 'nnoremap <buffer> <silent> <nowait> d :call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>' |
6323 exe 'nnoremap <buffer> <silent> <nowait> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6491 exe 'nnoremap <buffer> <silent> <nowait> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6324 exe 'nnoremap <buffer> <silent> <nowait> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6492 exe 'nnoremap <buffer> <silent> <nowait> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6325 exe 'vnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6493 exe 'vnoremap <buffer> <silent> <nowait> <del> :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6326 exe 'vnoremap <buffer> <silent> <nowait> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6494 exe 'vnoremap <buffer> <silent> <nowait> D :call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6327 exe 'vnoremap <buffer> <silent> <nowait> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | 6495 exe 'vnoremap <buffer> <silent> <nowait> R :call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' |
6328 " exe 'inoremap <buffer> <silent> <nowait> <del> <c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
6329 " exe 'inoremap <buffer> <silent> <nowait> d <c-o>:call <SID>NetrwMakeDir("'.mapsafeusermach.'")<cr>' | |
6330 " exe 'inoremap <buffer> <silent> <nowait> D <c-o>:call <SID>NetrwRemoteRm("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
6331 " exe 'inoremap <buffer> <silent> <nowait> R <c-o>:call <SID>NetrwRemoteRename("'.mapsafeusermach.'","'.mapsafepath.'")<cr>' | |
6332 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> | 6496 nnoremap <buffer> <F1> :he netrw-quickhelp<cr> |
6333 " inoremap <buffer> <F1> <c-o>:he netrw-quickhelp<cr> | |
6334 | 6497 |
6335 " support user-specified maps | 6498 " support user-specified maps |
6336 call netrw#UserMaps(0) | 6499 call netrw#UserMaps(0) |
6337 endif | 6500 endif " }}}3 |
6338 | 6501 |
6339 " call Dret("s:NetrwMaps") | 6502 " call Dret("s:NetrwMaps") |
6340 endfun | 6503 endfun |
6341 | 6504 |
6342 " --------------------------------------------------------------------- | 6505 " --------------------------------------------------------------------- |
6529 call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname)) | 6692 call add(s:netrwmarkfilelist,s:ComposePath(b:netrw_curdir,a:fname)) |
6530 " call Decho("init s:netrwmarkfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) | 6693 " call Decho("init s:netrwmarkfilelist<".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) |
6531 endif | 6694 endif |
6532 | 6695 |
6533 " set up 2match'ing to netrwmarkfilemtch_# list | 6696 " set up 2match'ing to netrwmarkfilemtch_# list |
6534 if exists("s:netrwmarkfilemtch_{curbufnr}") && s:netrwmarkfilemtch_{curbufnr} != "" | 6697 if has("syntax") && exists("g:syntax_on") && g:syntax_on |
6535 " call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{curbufnr}."/",'~'.expand("<slnum>")) | 6698 if exists("s:netrwmarkfilemtch_{curbufnr}") && s:netrwmarkfilemtch_{curbufnr} != "" |
6536 if exists("g:did_drchip_netrwlist_syntax") | 6699 " " call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{curbufnr}."/",'~'.expand("<slnum>")) |
6537 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{curbufnr}."/" | 6700 if exists("g:did_drchip_netrwlist_syntax") |
6538 endif | 6701 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{curbufnr}."/" |
6539 else | 6702 endif |
6540 " call Decho("2match none",'~'.expand("<slnum>")) | 6703 else |
6541 2match none | 6704 " " call Decho("2match none",'~'.expand("<slnum>")) |
6705 2match none | |
6706 endif | |
6542 endif | 6707 endif |
6543 let @@= ykeep | 6708 let @@= ykeep |
6544 " call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist").">") | 6709 " call Dret("s:NetrwMarkFile : s:netrwmarkfilelist_".curbufnr."<".(exists("s:netrwmarkfilelist_{curbufnr}")? string(s:netrwmarkfilelist_{curbufnr}) : " doesn't exist").">") |
6545 endfun | 6710 endfun |
6546 | 6711 |
6622 let exe= netrw#WinPath(exe) | 6787 let exe= netrw#WinPath(exe) |
6623 if a:islocal | 6788 if a:islocal |
6624 if g:netrw_keepdir | 6789 if g:netrw_keepdir |
6625 let fname= s:ShellEscape(s:ComposePath(curdir,fname)) | 6790 let fname= s:ShellEscape(s:ComposePath(curdir,fname)) |
6626 endif | 6791 endif |
6792 call system(exe." ".fname) | |
6793 if v:shell_error | |
6794 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"unable to apply<".exe."> to file<".fname.">",50) | |
6795 endif | |
6627 else | 6796 else |
6628 let fname= s:ShellEscape(b:netrw_curdir.fname,1) | 6797 let fname= s:ShellEscape(b:netrw_curdir.fname,1) |
6798 NetrwKeepj call s:RemoteSystem(exe." ".fname) | |
6629 endif | 6799 endif |
6630 if executable(exe) | 6800 |
6631 if a:islocal | |
6632 call system(exe." ".fname) | |
6633 else | |
6634 NetrwKeepj call s:RemoteSystem(exe." ".fname) | |
6635 endif | |
6636 else | |
6637 NetrwKeepj call netrw#ErrorMsg(s:WARNING,"unable to apply<".exe."> to file<".fname.">",50) | |
6638 endif | |
6639 endif | 6801 endif |
6640 unlet sfx | 6802 unlet sfx |
6641 | 6803 |
6642 if exists("exe") | 6804 if exists("exe") |
6643 unlet exe | 6805 unlet exe |
6644 elseif a:islocal | 6806 elseif a:islocal |
6645 " fname not a compressed file, so compress it | 6807 " fname not a compressed file, so compress it |
6646 call system(netrw#WinPath(g:netrw_compress)." ".s:ShellEscape(s:ComposePath(b:netrw_curdir,fname))) | 6808 call system(netrw#WinPath(g:netrw_compress)." ".s:ShellEscape(s:ComposePath(b:netrw_curdir,fname))) |
6809 if v:shell_error | |
6810 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_compress<".g:netrw_compress."> to something that works",104) | |
6811 endif | |
6647 else | 6812 else |
6648 " fname not a compressed file, so compress it | 6813 " fname not a compressed file, so compress it |
6649 NetrwKeepj call s:RemoteSystem(netrw#WinPath(g:netrw_compress)." ".s:ShellEscape(fname)) | 6814 NetrwKeepj call s:RemoteSystem(netrw#WinPath(g:netrw_compress)." ".s:ShellEscape(fname)) |
6650 endif | 6815 endif |
6651 endfor " for every file in the marked list | 6816 endfor " for every file in the marked list |
6693 " call Decho("sanity chk passed: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>")) | 6858 " call Decho("sanity chk passed: s:netrwmftgt<".s:netrwmftgt.">",'~'.expand("<slnum>")) |
6694 | 6859 |
6695 if a:islocal && s:netrwmftgt_islocal | 6860 if a:islocal && s:netrwmftgt_islocal |
6696 " Copy marked files, local directory to local directory | 6861 " Copy marked files, local directory to local directory |
6697 " call Decho("copy from local to local",'~'.expand("<slnum>")) | 6862 " call Decho("copy from local to local",'~'.expand("<slnum>")) |
6698 if !executable(g:netrw_localcopycmd) && g:netrw_localcopycmd !~ '^'.expand("$COMSPEC").'\s' | 6863 if !executable(g:netrw_localcopycmd) |
6699 call netrw#ErrorMsg(s:ERROR,"g:netrw_localcopycmd<".g:netrw_localcopycmd."> not executable on your system, aborting",91) | 6864 call netrw#ErrorMsg(s:ERROR,"g:netrw_localcopycmd<".g:netrw_localcopycmd."> not executable on your system, aborting",91) |
6700 " call Dfunc("s:NetrwMarkFileMove : g:netrw_localcopycmd<".g:netrw_localcopycmd."> n/a!") | 6865 " call Dfunc("s:NetrwMarkFileMove : g:netrw_localcopycmd<".g:netrw_localcopycmd."> n/a!") |
6701 return | 6866 return |
6702 endif | 6867 endif |
6703 | 6868 |
6775 endif | 6940 endif |
6776 " call Decho("args <".args.">",'~'.expand("<slnum>")) | 6941 " call Decho("args <".args.">",'~'.expand("<slnum>")) |
6777 " call Decho("tgt <".tgt.">",'~'.expand("<slnum>")) | 6942 " call Decho("tgt <".tgt.">",'~'.expand("<slnum>")) |
6778 " call Decho("copycmd<".copycmd.">",'~'.expand("<slnum>")) | 6943 " call Decho("copycmd<".copycmd.">",'~'.expand("<slnum>")) |
6779 " call Decho("system(".copycmd." '".args."' '".tgt."')",'~'.expand("<slnum>")) | 6944 " call Decho("system(".copycmd." '".args."' '".tgt."')",'~'.expand("<slnum>")) |
6780 call system(copycmd." '".args."' '".tgt."'") | 6945 call system(copycmd.g:netrw_localcopycmdopt." '".args."' '".tgt."'") |
6781 if v:shell_error != 0 | 6946 if v:shell_error != 0 |
6782 if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir | 6947 if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir |
6783 call netrw#ErrorMsg(s:ERROR,"copy failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-c)",101) | 6948 call netrw#ErrorMsg(s:ERROR,"copy failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-c)",101) |
6784 else | 6949 else |
6785 call netrw#ErrorMsg(s:ERROR,"tried using g:netrw_localcopycmd<".g:netrw_localcopycmd.">; it doesn't work!",80) | 6950 call netrw#ErrorMsg(s:ERROR,"tried using g:netrw_localcopycmd<".g:netrw_localcopycmd.">; it doesn't work!",80) |
6807 let tmpdir= curdir."/".tmpdir | 6972 let tmpdir= curdir."/".tmpdir |
6808 endif | 6973 endif |
6809 if exists("*mkdir") | 6974 if exists("*mkdir") |
6810 call mkdir(tmpdir) | 6975 call mkdir(tmpdir) |
6811 else | 6976 else |
6812 call s:NetrwExe("sil! !".g:netrw_localmkdir.' '.s:ShellEscape(tmpdir,1)) | 6977 call s:NetrwExe("sil! !".g:netrw_localmkdir.g:netrw_localmkdiropt.' '.s:ShellEscape(tmpdir,1)) |
6813 if v:shell_error != 0 | 6978 if v:shell_error != 0 |
6814 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localmkdir<".g:netrw_localmkdir."> to something that works",80) | 6979 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localmkdir<".g:netrw_localmkdir."> to something that works",80) |
6815 " call Dret("s:NetrwMarkFileCopy : failed: sil! !".g:netrw_localmkdir.' '.s:ShellEscape(tmpdir,1) ) | 6980 " call Dret("s:NetrwMarkFileCopy : failed: sil! !".g:netrw_localmkdir.' '.s:ShellEscape(tmpdir,1) ) |
6816 return | 6981 return |
6817 endif | 6982 endif |
6818 endif | 6983 endif |
6819 if isdirectory(s:NetrwFile(tmpdir)) | 6984 if isdirectory(s:NetrwFile(tmpdir)) |
6820 call s:NetrwLcd(tmpdir) | 6985 if s:NetrwLcd(tmpdir) |
6986 " call Dret("s:NetrwMarkFileCopy : lcd failure") | |
6987 return | |
6988 endif | |
6821 NetrwKeepj call netrw#Obtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir) | 6989 NetrwKeepj call netrw#Obtain(a:islocal,s:netrwmarkfilelist_{bufnr('%')},tmpdir) |
6822 let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') | 6990 let localfiles= map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),'substitute(v:val,"^.*/","","")') |
6823 NetrwKeepj call s:NetrwUpload(localfiles,s:netrwmftgt) | 6991 NetrwKeepj call s:NetrwUpload(localfiles,s:netrwmftgt) |
6824 if getcwd() == tmpdir | 6992 if getcwd() == tmpdir |
6825 for fname in s:netrwmarkfilelist_{bufnr('%')} | 6993 for fname in s:netrwmarkfilelist_{bufnr('%')} |
6826 NetrwKeepj call s:NetrwDelete(fname) | 6994 NetrwKeepj call s:NetrwDelete(fname) |
6827 endfor | 6995 endfor |
6828 call s:NetrwLcd(curdir) | 6996 if s:NetrwLcd(curdir) |
6829 if v:version < 704 || !has("patch1109") | 6997 " call Dret("s:NetrwMarkFileCopy : lcd failure") |
6830 call s:NetrwExe("sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1)) | 6998 return |
6999 endif | |
7000 if v:version < 704 || (v:version == 704 && !has("patch1107")) | |
7001 call s:NetrwExe("sil !".g:netrw_localrmdir.g:netrw_localrmdiropt." ".s:ShellEscape(tmpdir,1)) | |
6831 if v:shell_error != 0 | 7002 if v:shell_error != 0 |
6832 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localrmdir<".g:netrw_localrmdir."> to something that works",80) | 7003 call netrw#ErrorMsg(s:WARNING,"consider setting g:netrw_localrmdir<".g:netrw_localrmdir."> to something that works",80) |
6833 " " call Dret("s:NetrwMarkFileCopy : failed: sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1) ) | 7004 " " call Dret("s:NetrwMarkFileCopy : failed: sil !".g:netrw_localrmdir." ".s:ShellEscape(tmpdir,1) ) |
6834 return | 7005 return |
6835 endif | 7006 endif |
6837 if delete(tmpdir,"d") | 7008 if delete(tmpdir,"d") |
6838 call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103) | 7009 call netrw#ErrorMsg(s:ERROR,"unable to delete directory <".tmpdir.">!",103) |
6839 endif | 7010 endif |
6840 endif | 7011 endif |
6841 else | 7012 else |
6842 call s:NetrwLcd(curdir) | 7013 if s:NetrwLcd(curdir) |
7014 " call Dret("s:NetrwMarkFileCopy : lcd failure") | |
7015 return | |
7016 endif | |
6843 endif | 7017 endif |
6844 endif | 7018 endif |
6845 endif | 7019 endif |
6846 | 7020 |
6847 " ------- | 7021 " ------- |
7364 | 7538 |
7365 if a:islocal && s:netrwmftgt_islocal | 7539 if a:islocal && s:netrwmftgt_islocal |
7366 " move: local -> local | 7540 " move: local -> local |
7367 " call Decho("move from local to local",'~'.expand("<slnum>")) | 7541 " call Decho("move from local to local",'~'.expand("<slnum>")) |
7368 " call Decho("local to local move",'~'.expand("<slnum>")) | 7542 " call Decho("local to local move",'~'.expand("<slnum>")) |
7369 if !executable(g:netrw_localmovecmd) && g:netrw_localmovecmd !~ '^'.expand("$COMSPEC").'\s' | 7543 if !executable(g:netrw_localmovecmd) |
7370 call netrw#ErrorMsg(s:ERROR,"g:netrw_localmovecmd<".g:netrw_localmovecmd."> not executable on your system, aborting",90) | 7544 call netrw#ErrorMsg(s:ERROR,"g:netrw_localmovecmd<".g:netrw_localmovecmd."> not executable on your system, aborting",90) |
7371 " call Dfunc("s:NetrwMarkFileMove : g:netrw_localmovecmd<".g:netrw_localmovecmd."> n/a!") | 7545 " call Dfunc("s:NetrwMarkFileMove : g:netrw_localmovecmd<".g:netrw_localmovecmd."> n/a!") |
7372 return | 7546 return |
7373 endif | 7547 endif |
7374 let tgt = s:ShellEscape(s:netrwmftgt) | 7548 let tgt = s:ShellEscape(s:netrwmftgt) |
7375 " call Decho("tgt<".tgt.">",'~'.expand("<slnum>")) | 7549 " call Decho("tgt<".tgt.">",'~'.expand("<slnum>")) |
7376 if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) | 7550 if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) |
7377 let tgt = substitute(tgt, '/','\\','g') | 7551 let tgt= substitute(tgt, '/','\\','g') |
7378 " call Decho("windows exception: tgt<".tgt.">",'~'.expand("<slnum>")) | 7552 " call Decho("windows exception: tgt<".tgt.">",'~'.expand("<slnum>")) |
7379 if g:netrw_localmovecmd =~ '\s' | 7553 if g:netrw_localmovecmd =~ '\s' |
7380 let movecmd = substitute(g:netrw_localmovecmd,'\s.*$','','') | 7554 let movecmd = substitute(g:netrw_localmovecmd,'\s.*$','','') |
7381 let movecmdargs = substitute(g:netrw_localmovecmd,'^.\{-}\(\s.*\)$','\1','') | 7555 let movecmdargs = substitute(g:netrw_localmovecmd,'^.\{-}\(\s.*\)$','\1','') |
7382 let movecmd = netrw#WinPath(movecmd).movecmdargs | 7556 let movecmd = netrw#WinPath(movecmd).movecmdargs |
7392 for fname in s:netrwmarkfilelist_{bufnr("%")} | 7566 for fname in s:netrwmarkfilelist_{bufnr("%")} |
7393 if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) | 7567 if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) |
7394 let fname= substitute(fname,'/','\\','g') | 7568 let fname= substitute(fname,'/','\\','g') |
7395 endif | 7569 endif |
7396 " call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("<slnum>")) | 7570 " call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("<slnum>")) |
7397 let ret= system(movecmd." ".s:ShellEscape(fname)." ".tgt) | 7571 let ret= system(movecmd.g:netrw_localmovecmdopt." ".s:ShellEscape(fname)." ".tgt) |
7398 if v:shell_error != 0 | 7572 if v:shell_error != 0 |
7399 if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir | 7573 if exists("b:netrw_curdir") && b:netrw_curdir != getcwd() && !g:netrw_keepdir |
7400 call netrw#ErrorMsg(s:ERROR,"move failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-c)",100) | 7574 call netrw#ErrorMsg(s:ERROR,"move failed; perhaps due to vim's current directory<".getcwd()."> not matching netrw's (".b:netrw_curdir.") (see :help netrw-c)",100) |
7401 else | 7575 else |
7402 call netrw#ErrorMsg(s:ERROR,"tried using g:netrw_localmovecmd<".g:netrw_localmovecmd.">; it doesn't work!",54) | 7576 call netrw#ErrorMsg(s:ERROR,"tried using g:netrw_localmovecmd<".g:netrw_localmovecmd.">; it doesn't work!",54) |
7647 " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) | 7821 " call Decho("s:netrwmarkfilelist".string(s:netrwmarkfilelist).">",'~'.expand("<slnum>")) |
7648 let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "s:ShellEscape(v:val,".!a:islocal.")")) | 7822 let netrwmarkfilelist= join(map(deepcopy(s:netrwmarkfilelist), "s:ShellEscape(v:val,".!a:islocal.")")) |
7649 call s:NetrwUnmarkAll() | 7823 call s:NetrwUnmarkAll() |
7650 | 7824 |
7651 if a:islocal | 7825 if a:islocal |
7652 if executable(g:netrw_ctags) | 7826 |
7653 " call Decho("call system(".g:netrw_ctags." ".netrwmarkfilelist.")",'~'.expand("<slnum>")) | 7827 " call Decho("call system(".g:netrw_ctags." ".netrwmarkfilelist.")",'~'.expand("<slnum>")) |
7654 call system(g:netrw_ctags." ".netrwmarkfilelist) | 7828 call system(g:netrw_ctags." ".netrwmarkfilelist) |
7655 else | 7829 if v:shell_error |
7656 call netrw#ErrorMsg(s:ERROR,"g:netrw_ctags<".g:netrw_ctags."> is not executable!",51) | 7830 call netrw#ErrorMsg(s:ERROR,"g:netrw_ctags<".g:netrw_ctags."> is not executable!",51) |
7657 endif | 7831 endif |
7832 | |
7658 else | 7833 else |
7659 let cmd = s:RemoteSystem(g:netrw_ctags." ".netrwmarkfilelist) | 7834 let cmd = s:RemoteSystem(g:netrw_ctags." ".netrwmarkfilelist) |
7660 call netrw#Obtain(a:islocal,"tags") | 7835 call netrw#Obtain(a:islocal,"tags") |
7661 let curdir= b:netrw_curdir | 7836 let curdir= b:netrw_curdir |
7662 1split | 7837 1split |
8107 if exists("s:netrwmarkfilelist_{bufnr('%')}") | 8282 if exists("s:netrwmarkfilelist_{bufnr('%')}") |
8108 let islocal= s:netrwmarkfilelist_{bufnr('%')}[1] !~ '^\a\{3,}://' | 8283 let islocal= s:netrwmarkfilelist_{bufnr('%')}[1] !~ '^\a\{3,}://' |
8109 call netrw#Obtain(islocal,s:netrwmarkfilelist_{bufnr('%')}) | 8284 call netrw#Obtain(islocal,s:netrwmarkfilelist_{bufnr('%')}) |
8110 call s:NetrwUnmarkList(bufnr('%'),b:netrw_curdir) | 8285 call s:NetrwUnmarkList(bufnr('%'),b:netrw_curdir) |
8111 else | 8286 else |
8112 call netrw#Obtain(a:islocal,expand("<cWORD>")) | 8287 call netrw#Obtain(a:islocal,s:NetrwGetWord()) |
8113 endif | 8288 endif |
8114 let @@= ykeep | 8289 let @@= ykeep |
8115 | 8290 |
8116 " call Dret("NetrwObtain") | 8291 " call Dret("NetrwObtain") |
8117 endfun | 8292 endfun |
8142 | 8317 |
8143 let didsplit = 0 | 8318 let didsplit = 0 |
8144 if lastwinnr == 1 | 8319 if lastwinnr == 1 |
8145 " if only one window, open a new one first | 8320 " if only one window, open a new one first |
8146 " call Decho("only one window, so open a new one (g:netrw_alto=".g:netrw_alto.")",'~'.expand("<slnum>")) | 8321 " call Decho("only one window, so open a new one (g:netrw_alto=".g:netrw_alto.")",'~'.expand("<slnum>")) |
8322 " g:netrw_preview=0: preview window shown in a horizontally split window | |
8323 " g:netrw_preview=1: preview window shown in a vertically split window | |
8147 if g:netrw_preview | 8324 if g:netrw_preview |
8148 " vertically split preview window | 8325 " vertically split preview window |
8149 let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winheight(0))/100 : -g:netrw_winsize | 8326 let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize |
8150 " call Decho("exe ".(g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s",'~'.expand("<slnum>")) | 8327 " call Decho("exe ".(g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s",'~'.expand("<slnum>")) |
8151 exe (g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s" | 8328 exe (g:netrw_alto? "top " : "bot ")."vert ".winsz."wincmd s" |
8152 else | 8329 else |
8153 " horizontally split preview window | 8330 " horizontally split preview window |
8154 let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winwidth(0))/100 : -g:netrw_winsize | 8331 let winsz= (g:netrw_winsize > 0)? (g:netrw_winsize*winheight(0))/100 : -g:netrw_winsize |
8155 " call Decho("exe ".(g:netrw_alto? "bel " : "abo ").winsz."wincmd s",'~'.expand("<slnum>")) | 8332 " call Decho("exe ".(g:netrw_alto? "bel " : "abo ").winsz."wincmd s",'~'.expand("<slnum>")) |
8156 exe (g:netrw_alto? "bel " : "abo ").winsz."wincmd s" | 8333 exe (g:netrw_alto? "bel " : "abo ").winsz."wincmd s" |
8157 endif | 8334 endif |
8158 let didsplit = 1 | 8335 let didsplit = 1 |
8159 " call Decho("did split",'~'.expand("<slnum>")) | 8336 " call Decho("did split",'~'.expand("<slnum>")) |
8281 elseif type(a:fname) == 3 | 8458 elseif type(a:fname) == 3 |
8282 " handle uploading a list of files via scp | 8459 " handle uploading a list of files via scp |
8283 " call Decho("handle uploading a list of files via scp",'~'.expand("<slnum>")) | 8460 " call Decho("handle uploading a list of files via scp",'~'.expand("<slnum>")) |
8284 let curdir= getcwd() | 8461 let curdir= getcwd() |
8285 if a:tgt =~ '^scp:' | 8462 if a:tgt =~ '^scp:' |
8286 call s:NetrwLcd(fromdir) | 8463 if s:NetrwLcd(fromdir) |
8464 " call Dret("s:NetrwUpload : lcd failure") | |
8465 return | |
8466 endif | |
8287 let filelist= deepcopy(s:netrwmarkfilelist_{bufnr('%')}) | 8467 let filelist= deepcopy(s:netrwmarkfilelist_{bufnr('%')}) |
8288 let args = join(map(filelist,"s:ShellEscape(v:val, 1)")) | 8468 let args = join(map(filelist,"s:ShellEscape(v:val, 1)")) |
8289 if exists("g:netrw_port") && g:netrw_port != "" | 8469 if exists("g:netrw_port") && g:netrw_port != "" |
8290 let useport= " ".g:netrw_scpport." ".g:netrw_port | 8470 let useport= " ".g:netrw_scpport." ".g:netrw_port |
8291 else | 8471 else |
8292 let useport= "" | 8472 let useport= "" |
8293 endif | 8473 endif |
8294 let machine = substitute(a:tgt,'^scp://\([^/:]\+\).*$','\1','') | 8474 let machine = substitute(a:tgt,'^scp://\([^/:]\+\).*$','\1','') |
8295 let tgt = substitute(a:tgt,'^scp://[^/]\+/\(.*\)$','\1','') | 8475 let tgt = substitute(a:tgt,'^scp://[^/]\+/\(.*\)$','\1','') |
8296 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.s:ShellEscape(useport,1)." ".args." ".s:ShellEscape(machine.":".tgt,1)) | 8476 call s:NetrwExe(s:netrw_silentxfer."!".g:netrw_scp_cmd.s:ShellEscape(useport,1)." ".args." ".s:ShellEscape(machine.":".tgt,1)) |
8297 call s:NetrwLcd(curdir) | 8477 if s:NetrwLcd(curdir) |
8478 " call Dret("s:NetrwUpload : lcd failure") | |
8479 return | |
8480 endif | |
8298 | 8481 |
8299 elseif a:tgt =~ '^ftp:' | 8482 elseif a:tgt =~ '^ftp:' |
8300 call s:NetrwMethod(a:tgt) | 8483 call s:NetrwMethod(a:tgt) |
8301 | 8484 |
8302 if b:netrw_method == 2 | 8485 if b:netrw_method == 2 |
8406 let mod = 1 | 8589 let mod = 1 |
8407 else | 8590 else |
8408 bw!|q | 8591 bw!|q |
8409 endif | 8592 endif |
8410 elseif !exists("b:netrw_method") || b:netrw_method < 0 | 8593 elseif !exists("b:netrw_method") || b:netrw_method < 0 |
8411 " call Dfunc("netrw#NetrwUpload : unsupported method") | 8594 " call Dret("s:#NetrwUpload : unsupported method") |
8412 return | 8595 return |
8413 endif | 8596 endif |
8414 else | 8597 else |
8415 call netrw#ErrorMsg(s:ERROR,"can't obtain files with protocol from<".a:tgt.">",63) | 8598 call netrw#ErrorMsg(s:ERROR,"can't obtain files with protocol from<".a:tgt.">",63) |
8416 endif | 8599 endif |
8455 " at the current time (Mar 19, 2007) all calls to NetrwRefresh() call NetrwBrowseChgDir() first. | 8638 " at the current time (Mar 19, 2007) all calls to NetrwRefresh() call NetrwBrowseChgDir() first. |
8456 setl ma noro | 8639 setl ma noro |
8457 " call Decho("setl ma noro",'~'.expand("<slnum>")) | 8640 " call Decho("setl ma noro",'~'.expand("<slnum>")) |
8458 " call Decho("clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>")) | 8641 " call Decho("clear buffer<".expand("%")."> with :%d",'~'.expand("<slnum>")) |
8459 let ykeep = @@ | 8642 let ykeep = @@ |
8643 if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST | |
8644 if !exists("w:netrw_treetop") | |
8645 if exists("b:netrw_curdir") | |
8646 let w:netrw_treetop= b:netrw_curdir | |
8647 else | |
8648 let w:netrw_treetop= getcwd() | |
8649 endif | |
8650 endif | |
8651 NetrwKeepj call s:NetrwRefreshTreeDict(w:netrw_treetop) | |
8652 endif | |
8460 | 8653 |
8461 " save the cursor position before refresh. | 8654 " save the cursor position before refresh. |
8462 let screenposn = winsaveview() | 8655 let screenposn = winsaveview() |
8463 " call Decho("saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) | 8656 " call Decho("saving posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) |
8464 | 8657 |
8474 " restore position | 8667 " restore position |
8475 " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) | 8668 " call Decho("restoring posn to screenposn<".string(screenposn).">",'~'.expand("<slnum>")) |
8476 NetrwKeepj call winrestview(screenposn) | 8669 NetrwKeepj call winrestview(screenposn) |
8477 | 8670 |
8478 " restore file marks | 8671 " restore file marks |
8479 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != "" | 8672 if has("syntax") && exists("g:syntax_on") && g:syntax_on |
8480 " call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/",'~'.expand("<slnum>")) | 8673 if exists("s:netrwmarkfilemtch_{bufnr('%')}") && s:netrwmarkfilemtch_{bufnr("%")} != "" |
8481 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" | 8674 " " call Decho("exe 2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/",'~'.expand("<slnum>")) |
8482 else | 8675 exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/" |
8483 " call Decho("2match none (bufnr(%)=".bufnr("%")."<".bufname("%").">)",'~'.expand("<slnum>")) | 8676 else |
8484 2match none | 8677 " " call Decho("2match none (bufnr(%)=".bufnr("%")."<".bufname("%").">)",'~'.expand("<slnum>")) |
8485 endif | 8678 2match none |
8679 endif | |
8680 endif | |
8486 | 8681 |
8487 " restore | 8682 " restore |
8488 let @@= ykeep | 8683 let @@= ykeep |
8489 " call Dret("s:NetrwRefresh") | 8684 " call Dret("s:NetrwRefresh") |
8490 endfun | 8685 endfun |
8956 | 9151 |
8957 " display subtrees (if any) | 9152 " display subtrees (if any) |
8958 let depth= s:treedepthstring.a:depth | 9153 let depth= s:treedepthstring.a:depth |
8959 " call Decho("display subtrees with depth<".depth."> and current leaves",'~'.expand("<slnum>")) | 9154 " call Decho("display subtrees with depth<".depth."> and current leaves",'~'.expand("<slnum>")) |
8960 | 9155 |
9156 " implement g:netrw_hide for tree listings (uses g:netrw_list_hide) | |
9157 if g:netrw_hide == 1 | |
9158 " hide given patterns | |
9159 let listhide= split(g:netrw_list_hide,',') | |
9160 " call Decho("listhide=".string(listhide)) | |
9161 for pat in listhide | |
9162 call filter(w:netrw_treedict[dir],'v:val !~ "'.pat.'"') | |
9163 endfor | |
9164 | |
9165 elseif g:netrw_hide == 2 | |
9166 " show given patterns (only) | |
9167 let listhide= split(g:netrw_list_hide,',') | |
9168 " call Decho("listhide=".string(listhide)) | |
9169 let entries=[] | |
9170 for entry in w:netrw_treedict[dir] | |
9171 for pat in listhide | |
9172 if entry =~ pat | |
9173 call add(entries,entry) | |
9174 break | |
9175 endif | |
9176 endfor | |
9177 endfor | |
9178 let w:netrw_treedict[dir]= entries | |
9179 endif | |
9180 if depth != "" | |
9181 " always remove "." and ".." entries when there's depth | |
9182 call filter(w:netrw_treedict[dir],'v:val !~ "\\.\\.$"') | |
9183 call filter(w:netrw_treedict[dir],'v:val !~ "\\.$"') | |
9184 endif | |
9185 | |
8961 " call Decho("for every entry in w:netrw_treedict[".dir."]=".string(w:netrw_treedict[dir]),'~'.expand("<slnum>")) | 9186 " call Decho("for every entry in w:netrw_treedict[".dir."]=".string(w:netrw_treedict[dir]),'~'.expand("<slnum>")) |
8962 for entry in w:netrw_treedict[dir] | 9187 for entry in w:netrw_treedict[dir] |
8963 if dir =~ '/$' | 9188 if dir =~ '/$' |
8964 let direntry= substitute(dir.entry,'[@/]$','','e') | 9189 let direntry= substitute(dir.entry,'[@/]$','','e') |
8965 else | 9190 else |
8978 else | 9203 else |
8979 " call Decho("<".entry."> is not a key in treedict (no subtree)",'~'.expand("<slnum>")) | 9204 " call Decho("<".entry."> is not a key in treedict (no subtree)",'~'.expand("<slnum>")) |
8980 sil! NetrwKeepj call setline(line("$")+1,depth.entry) | 9205 sil! NetrwKeepj call setline(line("$")+1,depth.entry) |
8981 endif | 9206 endif |
8982 endfor | 9207 endfor |
9208 " call Decho("displaying: ".string(getline(w:netrw_bannercnt,'$'))) | |
8983 | 9209 |
8984 " call Dret("NetrwTreeDisplay") | 9210 " call Dret("NetrwTreeDisplay") |
8985 endfun | 9211 endfun |
8986 | 9212 |
8987 " --------------------------------------------------------------------- | 9213 " --------------------------------------------------------------------- |
8988 " s:NetrwRefreshTreeDict: updates the contents information for a tree (w:netrw_treedict) {{{2 | 9214 " s:NetrwRefreshTreeDict: updates the contents information for a tree (w:netrw_treedict) {{{2 |
8989 fun! s:NetrwRefreshTreeDict(dir) | 9215 fun! s:NetrwRefreshTreeDict(dir) |
8990 " call Dfunc("s:NetrwRefreshTreeDict(dir<".a:dir.">)") | 9216 " call Dfunc("s:NetrwRefreshTreeDict(dir<".a:dir.">)") |
9217 if !exists("w:netrw_treedict") | |
9218 " call Dret("s:NetrwRefreshTreeDict : w:netrw_treedict doesn't exist") | |
9219 return | |
9220 endif | |
9221 | |
8991 for entry in w:netrw_treedict[a:dir] | 9222 for entry in w:netrw_treedict[a:dir] |
8992 let direntry= substitute(a:dir.'/'.entry,'[@/]$','','e') | 9223 let direntry= substitute(a:dir.'/'.entry,'[@/]$','','e') |
8993 " call Decho("a:dir<".a:dir."> entry<".entry."> direntry<".direntry.">",'~'.expand("<slnum>")) | 9224 " call Decho("a:dir<".a:dir."> entry<".entry."> direntry<".direntry.">",'~'.expand("<slnum>")) |
8994 | 9225 |
8995 if entry =~ '/$' && has_key(w:netrw_treedict,direntry) | 9226 if entry =~ '/$' && has_key(w:netrw_treedict,direntry) |
9014 let liststar = s:NetrwGlob(direntry.'/','*',1) | 9245 let liststar = s:NetrwGlob(direntry.'/','*',1) |
9015 let listdotstar= s:NetrwGlob(direntry.'/','.*',1) | 9246 let listdotstar= s:NetrwGlob(direntry.'/','.*',1) |
9016 " call Decho("updating w:netrw_treedict[".direntry.']='.string(w:netrw_treedict[direntry]),'~'.expand("<slnum>")) | 9247 " call Decho("updating w:netrw_treedict[".direntry.']='.string(w:netrw_treedict[direntry]),'~'.expand("<slnum>")) |
9017 | 9248 |
9018 else | 9249 else |
9019 " call Decho('not updating w:netrw_treedict['.direntry.'] with entry<'.entry.'> (no subtree)',,'~'.expand("<slnum>")) | 9250 " call Decho('not updating w:netrw_treedict['.string(direntry).'] with entry<'.string(entry).'> (no subtree)','~'.expand("<slnum>")) |
9020 endif | 9251 endif |
9021 endfor | 9252 endfor |
9022 " call Dret("s:NetrwRefreshTreeDict") | 9253 " call Dret("s:NetrwRefreshTreeDict") |
9023 endfun | 9254 endfun |
9024 | 9255 |
9081 return | 9312 return |
9082 endif | 9313 endif |
9083 endfun | 9314 endfun |
9084 | 9315 |
9085 " --------------------------------------------------------------------- | 9316 " --------------------------------------------------------------------- |
9086 " s:NetrwTreePath: returns path to current file in tree listing {{{2 | 9317 " s:NetrwTreePath: returns path to current file/directory in tree listing {{{2 |
9087 " Normally, treetop is w:netrw_treetop, but a | 9318 " Normally, treetop is w:netrw_treetop, but a |
9088 " user of the function ( netrw#SetTreetop() ) | 9319 " user of the function ( netrw#SetTreetop() ) |
9089 " wipes that out prior to calling this function | 9320 " wipes that out prior to calling this function |
9090 fun! s:NetrwTreePath(treetop) | 9321 fun! s:NetrwTreePath(treetop) |
9091 " call Dfunc("s:NetrwTreePath() line#".line(".")."<".getline(".").">") | 9322 " call Dfunc("s:NetrwTreePath(treetop<".a:treetop.">) line#".line(".")."<".getline(".").">") |
9323 if line(".") < w:netrw_bannercnt + 2 | |
9324 let treedir= a:treetop | |
9325 if treedir !~ '/$' | |
9326 let treedir= treedir.'/' | |
9327 endif | |
9328 " call Dret("s:NetrwTreePath ".treedir." : line#".line(".")." ≤ ".(w:netrw_bannercnt+2)) | |
9329 return treedir | |
9330 endif | |
9331 | |
9092 let svpos = winsaveview() | 9332 let svpos = winsaveview() |
9093 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) | 9333 " call Decho("saving posn to svpos<".string(svpos).">",'~'.expand("<slnum>")) |
9094 let depth = substitute(getline('.'),'^\(\%('.s:treedepthstring.'\)*\)[^'.s:treedepthstring.'].\{-}$','\1','e') | 9334 let depth = substitute(getline('.'),'^\(\%('.s:treedepthstring.'\)*\)[^'.s:treedepthstring.'].\{-}$','\1','e') |
9095 " call Decho("depth<".depth."> 1st subst",'~'.expand("<slnum>")) | 9335 " call Decho("depth<".depth."> 1st subst",'~'.expand("<slnum>")) |
9096 let depth = substitute(depth,'^'.s:treedepthstring,'','') | 9336 let depth = substitute(depth,'^'.s:treedepthstring,'','') |
9117 let dirname= substitute(getline('.'),'^\('.s:treedepthstring.'\)*','','e') | 9357 let dirname= substitute(getline('.'),'^\('.s:treedepthstring.'\)*','','e') |
9118 let treedir= dirname.treedir | 9358 let treedir= dirname.treedir |
9119 let depth = substitute(depth,'^'.s:treedepthstring,'','') | 9359 let depth = substitute(depth,'^'.s:treedepthstring,'','') |
9120 " call Decho("constructing treedir<".treedir.">: dirname<".dirname."> while depth<".depth.">",'~'.expand("<slnum>")) | 9360 " call Decho("constructing treedir<".treedir.">: dirname<".dirname."> while depth<".depth.">",'~'.expand("<slnum>")) |
9121 endwhile | 9361 endwhile |
9362 " call Decho("treedir#1<".treedir.">",'~'.expand("<slnum>")) | |
9122 if a:treetop =~ '/$' | 9363 if a:treetop =~ '/$' |
9123 let treedir= a:treetop.treedir | 9364 let treedir= a:treetop.treedir |
9124 else | 9365 else |
9125 let treedir= a:treetop.'/'.treedir | 9366 let treedir= a:treetop.'/'.treedir |
9126 endif | 9367 endif |
9368 " call Decho("treedir#2<".treedir.">",'~'.expand("<slnum>")) | |
9127 let treedir= substitute(treedir,'//$','/','') | 9369 let treedir= substitute(treedir,'//$','/','') |
9370 " call Decho("treedir#3<".treedir.">",'~'.expand("<slnum>")) | |
9128 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))" | 9371 " call Decho("restoring posn to svpos<".string(svpos).">",'~'.expand("<slnum>"))" |
9129 call winrestview(svpos) | 9372 call winrestview(svpos) |
9130 " call Dret("s:NetrwTreePath <".treedir.">") | 9373 " call Dret("s:NetrwTreePath <".treedir.">") |
9131 return treedir | 9374 return treedir |
9132 endfun | 9375 endfun |
9212 " --------------------------------------------------------------------- | 9455 " --------------------------------------------------------------------- |
9213 " s:PerformListing: {{{2 | 9456 " s:PerformListing: {{{2 |
9214 fun! s:PerformListing(islocal) | 9457 fun! s:PerformListing(islocal) |
9215 " call Dfunc("s:PerformListing(islocal=".a:islocal.")") | 9458 " call Dfunc("s:PerformListing(islocal=".a:islocal.")") |
9216 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol()." line($)=".line("$"),'~'.expand("<slnum>")) | 9459 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol()." line($)=".line("$"),'~'.expand("<slnum>")) |
9217 " call Decho("settings: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (enter)",'~'.expand("<slnum>")) | 9460 " call Decho("settings: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (enter)"." ei<".&ei.">",'~'.expand("<slnum>")) |
9218 | 9461 |
9219 " set up syntax highlighting {{{3 | 9462 " set up syntax highlighting {{{3 |
9220 " call Decho("--set up syntax highlighting (ie. setl ft=netrw)",'~'.expand("<slnum>")) | 9463 " call Decho("--set up syntax highlighting (ie. setl ft=netrw)",'~'.expand("<slnum>")) |
9221 sil! setl ft=netrw | 9464 sil! setl ft=netrw |
9222 | 9465 |
9292 exe "sil! NetrwKeepj ".w:netrw_bannercnt | 9535 exe "sil! NetrwKeepj ".w:netrw_bannercnt |
9293 " else " Decho | 9536 " else " Decho |
9294 " call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>")) | 9537 " call Decho("g:netrw_banner=".g:netrw_banner.": banner ".(g:netrw_banner? "enabled" : "suppressed").": (line($)=".line("$")." byte2line(1)=".byte2line(1)." bannercnt=".w:netrw_bannercnt.")",'~'.expand("<slnum>")) |
9295 endif | 9538 endif |
9296 | 9539 |
9297 " show copy/move target, if any | 9540 " show copy/move target, if any {{{3 |
9298 if g:netrw_banner | 9541 if g:netrw_banner |
9299 if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal") | 9542 if exists("s:netrwmftgt") && exists("s:netrwmftgt_islocal") |
9300 " call Decho("--show copy/move target<".s:netrwmftgt.">",'~'.expand("<slnum>")) | 9543 " call Decho("--show copy/move target<".s:netrwmftgt.">",'~'.expand("<slnum>")) |
9301 NetrwKeepj put ='' | 9544 NetrwKeepj put ='' |
9302 if s:netrwmftgt_islocal | 9545 if s:netrwmftgt_islocal |
9448 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#3)",'~'.expand("<slnum>")) | 9691 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo. " (internal#3)",'~'.expand("<slnum>")) |
9449 | 9692 |
9450 " resolve symbolic links if local and (thin or tree) | 9693 " resolve symbolic links if local and (thin or tree) |
9451 if a:islocal && (w:netrw_liststyle == s:THINLIST || (exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST)) | 9694 if a:islocal && (w:netrw_liststyle == s:THINLIST || (exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST)) |
9452 " call Decho("--resolve symbolic links if local and thin|tree",'~'.expand("<slnum>")) | 9695 " call Decho("--resolve symbolic links if local and thin|tree",'~'.expand("<slnum>")) |
9453 g/@$/call s:ShowLink() | 9696 sil! g/@$/call s:ShowLink() |
9454 endif | 9697 endif |
9455 | 9698 |
9456 if exists("w:netrw_bannercnt") && (line("$") >= w:netrw_bannercnt || !g:netrw_banner) | 9699 if exists("w:netrw_bannercnt") && (line("$") >= w:netrw_bannercnt || !g:netrw_banner) |
9457 " place cursor on the top-left corner of the file listing | 9700 " place cursor on the top-left corner of the file listing |
9458 " call Decho("--place cursor on top-left corner of file listing",'~'.expand("<slnum>")) | 9701 " call Decho("--place cursor on top-left corner of file listing",'~'.expand("<slnum>")) |
9541 redraw | 9784 redraw |
9542 | 9785 |
9543 " call Dret("SetupNetrwStatusLine : stl=".&stl) | 9786 " call Dret("SetupNetrwStatusLine : stl=".&stl) |
9544 endfun | 9787 endfun |
9545 | 9788 |
9546 " --------------------------------------------------------------------- | 9789 " ========================================= |
9547 " Remote Directory Browsing Support: {{{1 | 9790 " Remote Directory Browsing Support: {{{1 |
9548 " =========================================== | 9791 " ========================================= |
9549 | 9792 |
9550 " --------------------------------------------------------------------- | 9793 " --------------------------------------------------------------------- |
9551 " s:NetrwRemoteFtpCmd: unfortunately, not all ftp servers honor options for ls {{{2 | 9794 " s:NetrwRemoteFtpCmd: unfortunately, not all ftp servers honor options for ls {{{2 |
9552 " This function assumes that a long listing will be received. Size, time, | 9795 " This function assumes that a long listing will be received. Size, time, |
9553 " and reverse sorts will be requested of the server but not otherwise | 9796 " and reverse sorts will be requested of the server but not otherwise |
10144 NetrwKeepj call winrestview(svpos) | 10387 NetrwKeepj call winrestview(svpos) |
10145 | 10388 |
10146 " call Dret("NetrwRemoteRename") | 10389 " call Dret("NetrwRemoteRename") |
10147 endfun | 10390 endfun |
10148 | 10391 |
10149 " --------------------------------------------------------------------- | 10392 " ========================================== |
10150 " Local Directory Browsing Support: {{{1 | 10393 " Local Directory Browsing Support: {{{1 |
10151 " ========================================== | 10394 " ========================================== |
10152 | 10395 |
10153 " --------------------------------------------------------------------- | 10396 " --------------------------------------------------------------------- |
10154 " netrw#FileUrlRead: handles reading file://* files {{{2 | 10397 " netrw#FileUrlEdit: handles editing file://* files {{{2 |
10155 " Should accept: file://localhost/etc/fstab | 10398 " Should accept: file://localhost/etc/fstab |
10156 " file:///etc/fstab | 10399 " file:///etc/fstab |
10157 " file:///c:/WINDOWS/clock.avi | 10400 " file:///c:/WINDOWS/clock.avi |
10158 " file:///c|/WINDOWS/clock.avi | 10401 " file:///c|/WINDOWS/clock.avi |
10159 " file://localhost/c:/WINDOWS/clock.avi | 10402 " file://localhost/c:/WINDOWS/clock.avi |
10160 " file://localhost/c|/WINDOWS/clock.avi | 10403 " file://localhost/c|/WINDOWS/clock.avi |
10161 " file://c:/foo.txt | 10404 " file://c:/foo.txt |
10162 " file:///c:/foo.txt | 10405 " file:///c:/foo.txt |
10163 " and %XX (where X is [0-9a-fA-F] is converted into a character with the given hexadecimal value | 10406 " and %XX (where X is [0-9a-fA-F] is converted into a character with the given hexadecimal value |
10164 fun! netrw#FileUrlRead(fname) | 10407 fun! netrw#FileUrlEdit(fname) |
10165 " call Dfunc("netrw#FileUrlRead(fname<".a:fname.">)") | 10408 " call Dfunc("netrw#FileUrlEdit(fname<".a:fname.">)") |
10166 let fname = a:fname | 10409 let fname = a:fname |
10167 if fname =~ '^file://localhost/' | 10410 if fname =~ '^file://localhost/' |
10168 " call Decho('converting file://localhost/ -to- file:///','~'.expand("<slnum>")) | 10411 " call Decho('converting file://localhost/ -to- file:///','~'.expand("<slnum>")) |
10169 let fname= substitute(fname,'^file://localhost/','file:///','') | 10412 let fname= substitute(fname,'^file://localhost/','file:///','') |
10170 " call Decho("fname<".fname.">",'~'.expand("<slnum>")) | 10413 " call Decho("fname<".fname.">",'~'.expand("<slnum>")) |
10184 if plainfname =~ '^/\+\a:' | 10427 if plainfname =~ '^/\+\a:' |
10185 " call Decho('removing leading "/"s','~'.expand("<slnum>")) | 10428 " call Decho('removing leading "/"s','~'.expand("<slnum>")) |
10186 let plainfname= substitute(plainfname,'^/\+\(\a:\)','\1','') | 10429 let plainfname= substitute(plainfname,'^/\+\(\a:\)','\1','') |
10187 endif | 10430 endif |
10188 endif | 10431 endif |
10432 | |
10189 " call Decho("fname2396<".fname2396.">",'~'.expand("<slnum>")) | 10433 " call Decho("fname2396<".fname2396.">",'~'.expand("<slnum>")) |
10190 " call Decho("plainfname<".plainfname.">",'~'.expand("<slnum>")) | 10434 " call Decho("plainfname<".plainfname.">",'~'.expand("<slnum>")) |
10191 exe "sil doau BufReadPre ".fname2396e | 10435 exe "sil doau BufReadPre ".fname2396e |
10192 exe 'NetrwKeepj r '.plainfname | 10436 exe 'NetrwKeepj keepalt edit '.plainfname |
10193 exe 'sil! bdelete '.plainfname | 10437 exe 'sil! NetrwKeepj keepalt bdelete '.fnameescape(a:fname) |
10194 exe 'keepalt file! '.plainfname | 10438 |
10195 NetrwKeepj 1d | |
10196 " call Decho("setl nomod",'~'.expand("<slnum>")) | |
10197 setl nomod | |
10198 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 10439 " call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
10199 " call Dret("netrw#FileUrlRead") | 10440 " call Dret("netrw#FileUrlEdit") |
10200 exe "sil doau BufReadPost ".fname2396e | 10441 exe "sil doau BufReadPost ".fname2396e |
10201 endfun | 10442 endfun |
10202 | 10443 |
10203 " --------------------------------------------------------------------- | 10444 " --------------------------------------------------------------------- |
10204 " netrw#LocalBrowseCheck: {{{2 | 10445 " netrw#LocalBrowseCheck: {{{2 |
10212 " would hit when re-entering netrw windows, creating unexpected | 10453 " would hit when re-entering netrw windows, creating unexpected |
10213 " refreshes (and would do so in the middle of NetrwSaveOptions(), too) | 10454 " refreshes (and would do so in the middle of NetrwSaveOptions(), too) |
10214 " call Dfunc("netrw#LocalBrowseCheck(dirname<".a:dirname.">") | 10455 " call Dfunc("netrw#LocalBrowseCheck(dirname<".a:dirname.">") |
10215 " call Decho("isdir<".a:dirname."> =".isdirectory(s:NetrwFile(a:dirname)).((exists("s:treeforceredraw")? " treeforceredraw" : "")).'~'.expand("<slnum>")) | 10456 " call Decho("isdir<".a:dirname."> =".isdirectory(s:NetrwFile(a:dirname)).((exists("s:treeforceredraw")? " treeforceredraw" : "")).'~'.expand("<slnum>")) |
10216 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 10457 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
10217 " call Dredir("ls!","ls!") | 10458 " call Dredir("ls!","netrw#LocalBrowseCheck") |
10218 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>")) | 10459 " call Decho("tab#".tabpagenr()." win#".winnr()." buf#".bufnr("%")."<".bufname("%")."> line#".line(".")." col#".col(".")." winline#".winline()." wincol#".wincol(),'~'.expand("<slnum>")) |
10219 " call Decho("current buffer#".bufnr("%")."<".bufname("%")."> ft=".&ft,'~'.expand("<slnum>")) | 10460 " call Decho("current buffer#".bufnr("%")."<".bufname("%")."> ft=".&ft,'~'.expand("<slnum>")) |
10220 | 10461 |
10221 let ykeep= @@ | 10462 let ykeep= @@ |
10222 if isdirectory(s:NetrwFile(a:dirname)) | 10463 if isdirectory(s:NetrwFile(a:dirname)) |
10291 let buftablist = [] | 10532 let buftablist = [] |
10292 let ykeep = @@ | 10533 let ykeep = @@ |
10293 while itab <= tabpagenr("$") | 10534 while itab <= tabpagenr("$") |
10294 let buftablist = buftablist + tabpagebuflist() | 10535 let buftablist = buftablist + tabpagebuflist() |
10295 let itab = itab + 1 | 10536 let itab = itab + 1 |
10296 tabn | 10537 sil! tabn |
10297 endwhile | 10538 endwhile |
10298 " call Decho("buftablist".string(buftablist),'~'.expand("<slnum>")) | 10539 " call Decho("buftablist".string(buftablist),'~'.expand("<slnum>")) |
10299 " call Decho("s:netrw_browselist<".(exists("s:netrw_browselist")? string(s:netrw_browselist) : "").">",'~'.expand("<slnum>")) | 10540 " call Decho("s:netrw_browselist<".(exists("s:netrw_browselist")? string(s:netrw_browselist) : "").">",'~'.expand("<slnum>")) |
10300 " GO through all buffers on netrw_browselist (ie. just local-netrw buffers): | 10541 " GO through all buffers on netrw_browselist (ie. just local-netrw buffers): |
10301 " | refresh any netrw window | 10542 " | refresh any netrw window |
10302 " | wipe out any non-displaying netrw buffer | 10543 " | wipe out any non-displaying netrw buffer |
10303 let curwin = winnr() | 10544 let curwinid = win_getid(winnr()) |
10304 let ibl = 0 | 10545 let ibl = 0 |
10305 for ibuf in s:netrw_browselist | 10546 for ibuf in s:netrw_browselist |
10306 " call Decho("bufwinnr(".ibuf.") index(buftablist,".ibuf.")=".index(buftablist,ibuf),'~'.expand("<slnum>")) | 10547 " call Decho("bufwinnr(".ibuf.") index(buftablist,".ibuf.")=".index(buftablist,ibuf),'~'.expand("<slnum>")) |
10307 if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1 | 10548 if bufwinnr(ibuf) == -1 && index(buftablist,ibuf) == -1 |
10308 " wipe out any non-displaying netrw buffer | 10549 " wipe out any non-displaying netrw buffer |
10550 " (ibuf not shown in a current window AND | |
10551 " ibuf not in any tab) | |
10309 " call Decho("wiping buf#".ibuf,"<".bufname(ibuf).">",'~'.expand("<slnum>")) | 10552 " call Decho("wiping buf#".ibuf,"<".bufname(ibuf).">",'~'.expand("<slnum>")) |
10310 exe "sil! keepj bd ".fnameescape(ibuf) | 10553 exe "sil! keepj bd ".fnameescape(ibuf) |
10311 call remove(s:netrw_browselist,ibl) | 10554 call remove(s:netrw_browselist,ibl) |
10312 " call Decho("browselist=".string(s:netrw_browselist),'~'.expand("<slnum>")) | 10555 " call Decho("browselist=".string(s:netrw_browselist),'~'.expand("<slnum>")) |
10313 continue | 10556 continue |
10327 NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./')) | 10570 NetrwKeepj call s:NetrwRefresh(1,s:NetrwBrowseChgDir(1,'./')) |
10328 endif | 10571 endif |
10329 let ibl= ibl + 1 | 10572 let ibl= ibl + 1 |
10330 " call Decho("bottom of s:netrw_browselist for loop: ibl=".ibl,'~'.expand("<slnum>")) | 10573 " call Decho("bottom of s:netrw_browselist for loop: ibl=".ibl,'~'.expand("<slnum>")) |
10331 endfor | 10574 endfor |
10332 " call Decho("restore window: exe ".curwin."wincmd w",'~'.expand("<slnum>")) | 10575 " call Decho("restore window: win_gotoid(".curwinid.")") |
10333 exe curwin."wincmd w" | 10576 call win_gotoid(curwinid) |
10334 let @@= ykeep | 10577 let @@= ykeep |
10335 | 10578 |
10336 " call Dret("s:LocalBrowseRefresh") | 10579 " call Dret("s:LocalBrowseRefresh") |
10337 endfun | 10580 endfun |
10338 | 10581 |
10784 endif | 11027 endif |
10785 endif | 11028 endif |
10786 let rmfile= substitute(rmfile,'[\/]$','','e') | 11029 let rmfile= substitute(rmfile,'[\/]$','','e') |
10787 | 11030 |
10788 if all || ok =~# 'y\%[es]' || ok == "" | 11031 if all || ok =~# 'y\%[es]' || ok == "" |
10789 if v:version < 704 || !has("patch1109") | 11032 if v:version < 704 || (v:version == 704 && !has("patch1107")) |
10790 " " call Decho("1st attempt: system(netrw#WinPath(".g:netrw_localrmdir.') '.s:ShellEscape(rmfile).')','~'.expand("<slnum>")) | 11033 " " call Decho("1st attempt: system(netrw#WinPath(".g:netrw_localrmdir.') '.s:ShellEscape(rmfile).')','~'.expand("<slnum>")) |
10791 call system(netrw#WinPath(g:netrw_localrmdir).' '.s:ShellEscape(rmfile)) | 11034 call system(netrw#WinPath(g:netrw_localrmdir).' '.s:ShellEscape(rmfile)) |
10792 " " call Decho("v:shell_error=".v:shell_error,'~'.expand("<slnum>")) | 11035 " " call Decho("v:shell_error=".v:shell_error,'~'.expand("<slnum>")) |
10793 | 11036 |
10794 if v:shell_error != 0 | 11037 if v:shell_error != 0 |
10820 | 11063 |
10821 " call Dret("s:NetrwLocalRmFile ".ok) | 11064 " call Dret("s:NetrwLocalRmFile ".ok) |
10822 return ok | 11065 return ok |
10823 endfun | 11066 endfun |
10824 | 11067 |
10825 " --------------------------------------------------------------------- | 11068 " ===================================================================== |
10826 " Support Functions: {{{1 | 11069 " Support Functions: {{{1 |
10827 | |
10828 " --------------------------------------------------------------------- | |
10829 " s:WinNames: COMBAK {{{2 | |
10830 fun! s:WinNames(id) | |
10831 let curwin= winnr() | |
10832 1wincmd w | |
10833 " call Decho("--- Windows By Name --- #".a:id) | |
10834 " windo call Decho("win#".winnr()."<".expand("%").">") | |
10835 " call Decho("--- --- --- --- --- ---") | |
10836 exe curwin."wincmd w" | |
10837 endfun | |
10838 | 11070 |
10839 " --------------------------------------------------------------------- | 11071 " --------------------------------------------------------------------- |
10840 " netrw#Access: intended to provide access to variable values for netrw's test suite {{{2 | 11072 " netrw#Access: intended to provide access to variable values for netrw's test suite {{{2 |
10841 " 0: marked file list of current buffer | 11073 " 0: marked file list of current buffer |
10842 " 1: marked file target | 11074 " 1: marked file target |
10847 else | 11079 else |
10848 return "no-list-buf#".bufnr('%') | 11080 return "no-list-buf#".bufnr('%') |
10849 endif | 11081 endif |
10850 elseif a:ilist == 1 | 11082 elseif a:ilist == 1 |
10851 return s:netrwmftgt | 11083 return s:netrwmftgt |
11084 endif | |
10852 endfun | 11085 endfun |
10853 | 11086 |
10854 " --------------------------------------------------------------------- | 11087 " --------------------------------------------------------------------- |
10855 " netrw#Call: allows user-specified mappings to call internal netrw functions {{{2 | 11088 " netrw#Call: allows user-specified mappings to call internal netrw functions {{{2 |
10856 fun! netrw#Call(funcname,...) | 11089 fun! netrw#Call(funcname,...) |
10857 " call Dfunc("netrw#Call(funcname<".a:funcname.">,".string(a:000).")") | 11090 return call("s:".a:funcname,a:000) |
10858 if a:0 > 0 | |
10859 exe "call s:".a:funcname."(".string(a:000).")" | |
10860 else | |
10861 exe "call s:".a:funcname."()" | |
10862 endif | |
10863 " call Dret("netrw#Call") | |
10864 endfun | 11091 endfun |
10865 | 11092 |
10866 " --------------------------------------------------------------------- | 11093 " --------------------------------------------------------------------- |
10867 " netrw#Expose: allows UserMaps and pchk to look at otherwise script-local variables {{{2 | 11094 " netrw#Expose: allows UserMaps and pchk to look at otherwise script-local variables {{{2 |
10868 " I expect this function to be used in | 11095 " I expect this function to be used in |
10968 " call Dret("netrw#WinPath <".path.">") | 11195 " call Dret("netrw#WinPath <".path.">") |
10969 return path | 11196 return path |
10970 endfun | 11197 endfun |
10971 | 11198 |
10972 " --------------------------------------------------------------------- | 11199 " --------------------------------------------------------------------- |
11200 " s:NetrwBadd: adds marked files to buffer list or vice versa {{{2 | |
11201 " cb : bl2mf=0 add marked files to buffer list | |
11202 " cB : bl2mf=1 use bufferlist to mark files | |
11203 " (mnemonic: cb = copy (marked files) to buffer list) | |
11204 fun! s:NetrwBadd(islocal,bl2mf) | |
11205 " " call Dfunc("s:NetrwBadd(islocal=".a:islocal." mf2bl=".mf2bl.")") | |
11206 if a:bl2mf | |
11207 " cB: add buffer list to marked files | |
11208 redir => bufl | |
11209 ls | |
11210 redir END | |
11211 let bufl = map(split(bufl,"\n"),'substitute(v:val,''^.\{-}"\(.*\)".\{-}$'',''\1'','''')') | |
11212 for fname in bufl | |
11213 call s:NetrwMarkFile(a:islocal,fname) | |
11214 endfor | |
11215 else | |
11216 " cb: add marked files to buffer list | |
11217 for fname in s:netrwmarkfilelist_{bufnr("%")} | |
11218 " " call Decho("badd ".fname,'~'.expand("<slnum>")) | |
11219 exe "badd ".fnameescape(fname) | |
11220 endfor | |
11221 let curbufnr = bufnr("%") | |
11222 let curdir = s:NetrwGetCurdir(a:islocal) | |
11223 call s:NetrwUnmarkList(curbufnr,curdir) " remove markings from local buffer | |
11224 endif | |
11225 " call Dret("s:NetrwBadd") | |
11226 endfun | |
11227 | |
11228 " --------------------------------------------------------------------- | |
10973 " s:ComposePath: Appends a new part to a path taking different systems into consideration {{{2 | 11229 " s:ComposePath: Appends a new part to a path taking different systems into consideration {{{2 |
10974 fun! s:ComposePath(base,subdir) | 11230 fun! s:ComposePath(base,subdir) |
10975 " call Dfunc("s:ComposePath(base<".a:base."> subdir<".a:subdir.">)") | 11231 " call Dfunc("s:ComposePath(base<".a:base."> subdir<".a:subdir.">)") |
10976 | 11232 |
10977 if has("amiga") | 11233 if has("amiga") |
10981 let ret = a:base."/" . a:subdir | 11237 let ret = a:base."/" . a:subdir |
10982 else | 11238 else |
10983 let ret = a:base.a:subdir | 11239 let ret = a:base.a:subdir |
10984 endif | 11240 endif |
10985 | 11241 |
10986 elseif a:subdir =~ '^\a:[/\\][^/\\]' && (has("win32") || has("win95") || has("win64") || has("win16")) | 11242 " COMBAK: test on windows with changing to root directory: :e C:/ |
11243 elseif a:subdir =~ '^\a:[/\\]\([^/\\]\|$\)' && (has("win32") || has("win95") || has("win64") || has("win16")) | |
10987 " call Decho("windows",'~'.expand("<slnum>")) | 11244 " call Decho("windows",'~'.expand("<slnum>")) |
10988 let ret= a:subdir | 11245 let ret= a:subdir |
10989 | 11246 |
10990 elseif a:base =~ '^\a:[/\\][^/\\]' && (has("win32") || has("win95") || has("win64") || has("win16")) | 11247 elseif a:base =~ '^\a:[/\\]\([^/\\]\|$\)' && (has("win32") || has("win95") || has("win64") || has("win16")) |
10991 " call Decho("windows",'~'.expand("<slnum>")) | 11248 " call Decho("windows",'~'.expand("<slnum>")) |
10992 if a:base =~ '[/\\]$' | 11249 if a:base =~ '[/\\]$' |
10993 let ret= a:base.a:subdir | 11250 let ret= a:base.a:subdir |
10994 else | 11251 else |
10995 let ret= a:base.'/'.a:subdir | 11252 let ret= a:base.'/'.a:subdir |
11327 endfun | 11584 endfun |
11328 | 11585 |
11329 " --------------------------------------------------------------------- | 11586 " --------------------------------------------------------------------- |
11330 " s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2 | 11587 " s:NetrwEnew: opens a new buffer, passes netrw buffer variables through {{{2 |
11331 fun! s:NetrwEnew(...) | 11588 fun! s:NetrwEnew(...) |
11332 " call Dfunc("s:NetrwEnew() a:0=".a:0." bufnr($)=".bufnr("$")) | 11589 " call Dfunc("s:NetrwEnew() a:0=".a:0." bufnr($)=".bufnr("$")." expand(%)<".expand("%").">") |
11333 " call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>")) | 11590 " call Decho("curdir<".((a:0>0)? a:1 : "")."> buf#".bufnr("%")."<".bufname("%").">",'~'.expand("<slnum>")) |
11334 | 11591 |
11335 " grab a function-local-variable copy of buffer variables | 11592 " grab a function-local-variable copy of buffer variables |
11336 " call Decho("make function-local copy of netrw variables",'~'.expand("<slnum>")) | 11593 " call Decho("make function-local copy of netrw variables",'~'.expand("<slnum>")) |
11337 if exists("b:netrw_bannercnt") |let netrw_bannercnt = b:netrw_bannercnt |endif | 11594 if exists("b:netrw_bannercnt") |let netrw_bannercnt = b:netrw_bannercnt |endif |
11390 file NetrwTreeListing | 11647 file NetrwTreeListing |
11391 setl nobl bt=nowrite bh=hide | 11648 setl nobl bt=nowrite bh=hide |
11392 nno <silent> <buffer> [ :sil call <SID>TreeListMove('[')<cr> | 11649 nno <silent> <buffer> [ :sil call <SID>TreeListMove('[')<cr> |
11393 nno <silent> <buffer> ] :sil call <SID>TreeListMove(']')<cr> | 11650 nno <silent> <buffer> ] :sil call <SID>TreeListMove(']')<cr> |
11394 else | 11651 else |
11395 exe "sil! keepalt file ".fnameescape(b:netrw_curdir) | 11652 call s:NetrwBufRename(b:netrw_curdir) |
11396 endif | 11653 endif |
11397 endif | 11654 endif |
11398 endif | 11655 endif |
11399 | 11656 |
11400 " call Dret("s:NetrwEnew : buf#".bufnr("%")."<".bufname("%")."> expand(%)<".expand("%")."> expand(#)<".expand("#")."> bh=".&bh." win#".winnr()." winnr($)#".winnr("$")) | 11657 " call Dret("s:NetrwEnew : buf#".bufnr("%")."<".bufname("%")."> expand(%)<".expand("%")."> expand(#)<".expand("#")."> bh=".&bh." win#".winnr()." winnr($)#".winnr("$")) |
11401 endfun | 11658 endfun |
11402 | 11659 |
11403 " --------------------------------------------------------------------- | 11660 " --------------------------------------------------------------------- |
11404 " s:NetrwExe: executes a string using "!" {{{2 | 11661 " s:NetrwExe: executes a string using "!" {{{2 |
11405 fun! s:NetrwExe(cmd) | 11662 fun! s:NetrwExe(cmd) |
11406 " call Dfunc("s:NetrwExe(a:cmd)") | 11663 " call Dfunc("s:NetrwExe(a:cmd<".a:cmd.">)") |
11407 if has("win32") && &shell !~? 'cmd' && !g:netrw_cygwin | 11664 if has("win32") && &shell !~? 'cmd' && !g:netrw_cygwin |
11665 " call Decho("using win32:",expand("<slnum>")) | |
11408 let savedShell=[&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash] | 11666 let savedShell=[&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash] |
11409 set shell& shellcmdflag& shellxquote& shellxescape& | 11667 set shell& shellcmdflag& shellxquote& shellxescape& |
11410 set shellquote& shellpipe& shellredir& shellslash& | 11668 set shellquote& shellpipe& shellredir& shellslash& |
11411 exe a:cmd | 11669 exe a:cmd |
11412 let [&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash] = savedShell | 11670 let [&shell,&shellcmdflag,&shellxquote,&shellxescape,&shellquote,&shellpipe,&shellredir,&shellslash] = savedShell |
11413 else | 11671 else |
11672 " call Decho("exe ".a:cmd,'~'.expand("<slnum>")) | |
11414 exe a:cmd | 11673 exe a:cmd |
11415 endif | 11674 endif |
11416 " call Dret("s:NetrwExe") | 11675 " call Dret("s:NetrwExe : v:shell_error=".v:shell_error) |
11417 endfun | 11676 endfun |
11418 | 11677 |
11419 " --------------------------------------------------------------------- | 11678 " --------------------------------------------------------------------- |
11420 " s:NetrwInsureWinVars: insure that a netrw buffer has its w: variables in spite of a wincmd v or s {{{2 | 11679 " s:NetrwInsureWinVars: insure that a netrw buffer has its w: variables in spite of a wincmd v or s {{{2 |
11421 fun! s:NetrwInsureWinVars() | 11680 fun! s:NetrwInsureWinVars() |
11444 endif | 11703 endif |
11445 endfun | 11704 endfun |
11446 | 11705 |
11447 " --------------------------------------------------------------------- | 11706 " --------------------------------------------------------------------- |
11448 " s:NetrwLcd: handles changing the (local) directory {{{2 | 11707 " s:NetrwLcd: handles changing the (local) directory {{{2 |
11708 " Returns: 0=success | |
11709 " -1=failed | |
11449 fun! s:NetrwLcd(newdir) | 11710 fun! s:NetrwLcd(newdir) |
11450 " call Dfunc("s:NetrwLcd(newdir<".a:newdir.">)") | 11711 " call Dfunc("s:NetrwLcd(newdir<".a:newdir.">)") |
11451 | 11712 |
11713 let err472= 0 | |
11452 try | 11714 try |
11453 exe 'NetrwKeepj sil lcd '.fnameescape(a:newdir) | 11715 exe 'NetrwKeepj sil lcd '.fnameescape(a:newdir) |
11454 catch /^Vim\%((\a\+)\)\=:E344/ | 11716 catch /^Vim\%((\a\+)\)\=:E344/ |
11455 " Vim's lcd fails with E344 when attempting to go above the 'root' of a Windows share. | 11717 " Vim's lcd fails with E344 when attempting to go above the 'root' of a Windows share. |
11456 " Therefore, detect if a Windows share is present, and if E344 occurs, just settle at | 11718 " Therefore, detect if a Windows share is present, and if E344 occurs, just settle at |
11462 let dirname = '\' | 11724 let dirname = '\' |
11463 exe 'NetrwKeepj sil lcd '.fnameescape(dirname) | 11725 exe 'NetrwKeepj sil lcd '.fnameescape(dirname) |
11464 endif | 11726 endif |
11465 endif | 11727 endif |
11466 catch /^Vim\%((\a\+)\)\=:E472/ | 11728 catch /^Vim\%((\a\+)\)\=:E472/ |
11729 let err472= 1 | |
11730 endtry | |
11731 | |
11732 if err472 | |
11467 call netrw#ErrorMsg(s:ERROR,"unable to change directory to <".a:newdir."> (permissions?)",61) | 11733 call netrw#ErrorMsg(s:ERROR,"unable to change directory to <".a:newdir."> (permissions?)",61) |
11468 if exists("w:netrw_prvdir") | 11734 if exists("w:netrw_prvdir") |
11469 let a:newdir= w:netrw_prvdir | 11735 let a:newdir= w:netrw_prvdir |
11470 else | 11736 else |
11471 call s:NetrwOptionRestore("w:") | 11737 call s:NetrwOptionRestore("w:") |
11472 " call Decho("setl noma nomod nowrap",'~'.expand("<slnum>")) | 11738 " call Decho("setl noma nomod nowrap",'~'.expand("<slnum>")) |
11473 exe "setl ".g:netrw_bufsettings | 11739 exe "setl ".g:netrw_bufsettings |
11474 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) | 11740 " call Decho(" ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap." (filename<".expand("%")."> win#".winnr()." ft<".&ft.">)",'~'.expand("<slnum>")) |
11475 let a:newdir= dirname | 11741 let a:newdir= dirname |
11476 " call Dret("s:NetrwBrowse : reusing buffer#".(exists("bufnum")? bufnum : 'N/A')."<".dirname."> getcwd<".getcwd().">") | 11742 endif |
11477 return | 11743 " call Dret("s:NetrwBrowse -1 : reusing buffer#".(exists("bufnum")? bufnum : 'N/A')."<".dirname."> getcwd<".getcwd().">") |
11478 endif | 11744 return -1 |
11479 endtry | 11745 endif |
11480 | 11746 |
11481 " call Dret("s:NetrwLcd") | 11747 " call Dret("s:NetrwLcd 0") |
11748 return 0 | |
11482 endfun | 11749 endfun |
11483 | 11750 |
11484 " ------------------------------------------------------------------------ | 11751 " ------------------------------------------------------------------------ |
11485 " s:NetrwSaveWordPosn: used to keep cursor on same word after refresh, {{{2 | 11752 " s:NetrwSaveWordPosn: used to keep cursor on same word after refresh, {{{2 |
11486 " changed sorting, etc. Also see s:NetrwRestoreWordPosn(). | 11753 " changed sorting, etc. Also see s:NetrwRestoreWordPosn(). |
11644 " s:Rexplore: implements returning from a buffer to a netrw directory {{{2 | 11911 " s:Rexplore: implements returning from a buffer to a netrw directory {{{2 |
11645 " | 11912 " |
11646 " s:SetRexDir() sets up <2-leftmouse> maps (if g:netrw_retmap | 11913 " s:SetRexDir() sets up <2-leftmouse> maps (if g:netrw_retmap |
11647 " is true) and a command, :Rexplore, which call this function. | 11914 " is true) and a command, :Rexplore, which call this function. |
11648 " | 11915 " |
11649 " s:netrw_nbcd is set up by s:NetrwBrowseChgDir() | 11916 " s:netrw_posn is set up by s:NetrwBrowseChgDir() |
11650 " | 11917 " |
11651 " s:rexposn_BUFNR used to save/restore cursor position | 11918 " s:rexposn_BUFNR used to save/restore cursor position |
11652 fun! s:NetrwRexplore(islocal,dirname) | 11919 fun! s:NetrwRexplore(islocal,dirname) |
11653 if exists("s:netrwdrag") | 11920 if exists("s:netrwdrag") |
11654 return | 11921 return |
11700 endif | 11967 endif |
11701 else | 11968 else |
11702 " call Decho("s:rexposn_".bufnr('%')."<".bufname("%")."> doesn't exist",'~'.expand("<slnum>")) | 11969 " call Decho("s:rexposn_".bufnr('%')."<".bufname("%")."> doesn't exist",'~'.expand("<slnum>")) |
11703 endif | 11970 endif |
11704 | 11971 |
11705 if exists("s:explore_match") | 11972 if has("syntax") && exists("g:syntax_on") && g:syntax_on |
11706 exe "2match netrwMarkFile /".s:explore_match."/" | 11973 if exists("s:explore_match") |
11974 exe "2match netrwMarkFile /".s:explore_match."/" | |
11975 endif | |
11707 endif | 11976 endif |
11708 | 11977 |
11709 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) | 11978 " call Decho("settings buf#".bufnr("%")."<".bufname("%").">: ".((&l:ma == 0)? "no" : "")."ma ".((&l:mod == 0)? "no" : "")."mod ".((&l:bl == 0)? "no" : "")."bl ".((&l:ro == 0)? "no" : "")."ro fo=".&l:fo,'~'.expand("<slnum>")) |
11710 " call Dret("s:NetrwRexplore : ft=".&ft) | 11979 " call Dret("s:NetrwRexplore : ft=".&ft) |
11711 endfun | 11980 endfun |
11729 " --------------------------------------------------------------------- | 11998 " --------------------------------------------------------------------- |
11730 " s:SavePosn: saves position associated with current buffer into a dictionary {{{2 | 11999 " s:SavePosn: saves position associated with current buffer into a dictionary {{{2 |
11731 fun! s:SavePosn(posndict) | 12000 fun! s:SavePosn(posndict) |
11732 " call Dfunc("s:SavePosn(posndict) curbuf#".bufnr("%")."<".bufname("%").">") | 12001 " call Dfunc("s:SavePosn(posndict) curbuf#".bufnr("%")."<".bufname("%").">") |
11733 | 12002 |
11734 let a:posndict[bufnr("%")]= winsaveview() | 12003 if !exists("a:posndict[bufnr('%')]") |
11735 " call Decho("saving posn: posndict[".bufnr("%")."]=".string(winsaveview()),'~'.expand("<slnum>")) | 12004 let a:posndict[bufnr("%")]= [] |
12005 endif | |
12006 " call Decho("before push: a:posndict[buf#".bufnr("%")."]=".string(a:posndict[bufnr('%')])) | |
12007 call add(a:posndict[bufnr("%")],winsaveview()) | |
12008 " call Decho("after push: a:posndict[buf#".bufnr("%")."]=".string(a:posndict[bufnr('%')])) | |
11736 | 12009 |
11737 " call Dret("s:SavePosn posndict") | 12010 " call Dret("s:SavePosn posndict") |
11738 return a:posndict | 12011 return a:posndict |
11739 endfun | 12012 endfun |
11740 | 12013 |
11741 " --------------------------------------------------------------------- | 12014 " --------------------------------------------------------------------- |
11742 " s:RestorePosn: restores position associated with current buffer using dictionary {{{2 | 12015 " s:RestorePosn: restores position associated with current buffer using dictionary {{{2 |
11743 fun! s:RestorePosn(posndict) | 12016 fun! s:RestorePosn(posndict) |
11744 " call Dfunc("s:RestorePosn(posndict) curbuf#".bufnr("%")."<".bufname("%").">") | 12017 " call Dfunc("s:RestorePosn(posndict) curbuf#".bufnr("%")."<".bufname("%").">") |
11745 if has_key(a:posndict,bufnr("%")) | 12018 if exists("a:posndict") |
11746 call winrestview(a:posndict[bufnr("%")]) | 12019 if has_key(a:posndict,bufnr("%")) |
11747 " call Decho("restoring posn: posndict[".bufnr("%")."]=".string(a:posndict[bufnr("%")]),'~'.expand("<slnum>")) | 12020 " call Decho("before pop: a:posndict[buf#".bufnr("%")."]=".string(a:posndict[bufnr('%')])) |
12021 let posnlen= len(a:posndict[bufnr("%")]) | |
12022 if posnlen > 0 | |
12023 let posnlen= posnlen - 1 | |
12024 " call Decho("restoring posn posndict[".bufnr("%")."][".posnlen."]=".string(a:posndict[bufnr("%")][posnlen]),'~'.expand("<slnum>")) | |
12025 call winrestview(a:posndict[bufnr("%")][posnlen]) | |
12026 call remove(a:posndict[bufnr("%")],posnlen) | |
12027 " call Decho("after pop: a:posndict[buf#".bufnr("%")."]=".string(a:posndict[bufnr('%')])) | |
12028 endif | |
12029 endif | |
11748 endif | 12030 endif |
11749 " call Dret("s:RestorePosn") | 12031 " call Dret("s:RestorePosn") |
11750 endfun | 12032 endfun |
11751 | 12033 |
11752 " --------------------------------------------------------------------- | 12034 " --------------------------------------------------------------------- |
12030 endif | 12312 endif |
12031 | 12313 |
12032 " call Dret("s:UserMaps") | 12314 " call Dret("s:UserMaps") |
12033 endfun | 12315 endfun |
12034 | 12316 |
12035 " --------------------------------------------------------------------- | 12317 " ========================== |
12036 " Settings Restoration: {{{1 | 12318 " Settings Restoration: {{{1 |
12319 " ========================== | |
12037 let &cpo= s:keepcpo | 12320 let &cpo= s:keepcpo |
12038 unlet s:keepcpo | 12321 unlet s:keepcpo |
12039 | 12322 |
12040 " ------------------------------------------------------------------------ | 12323 " =============== |
12041 " Modelines: {{{1 | 12324 " Modelines: {{{1 |
12325 " =============== | |
12042 " vim:ts=8 fdm=marker | 12326 " vim:ts=8 fdm=marker |