diff options
| author | Josh Rahm <joshuarahm@gmail.com> | 2025-02-05 23:09:29 +0000 |
|---|---|---|
| committer | Josh Rahm <joshuarahm@gmail.com> | 2025-02-05 23:09:29 +0000 |
| commit | d5f194ce780c95821a855aca3c19426576d28ae0 (patch) | |
| tree | d45f461b19f9118ad2bb1f440a7a08973ad18832 /runtime/autoload/netrw.vim | |
| parent | c5d770d311841ea5230426cc4c868e8db27300a8 (diff) | |
| parent | 44740e561fc93afe3ebecfd3618bda2d2abeafb0 (diff) | |
| download | rneovim-rahm.tar.gz rneovim-rahm.tar.bz2 rneovim-rahm.zip | |
Diffstat (limited to 'runtime/autoload/netrw.vim')
| -rw-r--r-- | runtime/autoload/netrw.vim | 11941 |
1 files changed, 0 insertions, 11941 deletions
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim deleted file mode 100644 index 1df545278f..0000000000 --- a/runtime/autoload/netrw.vim +++ /dev/null @@ -1,11941 +0,0 @@ -" netrw.vim: Handles file transfer and remote directory listing across -" AUTOLOAD SECTION -" Maintainer: This runtime file is looking for a new maintainer. -" Date: May 03, 2023 -" Version: 173a -" Last Change: {{{1 -" 2023 Nov 21 by Vim Project: ignore wildignore when expanding $COMSPEC (v173a) -" 2023 Nov 22 by Vim Project: fix handling of very long filename on longlist style (v173a) -" 2024 Feb 19 by Vim Project: (announce adoption) -" 2024 Feb 29 by Vim Project: handle symlinks in tree mode correctly -" 2024 Apr 03 by Vim Project: detect filetypes for remote edited files -" 2024 May 08 by Vim Project: cleanup legacy Win9X checks -" 2024 May 09 by Vim Project: remove hard-coded private.ppk -" 2024 May 10 by Vim Project: recursively delete directories by default -" 2024 May 13 by Vim Project: prefer scp over pscp -" 2024 Jun 04 by Vim Project: set bufhidden if buffer changed, nohidden is set and buffer shall be switched (#14915) -" 2024 Jun 13 by Vim Project: glob() on Windows fails when a directory name contains [] (#14952) -" 2024 Jun 23 by Vim Project: save ad restore registers when liststyle = WIDELIST (#15077, #15114) -" 2024 Jul 22 by Vim Project: avoid endless recursion (#15318) -" 2024 Jul 23 by Vim Project: escape filename before trying to delete it (#15330) -" 2024 Jul 30 by Vim Project: handle mark-copy to same target directory (#12112) -" 2024 Aug 02 by Vim Project: honor g:netrw_alt{o,v} for :{S,H,V}explore (#15417) -" 2024 Aug 15 by Vim Project: style changes, prevent E121 (#15501) -" 2024 Aug 22 by Vim Project: fix mf-selection highlight (#15551) -" 2024 Aug 22 by Vim Project: adjust echo output of mx command (#15550) -" 2024 Sep 15 by Vim Project: more strict confirmation dialog (#15680) -" 2024 Sep 19 by Vim Project: mf-selection highlight uses wrong pattern (#15700) -" 2024 Sep 21 by Vim Project: remove extraneous closing bracket (#15718) -" 2024 Oct 21 by Vim Project: remove netrwFileHandlers (#15895) -" 2024 Oct 27 by Vim Project: clean up gx mapping (#15721) -" 2024 Oct 30 by Vim Project: fix filetype detection for remote files (#15961) -" 2024 Oct 30 by Vim Project: fix x mapping on cygwin (#13687) -" 2024 Oct 31 by Vim Project: add netrw#Launch() and netrw#Open() (#15962) -" 2024 Oct 31 by Vim Project: fix E874 when browsing remote dir (#15964) -" 2024 Nov 07 by Vim Project: use keeppatterns to prevent polluting the search history -" 2024 Nov 07 by Vim Project: fix a few issues with netrw tree listing (#15996) -" 2024 Nov 10 by Vim Project: directory symlink not resolved in tree view (#16020) -" 2024 Nov 14 by Vim Project: small fixes to netrw#BrowseX (#16056) -" }}} -" Former Maintainer: Charles E Campbell -" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim -" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 -" Permission is hereby granted to use and distribute this code, -" with or without modifications, provided that this copyright -" notice is copied with it. Like anything else that's free, -" netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided -" *as is* and come with no warranty of any kind, either -" expressed or implied. By using this plugin, you agree that -" in no event will the copyright holder be liable for any damages -" resulting from the use of this software. -" -" Note: the code here was started in 1999 under a much earlier version of vim. The directory browsing -" code was written using vim v6, which did not have Lists (Lists were first offered with vim-v7). -" -"redraw!|call DechoSep()|call inputsave()|call input("Press <cr> to continue")|call inputrestore() -" -" But be doers of the Word, and not only hearers, deluding your own selves {{{1 -" (James 1:22 RSV) -" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- -" Load Once: {{{1 -if &cp || exists("g:loaded_netrw") - finish -endif - -" Check that vim has patches that netrw requires. -" Patches needed for v7.4: 1557, and 213. -" (netrw will benefit from vim's having patch#656, too) -let s:needspatches=[1557,213] -if exists("s:needspatches") - for ptch in s:needspatches - if v:version < 704 || (v:version == 704 && !has("patch".ptch)) - if !exists("s:needpatch{ptch}") - unsilent echomsg "***sorry*** this version of netrw requires vim v7.4 with patch#".ptch - endif - let s:needpatch{ptch}= 1 - finish - endif - endfor -endif - -let g:loaded_netrw = "v173" - -let s:keepcpo= &cpo -setl cpo&vim -"DechoFuncName 1 -"DechoRemOn -"call Decho("doing autoload/netrw.vim version ".g:loaded_netrw,'~'.expand("<slnum>")) - -" ====================== -" Netrw Variables: {{{1 -" ====================== - -" --------------------------------------------------------------------- -" netrw#ErrorMsg: {{{2 -" 0=note = s:NOTE -" 1=warning = s:WARNING -" 2=error = s:ERROR -" Usage: netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,"some message",error-number) -" netrw#ErrorMsg(s:NOTE | s:WARNING | s:ERROR,["message1","message2",...],error-number) -" (this function can optionally take a list of messages) -" Dec 2, 2019 : max errnum currently is 106 -fun! netrw#ErrorMsg(level,msg,errnum) -" call Dfunc("netrw#ErrorMsg(level=".a:level." msg<".a:msg."> errnum=".a:errnum.") g:netrw_use_errorwindow=".g:netrw_use_errorwindow) - - if a:level < g:netrw_errorlvl -" call Dret("netrw#ErrorMsg : suppressing level=".a:level." since g:netrw_errorlvl=".g:netrw_errorlvl) - return - endif - - if a:level == 1 - let level= "**warning** (netrw) " - elseif a:level == 2 - let level= "**error** (netrw) " - else - let level= "**note** (netrw) " - endif -" call Decho("level=".level,'~'.expand("<slnum>")) - - if g:netrw_use_errorwindow == 2 && exists("*popup_atcursor") - " use popup window - if type(a:msg) == 3 - let msg = [level]+a:msg - else - let msg= level.a:msg - endif - let s:popuperr_id = popup_atcursor(msg,{}) - let s:popuperr_text= "" - elseif g:netrw_use_errorwindow - " (default) netrw creates a one-line window to show error/warning - " messages (reliably displayed) - - " record current window number - let s:winBeforeErr= winnr() -" call Decho("s:winBeforeErr=".s:winBeforeErr,'~'.expand("<slnum>")) - - " getting messages out reliably is just plain difficult! - " This attempt splits the current window, creating a one line window. - if bufexists("NetrwMessage") && bufwinnr("NetrwMessage") > 0 -" call Decho("write to NetrwMessage buffer",'~'.expand("<slnum>")) - exe bufwinnr("NetrwMessage")."wincmd w" -" call Decho("setl ma noro",'~'.expand("<slnum>")) - setl ma noro - if type(a:msg) == 3 - for msg in a:msg - NetrwKeepj call setline(line("$")+1,level.msg) - endfor - else - NetrwKeepj call setline(line("$")+1,level.a:msg) - endif - NetrwKeepj $ - else -" call Decho("create a NetrwMessage buffer window",'~'.expand("<slnum>")) - bo 1split - sil! call s:NetrwEnew() - sil! NetrwKeepj call s:NetrwOptionsSafe(1) - setl bt=nofile - NetrwKeepj file NetrwMessage -" call Decho("setl ma noro",'~'.expand("<slnum>")) - setl ma noro - if type(a:msg) == 3 - for msg in a:msg - NetrwKeepj call setline(line("$")+1,level.msg) - endfor - else - NetrwKeepj call setline(line("$"),level.a:msg) - endif - NetrwKeepj $ - endif -" call Decho("wrote msg<".level.a:msg."> to NetrwMessage win#".winnr(),'~'.expand("<slnum>")) - if &fo !~ '[ta]' - syn clear - syn match netrwMesgNote "^\*\*note\*\*" - syn match netrwMesgWarning "^\*\*warning\*\*" - syn match netrwMesgError "^\*\*error\*\*" - hi link netrwMesgWarning WarningMsg - hi link netrwMesgError Error - endif -" call Decho("setl noma ro bh=wipe",'~'.expand("<slnum>")) - setl ro nomod noma bh=wipe - - else - " (optional) netrw will show messages using echomsg. Even if the - " message doesn't appear, at least it'll be recallable via :messages -" redraw! - if a:level == s:WARNING - echohl WarningMsg - elseif a:level == s:ERROR - echohl Error - endif - - if type(a:msg) == 3 - for msg in a:msg - unsilent echomsg level.msg - endfor - else - unsilent echomsg level.a:msg - endif - -" call Decho("echomsg ***netrw*** ".a:msg,'~'.expand("<slnum>")) - echohl None - endif - -" call Dret("netrw#ErrorMsg") -endfun - -" --------------------------------------------------------------------- -" s:NetrwInit: initializes variables if they haven't been defined {{{2 -" Loosely, varname = value. -fun s:NetrwInit(varname,value) -" call Decho("varname<".a:varname."> value=".a:value,'~'.expand("<slnum>")) - if !exists(a:varname) - if type(a:value) == 0 - exe "let ".a:varname."=".a:value - elseif type(a:value) == 1 && a:value =~ '^[{[]' - exe "let ".a:varname."=".a:value - elseif type(a:value) == 1 - exe "let ".a:varname."="."'".a:value."'" - else - exe "let ".a:varname."=".a:value - endif - endif -endfun - -" --------------------------------------------------------------------- -" Netrw Constants: {{{2 -call s:NetrwInit("g:netrw_dirhistcnt",0) -if !exists("s:LONGLIST") - call s:NetrwInit("s:THINLIST",0) - call s:NetrwInit("s:LONGLIST",1) - call s:NetrwInit("s:WIDELIST",2) - call s:NetrwInit("s:TREELIST",3) - call s:NetrwInit("s:MAXLIST" ,4) -endif - -let s:NOTE = 0 -let s:WARNING = 1 -let s:ERROR = 2 -call s:NetrwInit("g:netrw_errorlvl", s:NOTE) - -" --------------------------------------------------------------------- -" Default option values: {{{2 -let g:netrw_localcopycmdopt = "" -let g:netrw_localcopydircmdopt = "" -let g:netrw_localmkdiropt = "" -let g:netrw_localmovecmdopt = "" - -" --------------------------------------------------------------------- -" Default values for netrw's global protocol variables {{{2 -if !exists("g:netrw_use_errorwindow") - let g:netrw_use_errorwindow = 0 -endif - -if !exists("g:netrw_dav_cmd") - if executable("cadaver") - let g:netrw_dav_cmd = "cadaver" - elseif executable("curl") - let g:netrw_dav_cmd = "curl" - else - let g:netrw_dav_cmd = "" - endif -endif -if !exists("g:netrw_fetch_cmd") - if executable("fetch") - let g:netrw_fetch_cmd = "fetch -o" - else - let g:netrw_fetch_cmd = "" - endif -endif -if !exists("g:netrw_file_cmd") - if executable("elinks") - call s:NetrwInit("g:netrw_file_cmd","elinks") - elseif executable("links") - call s:NetrwInit("g:netrw_file_cmd","links") - endif -endif -if !exists("g:netrw_ftp_cmd") - let g:netrw_ftp_cmd = "ftp" -endif -let s:netrw_ftp_cmd= g:netrw_ftp_cmd -if !exists("g:netrw_ftp_options") - let g:netrw_ftp_options= "-i -n" -endif -if !exists("g:netrw_http_cmd") - if executable("wget") - let g:netrw_http_cmd = "wget" - call s:NetrwInit("g:netrw_http_xcmd","-q -O") - elseif executable("curl") - let g:netrw_http_cmd = "curl" - call s:NetrwInit("g:netrw_http_xcmd","-L -o") - elseif executable("elinks") - let g:netrw_http_cmd = "elinks" - call s:NetrwInit("g:netrw_http_xcmd","-source >") - elseif executable("fetch") - let g:netrw_http_cmd = "fetch" - call s:NetrwInit("g:netrw_http_xcmd","-o") - elseif executable("links") - let g:netrw_http_cmd = "links" - call s:NetrwInit("g:netrw_http_xcmd","-http.extra-header ".shellescape("Accept-Encoding: identity", 1)." -source >") - else - let g:netrw_http_cmd = "" - endif -endif -call s:NetrwInit("g:netrw_http_put_cmd","curl -T") -call s:NetrwInit("g:netrw_keepj","keepj") -call s:NetrwInit("g:netrw_rcp_cmd" , "rcp") -call s:NetrwInit("g:netrw_rsync_cmd", "rsync") -call s:NetrwInit("g:netrw_rsync_sep", "/") -if !exists("g:netrw_scp_cmd") - if executable("scp") - call s:NetrwInit("g:netrw_scp_cmd" , "scp -q") - elseif executable("pscp") - call s:NetrwInit("g:netrw_scp_cmd", 'pscp -q') - else - call s:NetrwInit("g:netrw_scp_cmd" , "scp -q") - endif -endif -call s:NetrwInit("g:netrw_sftp_cmd" , "sftp") -call s:NetrwInit("g:netrw_ssh_cmd" , "ssh") - -if has("win32") - \ && exists("g:netrw_use_nt_rcp") - \ && g:netrw_use_nt_rcp - \ && executable( $SystemRoot .'/system32/rcp.exe') - let s:netrw_has_nt_rcp = 1 - let s:netrw_rcpmode = '-b' -else - let s:netrw_has_nt_rcp = 0 - let s:netrw_rcpmode = '' -endif - -" --------------------------------------------------------------------- -" Default values for netrw's global variables {{{2 -" Cygwin Detection ------- {{{3 -if !exists("g:netrw_cygwin") - if has("win32unix") && &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$' - let g:netrw_cygwin= 1 - else - let g:netrw_cygwin= 0 - endif -endif -" Default values - a-c ---------- {{{3 -call s:NetrwInit("g:netrw_alto" , &sb) -call s:NetrwInit("g:netrw_altv" , &spr) -call s:NetrwInit("g:netrw_banner" , 1) -call s:NetrwInit("g:netrw_browse_split", 0) -call s:NetrwInit("g:netrw_bufsettings" , "noma nomod nonu nobl nowrap ro nornu") -call s:NetrwInit("g:netrw_chgwin" , -1) -call s:NetrwInit("g:netrw_clipboard" , 1) -call s:NetrwInit("g:netrw_compress" , "gzip") -call s:NetrwInit("g:netrw_ctags" , "ctags") -if exists("g:netrw_cursorline") && !exists("g:netrw_cursor") - call netrw#ErrorMsg(s:NOTE,'g:netrw_cursorline is deprecated; use g:netrw_cursor instead',77) - let g:netrw_cursor= g:netrw_cursorline -endif -call s:NetrwInit("g:netrw_cursor" , 2) -let s:netrw_usercul = &cursorline -let s:netrw_usercuc = &cursorcolumn -"call Decho("(netrw) COMBAK: cuc=".&l:cuc." cul=".&l:cul." initialization of s:netrw_cu[cl]") -call s:NetrwInit("g:netrw_cygdrive","/cygdrive") -" Default values - d-g ---------- {{{3 -call s:NetrwInit("s:didstarstar",0) -call s:NetrwInit("g:netrw_dirhistcnt" , 0) -call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf", ".xz" : "unxz" }') -call s:NetrwInit("g:netrw_dirhistmax" , 10) -call s:NetrwInit("g:netrw_fastbrowse" , 1) -call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$') -if !exists("g:netrw_ftp_list_cmd") - if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin) - let g:netrw_ftp_list_cmd = "ls -lF" - let g:netrw_ftp_timelist_cmd = "ls -tlF" - let g:netrw_ftp_sizelist_cmd = "ls -slF" - else - let g:netrw_ftp_list_cmd = "dir" - let g:netrw_ftp_timelist_cmd = "dir" - let g:netrw_ftp_sizelist_cmd = "dir" - endif -endif -call s:NetrwInit("g:netrw_ftpmode",'binary') -" Default values - h-lh ---------- {{{3 -call s:NetrwInit("g:netrw_hide",1) -if !exists("g:netrw_ignorenetrc") - if &shell =~ '\c\<\%(cmd\|4nt\)\.exe$' - let g:netrw_ignorenetrc= 1 - else - let g:netrw_ignorenetrc= 0 - endif -endif -call s:NetrwInit("g:netrw_keepdir",1) -if !exists("g:netrw_list_cmd") - if g:netrw_scp_cmd =~ '^pscp' && executable("pscp") - if exists("g:netrw_list_cmd_options") - let g:netrw_list_cmd= g:netrw_scp_cmd." -ls USEPORT HOSTNAME: ".g:netrw_list_cmd_options - else - let g:netrw_list_cmd= g:netrw_scp_cmd." -ls USEPORT HOSTNAME:" - endif - elseif executable(g:netrw_ssh_cmd) - " provide a scp-based default listing command - if exists("g:netrw_list_cmd_options") - let g:netrw_list_cmd= g:netrw_ssh_cmd." USEPORT HOSTNAME ls -FLa ".g:netrw_list_cmd_options - else - let g:netrw_list_cmd= g:netrw_ssh_cmd." USEPORT HOSTNAME ls -FLa" - endif - else -" call Decho(g:netrw_ssh_cmd." is not executable",'~'.expand("<slnum>")) - let g:netrw_list_cmd= "" - endif -endif -call s:NetrwInit("g:netrw_list_hide","") -" Default values - lh-lz ---------- {{{3 -if exists("g:netrw_local_copycmd") - let g:netrw_localcopycmd= g:netrw_local_copycmd - call netrw#ErrorMsg(s:NOTE,"g:netrw_local_copycmd is deprecated in favor of g:netrw_localcopycmd",84) -endif -if !exists("g:netrw_localcmdshell") - let g:netrw_localcmdshell= "" -endif -if !exists("g:netrw_localcopycmd") - if has("win32") - if g:netrw_cygwin - let g:netrw_localcopycmd= "cp" - else - let g:netrw_localcopycmd = expand("$COMSPEC", v:true) - let g:netrw_localcopycmdopt= " /c copy" - endif - elseif has("unix") || has("macunix") - let g:netrw_localcopycmd= "cp" - else - let g:netrw_localcopycmd= "" - endif -endif -if !exists("g:netrw_localcopydircmd") - if has("win32") - if g:netrw_cygwin - let g:netrw_localcopydircmd = "cp" - let g:netrw_localcopydircmdopt= " -R" - else - let g:netrw_localcopydircmd = expand("$COMSPEC", v:true) - let g:netrw_localcopydircmdopt= " /c xcopy /e /c /h /i /k" - endif - elseif has("unix") - let g:netrw_localcopydircmd = "cp" - let g:netrw_localcopydircmdopt= " -R" - elseif has("macunix") - let g:netrw_localcopydircmd = "cp" - let g:netrw_localcopydircmdopt= " -R" - else - let g:netrw_localcopydircmd= "" - endif -endif -if exists("g:netrw_local_mkdir") - let g:netrw_localmkdir= g:netrw_local_mkdir - call netrw#ErrorMsg(s:NOTE,"g:netrw_local_mkdir is deprecated in favor of g:netrw_localmkdir",87) -endif -if has("win32") - if g:netrw_cygwin - call s:NetrwInit("g:netrw_localmkdir","mkdir") - else - let g:netrw_localmkdir = expand("$COMSPEC", v:true) - let g:netrw_localmkdiropt= " /c mkdir" - endif -else - call s:NetrwInit("g:netrw_localmkdir","mkdir") -endif -call s:NetrwInit("g:netrw_remote_mkdir","mkdir") -if exists("g:netrw_local_movecmd") - let g:netrw_localmovecmd= g:netrw_local_movecmd - call netrw#ErrorMsg(s:NOTE,"g:netrw_local_movecmd is deprecated in favor of g:netrw_localmovecmd",88) -endif -if !exists("g:netrw_localmovecmd") - if has("win32") - if g:netrw_cygwin - let g:netrw_localmovecmd= "mv" - else - let g:netrw_localmovecmd = expand("$COMSPEC", v:true) - let g:netrw_localmovecmdopt= " /c move" - endif - elseif has("unix") || has("macunix") - let g:netrw_localmovecmd= "mv" - else - let g:netrw_localmovecmd= "" - endif -endif -" following serves as an example for how to insert a version&patch specific test -"if v:version < 704 || (v:version == 704 && !has("patch1107")) -"endif -call s:NetrwInit("g:netrw_liststyle" , s:THINLIST) -" sanity checks -if g:netrw_liststyle < 0 || g:netrw_liststyle >= s:MAXLIST - let g:netrw_liststyle= s:THINLIST -endif -if g:netrw_liststyle == s:LONGLIST && g:netrw_scp_cmd !~ '^pscp' - let g:netrw_list_cmd= g:netrw_list_cmd." -l" -endif -" Default values - m-r ---------- {{{3 -call s:NetrwInit("g:netrw_markfileesc" , '*./[\~') -call s:NetrwInit("g:netrw_maxfilenamelen", 32) -call s:NetrwInit("g:netrw_menu" , 1) -call s:NetrwInit("g:netrw_mkdir_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME mkdir") -call s:NetrwInit("g:netrw_mousemaps" , (exists("+mouse") && &mouse =~# '[anh]')) -call s:NetrwInit("g:netrw_retmap" , 0) -if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin) - call s:NetrwInit("g:netrw_chgperm" , "chmod PERM FILENAME") -elseif has("win32") - call s:NetrwInit("g:netrw_chgperm" , "cacls FILENAME /e /p PERM") -else - call s:NetrwInit("g:netrw_chgperm" , "chmod PERM FILENAME") -endif -call s:NetrwInit("g:netrw_preview" , 0) -call s:NetrwInit("g:netrw_scpport" , "-P") -call s:NetrwInit("g:netrw_servername" , "NETRWSERVER") -call s:NetrwInit("g:netrw_sshport" , "-p") -call s:NetrwInit("g:netrw_rename_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME mv") -call s:NetrwInit("g:netrw_rm_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME rm") -call s:NetrwInit("g:netrw_rmdir_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME rmdir") -call s:NetrwInit("g:netrw_rmf_cmd" , g:netrw_ssh_cmd." USEPORT HOSTNAME rm -f ") -" Default values - q-s ---------- {{{3 -call s:NetrwInit("g:netrw_quickhelp",0) -let s:QuickHelp= ["-:go up dir D:delete R:rename s:sort-by x:special", - \ "(create new) %:file d:directory", - \ "(windows split&open) o:horz v:vert p:preview", - \ "i:style qf:file info O:obtain r:reverse", - \ "(marks) mf:mark file mt:set target mm:move mc:copy", - \ "(bookmarks) mb:make mB:delete qb:list gb:go to", - \ "(history) qb:list u:go up U:go down", - \ "(targets) mt:target Tb:use bookmark Th:use history"] -" g:netrw_sepchr: picking a character that doesn't appear in filenames that can be used to separate priority from filename -call s:NetrwInit("g:netrw_sepchr" , (&enc == "euc-jp")? "\<Char-0x01>" : "\<Char-0xff>") -if !exists("g:netrw_keepj") || g:netrw_keepj == "keepj" - call s:NetrwInit("s:netrw_silentxfer" , (exists("g:netrw_silent") && g:netrw_silent != 0)? "sil keepj " : "keepj ") -else - call s:NetrwInit("s:netrw_silentxfer" , (exists("g:netrw_silent") && g:netrw_silent != 0)? "sil " : " ") -endif -call s:NetrwInit("g:netrw_sort_by" , "name") " alternatives: date , size -call s:NetrwInit("g:netrw_sort_options" , "") -call s:NetrwInit("g:netrw_sort_direction", "normal") " alternative: reverse (z y x ...) -if !exists("g:netrw_sort_sequence") - if has("unix") - let g:netrw_sort_sequence= '[\/]$,\<core\%(\.\d\+\)\=\>,\.h$,\.c$,\.cpp$,\~\=\*$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$' - else - let g:netrw_sort_sequence= '[\/]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,\.swp$,\.bak$,\~$' - endif -endif -call s:NetrwInit("g:netrw_special_syntax" , 0) -call s:NetrwInit("g:netrw_ssh_browse_reject", '^total\s\+\d\+$') -call s:NetrwInit("g:netrw_use_noswf" , 1) -call s:NetrwInit("g:netrw_sizestyle" ,"b") -" Default values - t-w ---------- {{{3 -call s:NetrwInit("g:netrw_timefmt","%c") -if !exists("g:netrw_xstrlen") - if exists("g:Align_xstrlen") - let g:netrw_xstrlen= g:Align_xstrlen - elseif exists("g:drawit_xstrlen") - let g:netrw_xstrlen= g:drawit_xstrlen - elseif &enc == "latin1" || !has("multi_byte") - let g:netrw_xstrlen= 0 - else - let g:netrw_xstrlen= 1 - endif -endif -call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.") -call s:NetrwInit("g:netrw_winsize",50) -call s:NetrwInit("g:netrw_wiw",1) -if g:netrw_winsize > 100|let g:netrw_winsize= 100|endif -" --------------------------------------------------------------------- -" Default values for netrw's script variables: {{{2 -call s:NetrwInit("g:netrw_fname_escape",' ?&;%') -if has("win32") - call s:NetrwInit("g:netrw_glob_escape",'*?`{[]$') -else - call s:NetrwInit("g:netrw_glob_escape",'*[]?`{~$\') -endif -call s:NetrwInit("g:netrw_menu_escape",'.&? \') -call s:NetrwInit("g:netrw_tmpfile_escape",' &;') -call s:NetrwInit("s:netrw_map_escape","<|\n\r\\\<C-V>\"") -if has("gui_running") && (&enc == 'utf-8' || &enc == 'utf-16' || &enc == 'ucs-4') - let s:treedepthstring= "│ " -else - let s:treedepthstring= "| " -endif -call s:NetrwInit("s:netrw_posn",'{}') - -" BufEnter event ignored by decho when following variable is true -" Has a side effect that doau BufReadPost doesn't work, so -" files read by network transfer aren't appropriately highlighted. -"let g:decho_bufenter = 1 "Decho - -" ====================== -" Netrw Initialization: {{{1 -" ====================== -if v:version >= 700 && has("balloon_eval") && !exists("s:initbeval") && !exists("g:netrw_nobeval") && has("syntax") && exists("g:syntax_on") -" call Decho("installed beval events",'~'.expand("<slnum>")) - let &l:bexpr = "netrw#BalloonHelp()" -" call Decho("&l:bexpr<".&l:bexpr."> buf#".bufnr()) - au FileType netrw setl beval - au WinLeave * if &ft == "netrw" && exists("s:initbeval")|let &beval= s:initbeval|endif - au VimEnter * let s:initbeval= &beval -"else " Decho -" if v:version < 700 | call Decho("did not install beval events: v:version=".v:version." < 700","~".expand("<slnum>")) | endif -" if !has("balloon_eval") | call Decho("did not install beval events: does not have balloon_eval","~".expand("<slnum>")) | endif -" if exists("s:initbeval") | call Decho("did not install beval events: s:initbeval exists","~".expand("<slnum>")) | endif -" if exists("g:netrw_nobeval") | call Decho("did not install beval events: g:netrw_nobeval exists","~".expand("<slnum>")) | endif -" if !has("syntax") | call Decho("did not install beval events: does not have syntax highlighting","~".expand("<slnum>")) | endif -" if exists("g:syntax_on") | call Decho("did not install beval events: g:syntax_on exists","~".expand("<slnum>")) | endif -endif -au WinEnter * if &ft == "netrw"|call s:NetrwInsureWinVars()|endif - -if g:netrw_keepj =~# "keepj" - com! -nargs=* NetrwKeepj keepj <args> -else - let g:netrw_keepj= "" - com! -nargs=* NetrwKeepj <args> -endif - -" ============================== -" Netrw Utility Functions: {{{1 -" ============================== - -" --------------------------------------------------------------------- -" netrw#BalloonHelp: {{{2 -if v:version >= 700 && has("balloon_eval") && has("syntax") && exists("g:syntax_on") && !exists("g:netrw_nobeval") -" call Decho("loading netrw#BalloonHelp()",'~'.expand("<slnum>")) - fun! netrw#BalloonHelp() - if &ft != "netrw" - return "" - endif - if exists("s:popuperr_id") && popup_getpos(s:popuperr_id) != {} - " popup error window is still showing - " s:pouperr_id and s:popuperr_text are set up in netrw#ErrorMsg() - if exists("s:popuperr_text") && s:popuperr_text != "" && v:beval_text != s:popuperr_text - " text under mouse hasn't changed; only close window when it changes - call popup_close(s:popuperr_id) - unlet s:popuperr_text - else - let s:popuperr_text= v:beval_text - endif - let mesg= "" - elseif !exists("w:netrw_bannercnt") || v:beval_lnum >= w:netrw_bannercnt || (exists("g:netrw_nobeval") && g:netrw_nobeval) - let mesg= "" - elseif v:beval_text == "Netrw" || v:beval_text == "Directory" || v:beval_text == "Listing" - let mesg = "i: thin-long-wide-tree gh: quick hide/unhide of dot-files qf: quick file info %:open new file" - elseif getline(v:beval_lnum) =~ '^"\s*/' - let mesg = "<cr>: edit/enter o: edit/enter in horiz window t: edit/enter in new tab v:edit/enter in vert window" - elseif v:beval_text == "Sorted" || v:beval_text == "by" - let mesg = 's: sort by name, time, file size, extension r: reverse sorting order mt: mark target' - elseif v:beval_text == "Sort" || v:beval_text == "sequence" - let mesg = "S: edit sorting sequence" - elseif v:beval_text == "Hiding" || v:beval_text == "Showing" - let mesg = "a: hiding-showing-all ctrl-h: editing hiding list mh: hide/show by suffix" - elseif v:beval_text == "Quick" || v:beval_text == "Help" - let mesg = "Help: press <F1>" - elseif v:beval_text == "Copy/Move" || v:beval_text == "Tgt" - let mesg = "mt: mark target mc: copy marked file to target mm: move marked file to target" - else - let mesg= "" - endif - return mesg - endfun -"else " Decho -" if v:version < 700 |call Decho("did not load netrw#BalloonHelp(): vim version ".v:version." < 700 -","~".expand("<slnum>"))|endif -" if !has("balloon_eval") |call Decho("did not load netrw#BalloonHelp(): does not have balloon eval","~".expand("<slnum>")) |endif -" if !has("syntax") |call Decho("did not load netrw#BalloonHelp(): syntax disabled","~".expand("<slnum>")) |endif -" if !exists("g:syntax_on") |call Decho("did not load netrw#BalloonHelp(): g:syntax_on n/a","~".expand("<slnum>")) |endif -" if exists("g:netrw_nobeval") |call Decho("did not load netrw#BalloonHelp(): g:netrw_nobeval exists","~".expand("<slnum>")) |endif -endif - -" ------------------------------------------------------------------------ -" netrw#Explore: launch the local browser in the directory of the current file {{{2 -" indx: == -1: Nexplore -" == -2: Pexplore -" == +: this is overloaded: -" * If Nexplore/Pexplore is in use, then this refers to the -" indx'th item in the w:netrw_explore_list[] of items which -" matched the */pattern **/pattern *//pattern **//pattern -" * If Hexplore or Vexplore, then this will override -" g:netrw_winsize to specify the qty of rows or columns the -" newly split window should have. -" dosplit==0: the window will be split iff the current file has been modified and hidden not set -" dosplit==1: the window will be split before running the local browser -" style == 0: Explore style == 1: Explore! -" == 2: Hexplore style == 3: Hexplore! -" == 4: Vexplore style == 5: Vexplore! -" == 6: Texplore -fun! netrw#Explore(indx,dosplit,style,...) - if !exists("b:netrw_curdir") - let b:netrw_curdir= getcwd() - endif - - " record current file for Rexplore's benefit - if &ft != "netrw" - let w:netrw_rexfile= expand("%:p") - endif - - " record current directory - let curdir = simplify(b:netrw_curdir) - let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e') - if !exists("g:netrw_cygwin") && has("win32") - let curdir= substitute(curdir,'\','/','g') - endif - - " using completion, directories with spaces in their names (thanks, Bill Gates, for a truly dumb idea) - " will end up with backslashes here. Solution: strip off backslashes that precede white space and - " try Explore again. - if a:0 > 0 - if a:1 =~ "\\\s" && !filereadable(s:NetrwFile(a:1)) && !isdirectory(s:NetrwFile(a:1)) - let a1 = substitute(a:1, '\\\(\s\)', '\1', 'g') - if a1 != a:1 - call netrw#Explore(a:indx, a:dosplit, a:style, a1) - return - endif - endif - endif - - " save registers - if !has('nvim') && has("clipboard") && g:netrw_clipboard -" call Decho("(netrw#Explore) save @* and @+",'~'.expand("<slnum>")) - sil! let keepregstar = @* - sil! let keepregplus = @+ - endif - sil! let keepregslash= @/ - - " if dosplit - " -or- file has been modified AND file not hidden when abandoned - " -or- Texplore used - if a:dosplit || (&modified && &hidden == 0 && &bufhidden != "hide") || a:style == 6 - call s:SaveWinVars() - let winsz= g:netrw_winsize - if a:indx > 0 - let winsz= a:indx - endif - - if a:style == 0 " Explore, Sexplore - let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz - if winsz == 0|let winsz= ""|endif - exe "noswapfile ".(g:netrw_alto ? "below " : "above ").winsz."wincmd s" - - elseif a:style == 1 " Explore!, Sexplore! - let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz - if winsz == 0|let winsz= ""|endif - exe "keepalt noswapfile ".(g:netrw_altv ? "rightbelow " : "leftabove ").winsz."wincmd v" - - elseif a:style == 2 " Hexplore - let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz - if winsz == 0|let winsz= ""|endif - exe "keepalt noswapfile ".(g:netrw_alto ? "below " : "above ").winsz."wincmd s" - - elseif a:style == 3 " Hexplore! - let winsz= (winsz > 0)? (winsz*winheight(0))/100 : -winsz - if winsz == 0|let winsz= ""|endif - exe "keepalt noswapfile ".(!g:netrw_alto ? "below " : "above ").winsz."wincmd s" - - elseif a:style == 4 " Vexplore - let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz - if winsz == 0|let winsz= ""|endif - exe "keepalt noswapfile ".(g:netrw_altv ? "rightbelow " : "leftabove ").winsz."wincmd v" - - elseif a:style == 5 " Vexplore! - let winsz= (winsz > 0)? (winsz*winwidth(0))/100 : -winsz - if winsz == 0|let winsz= ""|endif - exe "keepalt noswapfile ".(!g:netrw_altv ? "rightbelow " : "leftabove ").winsz."wincmd v" - - elseif a:style == 6 " Texplore - call s:SaveBufVars() - exe "keepalt tabnew ".fnameescape(curdir) - call s:RestoreBufVars() - endif - call s:RestoreWinVars() - endif - NetrwKeepj norm! 0 - - if a:0 > 0 - if a:1 =~ '^\~' && (has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)) - let dirname= simplify(substitute(a:1,'\~',expand("$HOME"),'')) - elseif a:1 == '.' - let dirname= simplify(exists("b:netrw_curdir")? b:netrw_curdir : getcwd()) - if dirname !~ '/$' - let dirname= dirname."/" - endif - elseif a:1 =~ '\$' - let dirname= simplify(expand(a:1)) - elseif a:1 !~ '^\*\{1,2}/' && a:1 !~ '^\a\{3,}://' - let dirname= simplify(a:1) - else - let dirname= a:1 - endif - else - " clear explore - call s:NetrwClearExplore() - return - endif - - if dirname =~ '\.\./\=$' - let dirname= simplify(fnamemodify(dirname,':p:h')) - elseif dirname =~ '\.\.' || dirname == '.' - let dirname= simplify(fnamemodify(dirname,':p')) - endif - - if dirname =~ '^\*//' - " starpat=1: Explore *//pattern (current directory only search for files containing pattern) - let pattern= substitute(dirname,'^\*//\(.*\)$','\1','') - let starpat= 1 - if &hls | let keepregslash= s:ExplorePatHls(pattern) | endif - - elseif dirname =~ '^\*\*//' - " starpat=2: Explore **//pattern (recursive descent search for files containing pattern) - let pattern= substitute(dirname,'^\*\*//','','') - let starpat= 2 - - elseif dirname =~ '/\*\*/' - " handle .../**/.../filepat - let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','') - if prefixdir =~ '^/' || (prefixdir =~ '^\a:/' && has("win32")) - let b:netrw_curdir = prefixdir - else - let b:netrw_curdir= getcwd().'/'.prefixdir - endif - let dirname= substitute(dirname,'^.\{-}\(\*\*/.*\)$','\1','') - let starpat= 4 - - elseif dirname =~ '^\*/' - " case starpat=3: Explore */filepat (search in current directory for filenames matching filepat) - let starpat= 3 - - elseif dirname=~ '^\*\*/' - " starpat=4: Explore **/filepat (recursive descent search for filenames matching filepat) - let starpat= 4 - - else - let starpat= 0 - endif - - if starpat == 0 && a:indx >= 0 - " [Explore Hexplore Vexplore Sexplore] [dirname] - if dirname == "" - let dirname= curfiledir - endif - if dirname =~# '^scp://' || dirname =~ '^ftp://' - call netrw#Nread(2,dirname) - else - if dirname == "" - let dirname= getcwd() - elseif has("win32") && !g:netrw_cygwin - " Windows : check for a drive specifier, or else for a remote share name ('\\Foo' or '//Foo', - " depending on whether backslashes have been converted to forward slashes by earlier code). - if dirname !~ '^[a-zA-Z]:' && dirname !~ '^\\\\\w\+' && dirname !~ '^//\w\+' - let dirname= b:netrw_curdir."/".dirname - endif - elseif dirname !~ '^/' - let dirname= b:netrw_curdir."/".dirname - endif - call netrw#LocalBrowseCheck(dirname) - endif - if exists("w:netrw_bannercnt") - " done to handle P08-Ingelrest. :Explore will _Always_ go to the line just after the banner. - " If one wants to return the same place in the netrw window, use :Rex instead. - exe w:netrw_bannercnt - endif - - - " starpat=1: Explore *//pattern (current directory only search for files containing pattern) - " starpat=2: Explore **//pattern (recursive descent search for files containing pattern) - " starpat=3: Explore */filepat (search in current directory for filenames matching filepat) - " starpat=4: Explore **/filepat (recursive descent search for filenames matching filepat) - elseif a:indx <= 0 - " Nexplore, Pexplore, Explore: handle starpat - if !mapcheck("<s-up>","n") && !mapcheck("<s-down>","n") && exists("b:netrw_curdir") - let s:didstarstar= 1 - nnoremap <buffer> <silent> <s-up> :Pexplore<cr> - nnoremap <buffer> <silent> <s-down> :Nexplore<cr> - endif - - if has("path_extra") - if !exists("w:netrw_explore_indx") - let w:netrw_explore_indx= 0 - endif - - let indx = a:indx - - if indx == -1 - " Nexplore - if !exists("w:netrw_explore_list") " sanity check - NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Nexplore or <s-down> improperly; see help for netrw-starstar",40) - if !has('nvim') && has("clipboard") && g:netrw_clipboard - if @* != keepregstar | sil! let @* = keepregstar | endif - if @+ != keepregplus | sil! let @+ = keepregplus | endif - endif - sil! let @/ = keepregslash - return - endif - let indx= w:netrw_explore_indx - if indx < 0 | let indx= 0 | endif - if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif - let curfile= w:netrw_explore_list[indx] - while indx < w:netrw_explore_listlen && curfile == w:netrw_explore_list[indx] - let indx= indx + 1 - endwhile - if indx >= w:netrw_explore_listlen | let indx= w:netrw_explore_listlen - 1 | endif - - elseif indx == -2 |