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