aboutsummaryrefslogtreecommitdiff
path: root/runtime/autoload/netrw.vim
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/autoload/netrw.vim')
-rw-r--r--runtime/autoload/netrw.vim11941
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
- " Pexplore
- if !exists("w:netrw_explore_list") " sanity check
- NetrwKeepj call netrw#ErrorMsg(s:WARNING,"using Pexplore or <s-up> improperly; see help for netrw-starstar",41)
- 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 >= 0 && curfile == w:netrw_explore_list[indx]
- let indx= indx - 1
- endwhile
- if indx < 0 | let indx= 0 | endif
-
- else
- " Explore -- initialize
- " build list of files to Explore with Nexplore/Pexplore
- NetrwKeepj keepalt call s:NetrwClearExplore()
- let w:netrw_explore_indx= 0
- if !exists("b:netrw_curdir")
- let b:netrw_curdir= getcwd()
- endif
-
- " switch on starpat to build the w:netrw_explore_list of files
- if starpat == 1
- " starpat=1: Explore *//pattern (current directory only search for files containing pattern)
- try