aboutsummaryrefslogtreecommitdiff
path: root/runtime/pack/dist/opt/netrw/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/pack/dist/opt/netrw/autoload')
-rw-r--r--runtime/pack/dist/opt/netrw/autoload/netrw.vim11927
-rw-r--r--runtime/pack/dist/opt/netrw/autoload/netrwSettings.vim242
-rw-r--r--runtime/pack/dist/opt/netrw/autoload/netrw_gitignore.vim29
3 files changed, 12198 insertions, 0 deletions
diff --git a/runtime/pack/dist/opt/netrw/autoload/netrw.vim b/runtime/pack/dist/opt/netrw/autoload/netrw.vim
new file mode 100644
index 0000000000..ae794954ce
--- /dev/null
+++ b/runtime/pack/dist/opt/netrw/autoload/netrw.vim
@@ -0,0 +1,11927 @@
+" Maintainer: Luca Saccarola <github.e41mv@aleeas.com>
+" Former Maintainer: Charles E Campbell
+" Upstream: <https://github.com/saccarosium/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).
+
+" 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 = "v175"
+
+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)
+let s:xz_opt = has('unix') ? "XZ_OPT=-T0" :
+ \ (has("win32") && &shell =~? '\vcmd(\.exe)?$' ?
+ \ "setx XZ_OPT=-T0 &&" : "")
+call s:NetrwInit("g:netrw_decompress ", "{"
+ \ .."'.lz4': 'lz4 -d',"
+ \ .."'.lzo': 'lzop -d',"
+ \ .."'.lz': 'lzip -dk',"
+ \ .."'.7z': '7za x',"
+ \ .."'.001': '7za x',"
+ \ .."'.zip': 'unzip',"
+ \ .."'.bz': 'bunzip2 -k',"
+ \ .."'.bz2': 'bunzip2 -k',"
+ \ .."'.gz': 'gunzip -k',"
+ \ .."'.lzma': 'unlzma -T0 -k',"
+ \ .."'.xz': 'unxz -T0 -k',"
+ \ .."'.zst': 'zstd -T0 -d',"
+ \ .."'.Z': 'uncompress -k',"
+ \ .."'.tar': 'tar -xvf',"
+ \ .."'.tar.bz': 'tar -xvjf',"
+ \ .."'.tar.bz2': 'tar -xvjf',"
+ \ .."'.tbz': 'tar -xvjf',"
+ \ .."'.tbz2': 'tar -xvjf',"
+ \ .."'.tar.gz': 'tar -xvzf',"
+ \ .."'.tgz': 'tar -xvzf',"
+ \ .."'.tar.lzma': '"..s:xz_opt.." tar -xvf --lzma',"
+ \ .."'.tlz': '"..s:xz_opt.." tar -xvf --lzma',"
+ \ .."'.tar.xz': '"..s:xz_opt.." tar -xvfJ',"
+ \ .."'.txz': '"..s:xz_opt.." tar -xvfJ',"
+ \ .."'.tar.zst': '"..s:xz_opt.." tar -xvf --use-compress-program=unzstd',"
+ \ .."'.tzst': '"..s:xz_opt.." tar -xvf --use-compress-program=unzstd',"
+ \ .."'.rar': '"..(executable("unrar")?"unrar x -ad":"rar x -ad").."'"
+ \ .."}")
+unlet s:xz_opt
+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")