updated for version 7.0131
diff --git a/runtime/plugin/NetrwFileHandlers.vim b/runtime/plugin/NetrwFileHandlers.vim
index 9b9cd20..2aa1d9b 100644
--- a/runtime/plugin/NetrwFileHandlers.vim
+++ b/runtime/plugin/NetrwFileHandlers.vim
@@ -1,25 +1,28 @@
 " NetrwFileHandlers: contains various extension-based file handlers for
 "                    netrw's browsers' x command ("eXecute launcher")
 " Author:	Charles E. Campbell, Jr.
-" Date:		Aug 08, 2005
-" Version:	5a	NOT RELEASED
-" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr.
+" Date:		Aug 15, 2005
+" Version:	6
+" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{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 is provided *as is* and comes with no
+"               NetrwFileHandlers.vim is provided *as is* and comes with no
 "               warranty of any kind, either expressed or implied. In no
 "               event will the copyright holder be liable for any damages
 "               resulting from the use of this software.
+"
+" Rom 6:23 (WEB) For the wages of sin is death, but the free gift of God {{{1
+"                is eternal life in Christ Jesus our Lord.
 
 " ---------------------------------------------------------------------
 " Load Once: {{{1
-if exists("g:loaded_netrwfilehandlers") || &cp
+if exists("g:loaded_NetrwFileHandlers") || &cp
  finish
 endif
 let s:keepcpo= &cpo
 set cpo&vim
-let g:loaded_netrwfilehandlers= "v5a"
+let g:loaded_NetrwFileHandlers= "v6"
 
 " ---------------------------------------------------------------------
 " NetrwFileHandler_html: handles html when the user hits "x" when the {{{1
@@ -174,21 +177,6 @@
 endfun
 
 " ---------------------------------------------------------------------
-" NetrwFileHandler_sxw: visualize sxw files {{{1
-fun! NetrwFileHandler_sxw(sxw)
-"  " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)")
-  if executable("gs")
-   exe 'silent! !gs "'.a:sxw.'"'
-  else
-"   " call Dret("NetrwFileHandler_sxw 0")
-   return 0
-  endif
-
-"  " call Dret("NetrwFileHandler_sxw 1")
-  return 1
-endfun
-
-" ---------------------------------------------------------------------
 " NetrwFileHandler_doc: visualize doc files {{{1
 fun! NetrwFileHandler_doc(doc)
 "  " call Dfunc("NetrwFileHandler_doc(doc<".a:doc.">)")
diff --git a/runtime/plugin/NetrwPlugin.vim b/runtime/plugin/NetrwPlugin.vim
new file mode 100644
index 0000000..b1f5abd
--- /dev/null
+++ b/runtime/plugin/NetrwPlugin.vim
@@ -0,0 +1,156 @@
+" netrw.vim: Handles file transfer and remote directory listing across a network
+"            PLUGIN PORTION
+" Last Change:	Aug 16, 2005
+" Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" Version:	63
+" License:	Vim License  (see vim's :help license)
+" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
+" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{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 is provided *as is* and comes 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.
+"
+"  But be doers of the Word, and not only hearers, deluding your own selves {{{1
+"  (James 1:22 RSV)
+" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+
+" ---------------------------------------------------------------------
+" Load Once: {{{1
+if exists("g:loaded_netrw") || &cp
+  finish
+endif
+if v:version < 600
+ echoerr "***netrw*** doesn't support Vim version ".v:version
+ finish
+endif
+let g:loaded_netrw  = "v63"
+if v:version < 700
+ let loaded_explorer = 1
+endif
+let s:keepcpo= &cpo
+set cpo&vim
+
+" ---------------------------------------------------------------------
+" Public Interface: {{{1
+
+" Local Browsing: {{{2
+augroup FileExplorer
+ au!
+ au BufEnter * call s:LocalBrowse(expand("<amatch>"))
+augroup END
+
+" Network Browsing Reading Writing: {{{2
+augroup Network
+ au!
+ if has("win32") || has("win95") || has("win64") || has("win16")
+  au BufReadCmd  file://*		exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e '.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ else
+  au BufReadCmd  file:///*		exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+  au BufReadCmd  file://localhost/*	exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ endif
+ au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread 0r ".expand("<amatch>")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread "   .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
+ au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    	exe "silent doau BufWritePre ".expand("<amatch>")|exe "Nwrite " .expand("<amatch>")|exe "silent doau BufWritePost ".expand("<amatch>")
+ au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    	exe "silent doau BufWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
+augroup END
+
+" Commands: :Nread, :Nwrite, :NetUserPass {{{2
+com! -nargs=*		Nread		call netrw#NetSavePosn()<bar>call netrw#NetRead(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -range=% -nargs=*	Nwrite		call netrw#NetSavePosn()<bar><line1>,<line2>call netrw#NetWrite(<f-args>)<bar>call netrw#NetRestorePosn()
+com! -nargs=*		NetUserPass	call NetUserPass(<f-args>)
+
+" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{2
+com! -nargs=? -bar -bang -count=0  	Explore		call netrw#Explore(<count>,0,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0  	Sexplore	call netrw#Explore(<count>,1,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0  	Hexplore	call netrw#Explore(<count>,1,2+<bang>0,<q-args>)
+com! -nargs=? -bar -bang -count=0  	Vexplore	call netrw#Explore(<count>,1,4+<bang>0,<q-args>)
+com! -nargs=? -bar -bang   		Nexplore	call netrw#Explore(-1,0,0,<q-args>)
+com! -nargs=? -bar -bang   		Pexplore	call netrw#Explore(-2,0,0,<q-args>)
+
+" Commands: NetrwSettings {{{2
+com! -nargs=0 NetrwSettings :call NetrwSettings#NetrwSettings()
+
+" ---------------------------------------------------------------------
+" LocalBrowse: {{{2
+fun! s:LocalBrowse(dirname)
+  " unfortunate interaction -- debugging calls can't be used here;
+  " the BufEnter event causes triggering when attempts to write to
+  " the DBG buffer are made.
+  if isdirectory(a:dirname)
+   call netrw#DirBrowse(a:dirname)
+  endif
+  " not a directory, ignore it
+endfun
+
+" ---------------------------------------------------------------------
+" NetrwStatusLine: {{{1
+fun! NetrwStatusLine()
+"  let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr(".")." Xline#".w:netrw_explore_line." line#".line(".")
+  if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr(".") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
+   let &stl= s:netrw_explore_stl
+   if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
+   if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
+   return ""
+  else
+   return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
+  endif
+endfun
+
+" ------------------------------------------------------------------------
+" NetUserPass: set username and password for subsequent ftp transfer {{{1
+"   Usage:  :call NetUserPass()			-- will prompt for userid and password
+"	    :call NetUserPass("uid")		-- will prompt for password
+"	    :call NetUserPass("uid","password") -- sets global userid and password
+fun! NetUserPass(...)
+
+ " get/set userid
+ if a:0 == 0
+"  call Dfunc("NetUserPass(a:0<".a:0.">)")
+  if !exists("g:netrw_uid") || g:netrw_uid == ""
+   " via prompt
+   let g:netrw_uid= input('Enter username: ')
+  endif
+ else	" from command line
+"  call Dfunc("NetUserPass(a:1<".a:1.">) {")
+  let g:netrw_uid= a:1
+ endif
+
+ " get password
+ if a:0 <= 1 " via prompt
+"  call Decho("a:0=".a:0." case <=1:")
+  let g:netrw_passwd= inputsecret("Enter Password: ")
+ else " from command line
+"  call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
+  let g:netrw_passwd=a:2
+ endif
+"  call Dret("NetUserPass")
+endfun
+
+" ------------------------------------------------------------------------
+" NetReadFixup: this sort of function is typically written by the user {{{1
+"               to handle extra junk that their system's ftp dumps
+"               into the transfer.  This function is provided as an
+"               example and as a fix for a Windows 95 problem: in my
+"               experience, win95's ftp always dumped four blank lines
+"               at the end of the transfer.
+if has("win95") && g:netrw_win95ftp
+ fun! NetReadFixup(method, line1, line2)
+"   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
+   if method == 3   " ftp (no <.netrc>)
+    let fourblanklines= line2 - 3
+    silent fourblanklines.",".line2."g/^\s*/d"
+   endif
+"   call Dret("NetReadFixup")
+ endfun
+endif
+
+let &cpo= s:keepcpo
+unlet s:keepcpo
+" ------------------------------------------------------------------------
+" Modelines: {{{1
+" vim:ts=8 fdm=marker
diff --git a/runtime/plugin/NetrwSettings.vim b/runtime/plugin/NetrwSettings.vim
new file mode 100644
index 0000000..eecdcd2
--- /dev/null
+++ b/runtime/plugin/NetrwSettings.vim
@@ -0,0 +1,157 @@
+" NetrwSettings.vim: makes netrw settings simpler
+" Last Change:	Aug 16, 2005
+" Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
+" Version:		3
+" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{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,
+"               NetrwSettings.vim is provided *as is* and comes 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.
+"
+" Mat 4:23 (WEB) Jesus went about in all Galilee, teaching in their {{{1
+"                synagogues, preaching the gospel of the kingdom, and healing
+"                every disease and every sickness among the people.
+" Load Once: {{{1
+if exists("g:loaded_NetrwSettings") || &cp
+  finish
+endif
+let g:loaded_NetrwSettings  = "v3"
+
+" ---------------------------------------------------------------------
+" NetrwSettings: {{{1
+fun! NetrwSettings#NetrwSettings()
+  " this call is here largely just to insure that netrw has been loaded
+  call netrw#NetSavePosn()
+
+  above wincmd s
+  enew
+  setlocal noswapfile bh=wipe
+  set ft=vim
+  file Netrw\ Settings
+
+  " these variables have the following default effects when they don't
+  " exist (ie. have not been set by the user in his/her .vimrc)
+  if !exists("g:netrw_longlist")
+   let g:netrw_longlist= 0
+   let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
+  endif
+  if !exists("g:netrw_silent")
+   let g:netrw_silent= 0
+  endif
+  if !exists("g:netrw_use_nt_rcp")
+   let g:netrw_use_nt_rcp= 0
+  endif
+  if !exists("g:netrw_ftp")
+   let g:netrw_ftp= 0
+  endif
+  if !exists("g:netrw_ignorenetrc")
+   let g:netrw_ignorenetrc= 0
+  endif
+
+  put ='+ ---------------------------------------------'
+  put ='+ NetrwSettings:  (by Charles E. Campbell, Jr.)'
+  put ='+  Press ? with cursor atop any line for help  '
+  put ='+ ---------------------------------------------'
+  let s:netrw_settings_stop= line(".")
+
+  put =''
+  put ='+ Netrw Protocol Commands'
+  put = 'let g:netrw_dav_cmd           = '.g:netrw_dav_cmd
+  put = 'let g:netrw_fetch_cmd         = '.g:netrw_fetch_cmd
+  put = 'let g:netrw_ftp_cmd           = '.g:netrw_ftp_cmd
+  put = 'let g:netrw_http_cmd          = '.g:netrw_http_cmd
+  put = 'let g:netrw_rcp_cmd           = '.g:netrw_rcp_cmd
+  put = 'let g:netrw_rsync_cmd         = '.g:netrw_rsync_cmd
+  put = 'let g:netrw_scp_cmd           = '.g:netrw_scp_cmd
+  put = 'let g:netrw_sftp_cmd          = '.g:netrw_sftp_cmd
+  let s:netrw_protocol_stop= line(".")
+  put = ''
+
+  put ='+Netrw Transfer Control'
+  put = 'let g:netrw_cygwin            = '.g:netrw_cygwin
+  put = 'let g:netrw_ftp               = '.g:netrw_ftp
+  put = 'let g:netrw_ftpmode           = '.g:netrw_ftpmode
+  put = 'let g:netrw_ignorenetrc       = '.g:netrw_ignorenetrc
+  put = 'let g:netrw_use_nt_rcp        = '.g:netrw_use_nt_rcp
+  put = 'let g:netrw_win95ftp          = '.g:netrw_win95ftp
+  let s:netrw_xfer_stop= line(".")
+
+  put = ''
+  put ='+ Netrw Browser Control'
+  put = 'let g:netrw_alto              = '.g:netrw_alto
+  put = 'let g:netrw_altv              = '.g:netrw_altv
+  put = 'let g:netrw_dirhistmax        = '.g:netrw_dirhistmax
+  put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
+  put = 'let g:netrw_ftp_list_cmd      = '.g:netrw_ftp_list_cmd
+  put = 'let g:netrw_hide              = '.g:netrw_hide
+  put = 'let g:netrw_keepdir           = '.g:netrw_keepdir
+  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
+  put = 'let g:netrw_list_cmd          = '.g:netrw_list_cmd
+  put = 'let g:netrw_list_hide         = '.g:netrw_list_hide
+  put = 'let g:netrw_local_mkdir       = '.g:netrw_local_mkdir
+  put = 'let g:netrw_local_rmdir       = '.g:netrw_local_rmdir
+  put = 'let g:netrw_longlist          = '.g:netrw_longlist
+  put = 'let g:netrw_maxfilenamelen    = '.g:netrw_maxfilenamelen
+  put = 'let g:netrw_mkdir_cmd         = '.g:netrw_mkdir_cmd
+  put = 'let g:netrw_rename_cmd        = '.g:netrw_rename_cmd
+  put = 'let g:netrw_rm_cmd            = '.g:netrw_rm_cmd
+  put = 'let g:netrw_rmdir_cmd         = '.g:netrw_rmdir_cmd
+  put = 'let g:netrw_rmf_cmd           = '.g:netrw_rmf_cmd
+  put = 'let g:netrw_silent            = '.g:netrw_silent
+  put = 'let g:netrw_sort_by           = '.g:netrw_sort_by
+  put = 'let g:netrw_sort_direction    = '.g:netrw_sort_direction
+  put = 'let g:netrw_sort_sequence     = '.g:netrw_sort_sequence
+  put = 'let g:netrw_ssh_browse_reject = '.g:netrw_ssh_browse_reject
+  put = 'let g:netrw_timefmt           = '.g:netrw_timefmt
+  put = 'let g:netrw_winsize           = '.g:netrw_winsize
+
+  put =''
+  put ='+ For help, place cursor on line and press ?'
+
+  1d
+  silent %s/^+/"/e
+  res 99
+  silent %s/= \([^0-9].*\)$/= '\1'/e
+  silent %s/= $/= ''/e
+  1
+
+  set nomod
+
+  map <buffer> <silent> ? :call NetrwSettingHelp()<cr>
+  let tmpfile= tempname()
+  exe 'au BufWriteCmd	Netrw\ Settings	silent w! '.tmpfile.'|so '.tmpfile.'|call delete("'.tmpfile.'")|set nomod'
+endfun
+
+" ---------------------------------------------------------------------
+" NetrwSettingHelp: {{{2
+fun! NetrwSettingHelp()
+"  call Dfunc("NetrwSettingHelp()")
+  let curline = getline(".")
+  if curline =~ '='
+   let varhelp = substitute(curline,'^\s*let ','','e')
+   let varhelp = substitute(varhelp,'\s*=.*$','','e')
+"   call Decho("trying help ".varhelp)
+   try
+    exe "he ".varhelp
+   catch /^Vim\%((\a\+)\)\=:E149/
+   	echo "***sorry*** no help available for <".varhelp.">"
+   endtry
+  elseif line(".") < s:netrw_settings_stop
+   he netrw-settings
+  elseif line(".") < s:netrw_protocol_stop
+   he netrw-externapp
+  elseif line(".") < s:netrw_xfer_stop
+   he netrw-variables
+  else
+   he netrw-browse-var
+  endif
+"  call Dret("NetrwSettingHelp")
+endfun
+
+" ---------------------------------------------------------------------
+" Modelines: {{{1
+" vim:ts=8 fdm=marker
diff --git a/runtime/plugin/netrw.vim b/runtime/plugin/netrw.vim
deleted file mode 100644
index 85d7df7..0000000
--- a/runtime/plugin/netrw.vim
+++ /dev/null
@@ -1,3378 +0,0 @@
-" netrw.vim: Handles file transfer and remote directory listing across a network
-" Last Change:	Aug 12, 2005
-" Maintainer:	Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
-" Version:	61
-" License:	Vim License  (see vim's :help license)
-" Copyright:    Copyright (C) 1999-2005 Charles E. Campbell, Jr.
-"               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 is provided *as is* and comes with no
-"               warranty of any kind, either expressed or implied. In no
-"               event will the copyright holder be liable for any damages
-"               resulting from the use of this software.
-"
-"  But be doers of the Word, and not only hearers, deluding your own selves
-"  (James 1:22 RSV)
-" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
-
-" ---------------------------------------------------------------------
-" Load Once: {{{1
-if exists("g:loaded_netrw") || &cp
-  finish
-endif
-let g:loaded_netrw  = "v61"
-if v:version < 700
- let loaded_explorer = 1
-endif
-let s:keepcpo= &cpo
-set cpo&vim
-
-" ---------------------------------------------------------------------
-" Default values for global netrw variables {{{1
-if !exists("g:netrw_ftpmode")
- let g:netrw_ftpmode= "binary"
-endif
-if !exists("g:netrw_win95ftp")
- let g:netrw_win95ftp= 1
-endif
-if !exists("g:netrw_cygwin")
- if has("win32") || has("win95") || has("win64") || has("win16")
-  if &shell == "bash"
-   let g:netrw_cygwin= 1
-  else
-   let g:netrw_cygwin= 0
-  endif
- else
-  let g:netrw_cygwin= 0
- endif
-endif
-if !exists("g:netrw_list_cmd")
- if executable("ssh")
-  " provide a default listing command
-  let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
- else
-"  call Decho("ssh is not executable, can't do remote directory exploring with ssh")
-  let g:netrw_list_cmd= ""
- endif
-endif
-if !exists("g:netrw_ftp_list_cmd")
- if has("unix") || exists("g:netrw_cygwin")
-  let g:netrw_ftp_list_cmd= "ls -lF"
- else
-  let g:netrw_ftp_list_cmd= "dir"
- endif
-endif
-if !exists("g:netrw_rm_cmd")
- let g:netrw_rm_cmd    = "ssh HOSTNAME rm"
-endif
-if !exists("g:netrw_rmf_cmd")
- let g:netrw_rmf_cmd    = "ssh HOSTNAME rm -f"
-endif
-if !exists("g:netrw_rmdir_cmd")
- let g:netrw_rmdir_cmd = "ssh HOSTNAME rmdir"
-endif
-if !exists("g:netrw_rename_cmd")
- let g:netrw_rename_cmd= "ssh HOSTNAME mv"
-endif
-if exists("g:netrw_silent") && g:netrw_silent != 0
- let g:netrw_silentxfer= "silent "
-else
- let g:netrw_silentxfer= ""
-endif
-if !exists("g:netrw_winsize")
- let g:netrw_winsize= ""
-endif
-if !exists("g:netrw_list_hide")
- let g:netrw_list_hide= ""
-endif
-if !exists("g:netrw_sort_by")
- " alternatives: date size
- let g:netrw_sort_by= "name"
-endif
-if !exists("g:netrw_sort_sequence")
- let g:netrw_sort_sequence= '[\/]$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$'
-endif
-if !exists("g:netrw_sort_direction")
- " alternative: reverse  (z y x ...)
- let g:netrw_sort_direction= "normal"
-endif
-if !exists("g:netrw_longlist") || g:netrw_longlist == 0
- let g:netrw_longlist= 0
- let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
-else
- let g:netrw_longlist= 1
- let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa -l"
-endif
-if !exists("g:netrw_list_cmd")
-endif
-if !exists("g:netrw_timefmt")
- let g:netrw_timefmt= "%c"
-endif
-if !exists("g:netrw_local_rmdir")
- let g:netrw_local_rmdir= "rmdir"
-endif
-if !exists("g:netrw_local_mkdir")
- let g:netrw_local_mkdir= "mkdir"
-endif
-if !exists("g:netrw_mkdir_cmd")
- let g:netrw_mkdir_cmd= "ssh HOSTNAME mkdir"
-endif
-if !exists("g:netrw_hide")
- let g:netrw_hide= 1
-endif
-if !exists("g:netrw_ftp_browse_reject")
- let 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$'
-endif
-if !exists("g:netrw_ssh_browse_reject")
-  let g:netrw_ssh_browse_reject='^total\s\+\d\+$'
-endif
-if !exists("g:netrw_keepdir")
- let g:netrw_keepdir= 1
-endif
-if !exists("s:netrw_cd_escape")
- if has("win32") || has("win95") || has("win64") || has("win16")
-  let s:netrw_cd_escape="#% "
- else
-  let s:netrw_cd_escape="[]#*$%'\" ?`!&();<>\\"
- endif
-endif
-if !exists("s:netrw_glob_escape")
- if has("win32") || has("win95") || has("win64") || has("win16")
-  let s:netrw_glob_escape= ""
- else
-  let s:netrw_glob_escape= '[]*?`{~$'
- endif
-endif
-if !exists("g:netrw_alto")
- let g:netrw_alto= 0
-endif
-if !exists("g:netrw_altv")
- let g:netrw_altv= 0
-endif
-if !exists("g:netrw_maxfilenamelen")
- let g:netrw_maxfilenamelen= 32
-endif
-if !exists("g:netrw_dirhistmax")
- let g:netrw_dirhistmax= 10
-endif
-if !exists("g:NETRW_DIRHIST_CNT")
- let g:NETRW_DIRHIST_CNT= 0
-endif
-
-" 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
-
-" ---------------------------------------------------------------------
-" Default values for global protocol variables {{{1
-if !exists("g:netrw_rcp_cmd")
-  let g:netrw_rcp_cmd	= "rcp"
-endif
-if !exists("g:netrw_ftp_cmd")
-  let g:netrw_ftp_cmd	= "ftp"
-endif
-if !exists("g:netrw_scp_cmd")
-  let g:netrw_scp_cmd	= "scp -q"
-endif
-if !exists("g:netrw_sftp_cmd")
-  let g:netrw_sftp_cmd	= "sftp"
-endif
-if !exists("g:netrw_http_cmd")
- if executable("wget")
-  let g:netrw_http_cmd	= "wget -q -O"
- elseif executable("fetch")
-  let g:netrw_http_cmd	= "fetch -o"
- else
-  let g:netrw_http_cmd	= ""
- endif
-endif
-if !exists("g:netrw_dav_cmd")
-  let g:netrw_dav_cmd	= "cadaver"
-endif
-if !exists("g:netrw_rsync_cmd")
-  let g:netrw_rsync_cmd	= "rsync"
-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 has("win32") || has("win95") || has("win64") || has("win16")
-  \ && 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
-
-" ---------------------------------------------------------------------
-" Transparency Support: {{{1
- " File Explorer: {{{2
-if version >= 600
- augroup FileExplorer
-  au!
-  au BufEnter * call <SID>LocalBrowse(expand("<amatch>"))
- augroup END
- " Network Handler: {{{2
- augroup Network
-  au!
-  if has("win32") || has("win95") || has("win64") || has("win16")
-   au BufReadCmd  file://*		exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e '.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
-  else
-   au BufReadCmd  file:///*		exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
-   au BufReadCmd  file://localhost/*	exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
-  endif
-  au BufReadCmd   ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread 0r ".expand("<amatch>")|exe "silent doau BufReadPost ".expand("<amatch>")
-  au FileReadCmd  ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://*	exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread "   .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
-  au BufWriteCmd  ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    	exe "silent doau BufWritePre ".expand("<amatch>")|exe "Nwrite " .expand("<amatch>")|exe "silent doau BufWritePost ".expand("<amatch>")
-  au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://*    	exe "silent doau BufWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
- augroup END
-endif
-
-" ------------------------------------------------------------------------
-" Commands: :Nread, :Nwrite, :NetUserPass {{{1
-com! -nargs=*		Nread		call s:NetSavePosn()<bar>call s:NetRead(<f-args>)<bar>call s:NetRestorePosn()
-com! -range=% -nargs=*	Nwrite		call s:NetSavePosn()<bar><line1>,<line2>call s:NetWrite(<f-args>)<bar>call s:NetRestorePosn()
-com! -nargs=*		NetUserPass	call NetUserPass(<f-args>)
-
-" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{1
-com! -nargs=? -bar -bang -count=0  	Explore		call s:Explore(<count>,0,0+<bang>0,<q-args>)
-com! -nargs=? -bar -bang -count=0  	Sexplore	call s:Explore(<count>,1,0+<bang>0,<q-args>)
-com! -nargs=? -bar -bang -count=0  	Hexplore	call s:Explore(<count>,1,2+<bang>0,<q-args>)
-com! -nargs=? -bar -bang -count=0  	Vexplore	call s:Explore(<count>,1,4+<bang>0,<q-args>)
-com! -nargs=? -bar -bang   		Nexplore	call s:Explore(-1,0,0,<q-args>)
-com! -nargs=? -bar -bang   		Pexplore	call s:Explore(-2,0,0,<q-args>)
-
-" ------------------------------------------------------------------------
-" NetSavePosn: saves position of cursor on screen {{{1
-fun! s:NetSavePosn()
-"  call Dfunc("NetSavePosn()")
-  " Save current line and column
-  let w:netrw_winnr= winnr()
-  let w:netrw_line = line(".")
-  let w:netrw_col  = virtcol(".")
-
-  " Save top-of-screen line
-  norm! H0
-  let w:netrw_hline= line(".")
-
-  call s:NetRestorePosn()
-"  call Dret("NetSavePosn : winnr=".w:netrw_winnr." line=".w:netrw_line." col=".w:netrw_col." hline=".w:netrw_hline)
-endfun
-
-" ------------------------------------------------------------------------
-" NetRestorePosn: restores the cursor and file position as saved by NetSavePosn() {{{1
-fun! <SID>NetRestorePosn()
-"  call Dfunc("NetRestorePosn() winnr=".w:netrw_winnr." line=".w:netrw_line." col=".w:netrw_col." hline=".w:netrw_hline)
-  let eikeep= &ei
-  set ei=all
-
-  " restore window
-"  call Decho("restore window: exe silent! ".w:netrw_winnr."wincmd w")
-  exe "silent! ".w:netrw_winnr."wincmd w"
-"  if v:shell_error == 0
-"   " as suggested by Bram M: redraw on no error
-"   " allows protocol error messages to remain visible
-"   redraw!
-"  endif
-
-  " restore top-of-screen line
-"  call Decho("restore topofscreen: exe norm! ".w:netrw_hline."G0z")
-  exe "norm! ".w:netrw_hline."G0z\<CR>"
-
-  " restore position
-"  call Decho("restore posn: exe norm! ".w:netrw_line."G0".w:netrw_col."|")
-  exe "norm! ".w:netrw_line."G0".w:netrw_col."\<bar>"
-
-  let &ei= eikeep
-"  call Dret("NetRestorePosn")
-endfun
-
-" ------------------------------------------------------------------------
-" NetRead: responsible for reading a file over the net {{{1
-fun! s:NetRead(...)
-"  call Dfunc("NetRead(a:1<".a:1.">)")
- 
-  " save options
-  call s:NetOptionSave()
- 
-  " Special Exception: if a file is named "0r", then
-  "		      "0r" will be used to read the
-  "		      following files instead of "r"
-  if	a:0 == 0
-   let readcmd= "r"
-   let ichoice= 0
-  elseif a:1 == "0r"
-   let readcmd = "0r"
-   let ichoice = 2
-  else
-   let readcmd = "r"
-   let ichoice = 1
-  endif
- 
-  " get name of a temporary file and set up shell-quoting character
-  let tmpfile= tempname()
- 
-"  call Decho("ichoice=".ichoice." readcmd<".readcmd.">")
-  while ichoice <= a:0
- 
-   " attempt to repeat with previous host-file-etc
-   if exists("b:netrw_lastfile") && a:0 == 0
-"    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
-    let choice = b:netrw_lastfile
-    let ichoice= ichoice + 1
- 
-   else
-    exe "let choice= a:" . ichoice
-"    call Decho("no lastfile: choice<" . choice . ">")
- 
-    if match(choice,"?") == 0
-     " give help
-     echomsg 'NetRead Usage:'
-     echomsg ':Nread machine:path                         uses rcp'
-     echomsg ':Nread "machine path"                       uses ftp   with <.netrc>'
-     echomsg ':Nread "machine id password path"           uses ftp'
-     echomsg ':Nread dav://machine[:port]/path            uses cadaver'
-     echomsg ':Nread fetch://machine/path                 uses fetch'
-     echomsg ':Nread ftp://[user@]machine[:port]/path     uses ftp   autodetects <.netrc>'
-     echomsg ':Nread http://[user@]machine/path           uses http  wget'
-     echomsg ':Nread rcp://[user@]machine/path            uses rcp'
-     echomsg ':Nread rsync://machine[:port]/path          uses rsync'
-     echomsg ':Nread scp://[user@]machine[[:#]port]/path  uses scp'
-     echomsg ':Nread sftp://[user@]machine[[:#]port]/path uses sftp'
-     break
-
-    elseif match(choice,"^\"") != -1
-     " Reconstruct Choice if choice starts with '"'
-"     call Decho("reconstructing choice")
-     if match(choice,"\"$") != -1
-      " case "..."
-      let choice=strpart(choice,1,strlen(choice)-2)
-     else
-       "  case "... ... ..."
-      let choice      = strpart(choice,1,strlen(choice)-1)
-      let wholechoice = ""
- 
-      while match(choice,"\"$") == -1
-       let wholechoice = wholechoice . " " . choice
-       let ichoice     = ichoice + 1
-       if ichoice > a:0
-       	if !exists("g:netrw_quiet")
-         echohl Error | echo "***netrw*** Unbalanced string in filename '". wholechoice ."'" | echohl None
-         call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-	endif
-"        call Dret("NetRead")
-        return
-       endif
-       let choice= a:{ichoice}
-      endwhile
-      let choice= strpart(wholechoice,1,strlen(wholechoice)-1) . " " . strpart(choice,0,strlen(choice)-1)
-     endif
-    endif
-   endif
-
-"   call Decho("choice<" . choice . ">")
-   let ichoice= ichoice + 1
- 
-   " fix up windows urls
-   if has("win32") || has("win95") || has("win64") || has("win16")
-    let choice = substitute(choice,'\\','/','ge')
-"    call Decho("fixing up windows url to <".choice."> tmpfile<".tmpfile)
-
-    exe 'lcd ' . fnamemodify(tmpfile,':h')
-    let tmpfile = fnamemodify(tmpfile,':t')
-   endif
- 
-   " Determine method of read (ftp, rcp, etc)
-   call s:NetMethod(choice)
- 
-   " Check if NetBrowse() should be handling this request
-"   call Decho("checking if netlist: choice<".choice."> netrw_list_cmd<".g:netrw_list_cmd.">")
-   if choice =~ "^.*[\/]$"
-    keepjumps call s:NetBrowse(choice)
-"    call Dret("NetRead")
-    return
-   endif
- 
-   " ============
-   " Perform Read
-   " ============
- 
-   ".........................................
-   " rcp:  NetRead Method #1
-   if  b:netrw_method == 1 " read with rcp
-"    call Decho("read via rcp (method #1)")
-   " ER: noting done with g:netrw_uid yet?
-   " ER: on Win2K" rcp machine[.user]:file tmpfile
-   " ER: if machine contains '.' adding .user is required (use $USERNAME)
-   " ER: the tmpfile is full path: rcp sees C:\... as host C
-   if s:netrw_has_nt_rcp == 1
-    if exists("g:netrw_uid") &&	( g:netrw_uid != "" )
-     let uid_machine = g:netrw_machine .'.'. g:netrw_uid
-    else
-     " Any way needed it machine contains a '.'
-     let uid_machine = g:netrw_machine .'.'. $USERNAME
-    endif
-   else
-    if exists("g:netrw_uid") &&	( g:netrw_uid != "" )
-     let uid_machine = g:netrw_uid .'@'. g:netrw_machine
-    else
-     let uid_machine = g:netrw_machine
-    endif
-   endif
-"   call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-   exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".uid_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
-   let result           = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-   let b:netrw_lastfile = choice
- 
-   ".........................................
-   " ftp + <.netrc>:  NetRead Method #2
-   elseif b:netrw_method  == 2		" read with ftp + <.netrc>
-"    call Decho("read via ftp+.netrc (method #2)")
-     let netrw_fname= b:netrw_fname
-     new
-     setlocal ff=unix
-     exe "put ='".g:netrw_ftpmode."'"
-     exe "put ='"."get ".netrw_fname." ".tmpfile."'"
-     if exists("g:netrw_port") && g:netrw_port != ""
-"      call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
-      exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
-     else
-"      call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
-      exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
-     endif
-     " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
-     if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
-      let debugkeep= &debug
-      set debug=msg
-      echohl Error | echo "***netrw*** ".getline(1) | echohl None
-      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-      let &debug= debugkeep
-     endif
-     bd!
-     let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-     let b:netrw_lastfile = choice
- 
-   ".........................................
-   " ftp + machine,id,passwd,filename:  NetRead Method #3
-   elseif b:netrw_method == 3		" read with ftp + machine, id, passwd, and fname
-    " Construct execution string (four lines) which will be passed through filter
-"    call Decho("read via ftp+mipf (method #3)")
-    let netrw_fname= b:netrw_fname
-    new
-    setlocal ff=unix
-    if exists("g:netrw_port") && g:netrw_port != ""
-     put ='open '.g:netrw_machine.' '.g:netrw_port
-    else
-     put ='open '.g:netrw_machine
-    endif
- 
-    if exists("g:netrw_ftp") && g:netrw_ftp == 1
-     put =g:netrw_uid
-     put =g:netrw_passwd
-    else
-     put ='user '.g:netrw_uid.' '.g:netrw_passwd
-    endif
- 
-    if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
-     put =g:netrw_ftpmode
-    endif
-    put ='get '.netrw_fname.' '.tmpfile
- 
-    " perform ftp:
-    " -i       : turns off interactive prompting from ftp
-    " -n  unix : DON'T use <.netrc>, even though it exists
-    " -n  win32: quit being obnoxious about password
-"    call Decho('performing ftp -i -n')
-    norm! 1Gdd
-"    call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
-    exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
-    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
-    if getline(1) !~ "^$"
-"     call Decho("error<".getline(1).">")
-     if !exists("g:netrw_quiet")
-      echohl Error | echo "***netrw*** ".getline(1) | echohl None
-      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-     endif
-    endif
-    bd!
-    let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " scp: NetRead Method #4
-   elseif     b:netrw_method  == 4	" read with scp
-"    call Decho("read via scp (method #4)")
-    if exists("g:netrw_port") && g:netrw_port != ""
-     let useport= " -P ".g:netrw_port
-    else
-     let useport= ""
-    endif
-    if g:netrw_cygwin == 1
-     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-"     call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-     exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
-    else
-"     call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-     exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
-    endif
-    let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   elseif     b:netrw_method  == 5	" read with http (wget)
-"    call Decho("read via http (method #5)")
-    if g:netrw_http_cmd == ""
-     if !exists("g:netrw_quiet")
-      echohl Error | echo "***netrw*** neither wget nor fetch command is available" | echohl None
-      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-     endif
-     exit
-    endif
- 
-    if match(b:netrw_fname,"#") == -1
-     " simple wget
-"     call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&'))
-     exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.escape(b:netrw_fname,' ?&')
-     let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
- 
-    else
-     " wget plus a jump to an in-page marker (ie. http://abc/def.html#aMarker)
-     let netrw_html= substitute(b:netrw_fname,"#.*$","","")
-     let netrw_tag = substitute(b:netrw_fname,"^.*#","","")
-"     call Decho("netrw_html<".netrw_html.">")
-"     call Decho("netrw_tag <".netrw_tag.">")
-"     call Decho("executing: !".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html)
-     exe g:netrw_silentxfer."!".g:netrw_http_cmd." ".tmpfile." http://".g:netrw_machine.netrw_html
-     let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-"     call Decho('<\s*a\s*name=\s*"'.netrw_tag.'"/')
-     exe 'norm! 1G/<\s*a\s*name=\s*"'.netrw_tag.'"/'."\<CR>"
-    endif
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " cadaver: NetRead Method #6
-   elseif     b:netrw_method  == 6	" read with cadaver
-"    call Decho("read via cadaver (method #6)")
- 
-    " Construct execution string (four lines) which will be passed through filter
-    let netrw_fname= b:netrw_fname
-    new
-    setlocal ff=unix
-    if exists("g:netrw_port") && g:netrw_port != ""
-     put ='open '.g:netrw_machine.' '.g:netrw_port
-    else
-     put ='open '.g:netrw_machine
-    endif
-    put ='user '.g:netrw_uid.' '.g:netrw_passwd
- 
-    if g:netrw_cygwin == 1
-     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-     put ='get '.netrw_fname.' '.cygtmpfile
-    else
-     put ='get '.netrw_fname.' '.tmpfile
-    endif
- 
-    " perform cadaver operation:
-    norm! 1Gdd
-"    call Decho("executing: %!".g:netrw_dav_cmd)
-    exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
-    bd!
-    let result           = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " rsync: NetRead Method #7
-   elseif     b:netrw_method  == 7	" read with rsync
-"    call Decho("read via rsync (method #7)")
-    if g:netrw_cygwin == 1
-     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-"     call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-     exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
-    else
-"     call Decho("executing: !".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-     exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
-    endif
-    let result		= s:NetGetFile(readcmd,tmpfile, b:netrw_method)
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " fetch: NetRead Method #8
-   "    fetch://[user@]host[:http]/path
-   elseif     b:netrw_method  == 8	" read with fetch
-    if g:netrw_fetch_cmd == ""
-     if !exists("g:netrw_quiet")
-      echohl Error | echo "***netrw*** fetch command not available" | echohl None
-      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-     endif
-     exit
-    endif
-    if exists("g:netrw_option") && g:netrw_option == ":http"
-     let netrw_option= "http"
-    else
-     let netrw_option= "ftp"
-    endif
-"    call Decho("read via fetch for ".netrw_option)
- 
-    if exists("g:netrw_uid") && g:netrw_uid != "" && exists("g:netrw_passwd") && g:netrw_passwd != ""
-"     call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
-     exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_uid.':'.g:netrw_passwd.'@'.g:netrw_machine."/".escape(b:netrw_fname,' ?&')
-    else
-"     call Decho("executing: !".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&'))
-     exe g:netrw_silentxfer."!".g:netrw_fetch_cmd." ".tmpfile." ".netrw_option."://".g:netrw_machine."/".escape(b:netrw_fname,' ?&')
-    endif
- 
-    let result		= s:NetGetFile(readcmd,tmpfile, b:netrw_method)
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " sftp: NetRead Method #9
-   elseif     b:netrw_method  == 9	" read with sftp
-"    call Decho("read via sftp (method #4)")
-    if g:netrw_cygwin == 1
-     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-"     call Decho("!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-"     call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
-     exe "!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
-    else
-"     call Decho("executing: !".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
-     exe g:netrw_silentxfer."!".g:netrw_sftp_cmd." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
-    endif
-    let result		= s:NetGetFile(readcmd, tmpfile, b:netrw_method)
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   else " Complain
-    echo "***warning*** unable to comply with your request<" . choice . ">"
-   endif
-  endwhile
- 
-  " cleanup
-"  call Decho("cleanup")
-  if exists("b:netrw_method")
-   unlet b:netrw_method
-   unlet b:netrw_fname
-  endif
-  call s:NetOptionRestore()
-
-"  call Dret("NetRead")
-endfun
-
-" ------------------------------------------------------------------------
-" NetGetFile: Function to read file "fname" with command "readcmd". {{{1
-fun! s:NetGetFile(readcmd, fname, method)
-"   call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
- 
-  if exists("*NetReadFixup")
-   " for the use of NetReadFixup (not otherwise used internally)
-   let line2= line("$")
-  endif
- 
-  " transform paths from / to \ for Windows (except for cygwin)
-  if &term == "win32"
-   if g:netrw_cygwin
-    let fname= a:fname
-"    call Decho("(win32 && cygwin) fname<".fname.">")
-   else
-    let fname= substitute(a:fname,'/','\\\\','ge')
-"    call Decho("(win32 && !cygwin) fname<".fname.">")
-   endif
-  else
-   let fname= a:fname
-"   call Decho("(copied) fname<".fname.">")
-  endif
- 
-  if a:readcmd[0] == '0'
-  " get file into buffer
-
-   " record remote filename
-   let rfile= bufname(".")
-"   call Decho("remotefile<".rfile.">")
-"   call Dredir("ls!","starting buffer list")
-
-   " rename the current buffer to the temp file (ie. fname)
-   if v:version < 700
-    exe "file ".fname
-   else
-    keepalt exe "file ".fname
-   endif
-"   call Dredir("ls!","after renaming current buffer to <".fname.">")
-
-   " edit temporary file
-   e
-"   call Dredir("ls!","after editing temporary file")
-
-   " rename buffer back to remote filename
-   if v:version < 700
-    exe "file ".rfile
-   else
-    keepalt exe "file ".rfile
-   endif
-"   call Dredir("ls!","renaming buffer back to remote filename<".rfile.">")
-   let line1 = 1
-   let line2 = line("$")
-
-  elseif filereadable(fname)
-   " read file after current line
-   let curline = line(".")
-   let lastline= line("$")
-"   call Decho("exe<".a:readcmd." ".v:cmdarg." ".fname.">  line#".curline)
-   exe a:readcmd." ".v:cmdarg." ".fname
-   let line1        = curline + 1
-   let line2        = line("$") - lastline + 1
-   let s:netrw_line = s:netrw_line + 1
-   let s:netrw_col  = 1
-  else
-   " not readable
-"   call Dret("NetGetFile : fname<".fname."> not readable")
-   return
-  endif
- 
-  " User-provided (ie. optional) fix-it-up command
-  if exists("*NetReadFixup")
-"   call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
-   call NetReadFixup(a:method, line1, line2)
-" else " Decho
-"  call Decho("NetReadFixup() not called, doesn't exist")
-  endif
-
-  " update the Buffers menu
-  if has("gui") && has("gui_running")
-   silent! emenu Buffers.Refresh\ menu
-  endif
- 
-"  call Decho("readcmd<".a:readcmd."> cmdarg<".v:cmdarg."> fname<".a:fname."> readable=".filereadable(a:fname))
- 
- " insure that we have the right filetype and that its being displayed
-  filetype detect
-  redraw!
-"  call Dret("NetGetFile")
-endfun
-
-" ------------------------------------------------------------------------
-" NetWrite: responsible for writing a file over the net {{{1
-fun! s:NetWrite(...) range
-"  call Dfunc("NetWrite(a:0=".a:0.")")
- 
-  " option handling
-  let mod= 0
-  call s:NetOptionSave()
- 
-  " Get Temporary Filename
-  let tmpfile= tempname()
- 
-  if a:0 == 0
-   let ichoice = 0
-  else
-   let ichoice = 1
-  endif
- 
-  " write (selected portion of) file to temporary
-  silent exe a:firstline."," . a:lastline . "w! ".v:cmdarg." ".tmpfile
- 
-  while ichoice <= a:0
- 
-   " attempt to repeat with previous host-file-etc
-   if exists("b:netrw_lastfile") && a:0 == 0
-"    call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
-    let choice = b:netrw_lastfile
-    let ichoice= ichoice + 1
-   else
-    exe "let choice= a:" . ichoice
- 
-    " Reconstruct Choice if choice starts with '"'
-    if match(choice,"?") == 0
-     echomsg 'NetWrite Usage:"'
-     echomsg ':Nwrite machine:path                        uses rcp'
-     echomsg ':Nwrite "machine path"                      uses ftp with <.netrc>'
-     echomsg ':Nwrite "machine id password path"          uses ftp'
-     echomsg ':Nwrite dav://[user@]machine/path           uses cadaver'
-     echomsg ':Nwrite fetch://[user@]machine/path         uses fetch'
-     echomsg ':Nwrite ftp://machine[#port]/path           uses ftp  (autodetects <.netrc>)'
-     echomsg ':Nwrite rcp://machine/path                  uses rcp'
-     echomsg ':Nwrite rsync://[user@]machine/path         uses rsync'
-     echomsg ':Nwrite scp://[user@]machine[[:#]port]/path uses scp'
-     echomsg ':Nwrite sftp://[user@]machine/path          uses sftp'
-     break
- 
-    elseif match(choice,"^\"") != -1
-     if match(choice,"\"$") != -1
-       " case "..."
-      let choice=strpart(choice,1,strlen(choice)-2)
-     else
-      "  case "... ... ..."
-      let choice      = strpart(choice,1,strlen(choice)-1)
-      let wholechoice = ""
- 
-      while match(choice,"\"$") == -1
-       let wholechoice= wholechoice . " " . choice
-       let ichoice    = ichoice + 1
-       if choice > a:0
-       	if !exists("g:netrw_quiet")
-         echohl Error | echo "***netrw*** Unbalanced string in filename '". wholechoice ."'" | echohl None
-         call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-	endif
-"        call Dret("NetWrite")
-        return
-       endif
-       let choice= a:{ichoice}
-      endwhile
-      let choice= strpart(wholechoice,1,strlen(wholechoice)-1) . " " . strpart(choice,0,strlen(choice)-1)
-     endif
-    endif
-   endif
-"   call Decho("choice<" . choice . ">")
-   let ichoice= ichoice + 1
- 
-   " fix up windows urls
-   if has("win32") || has("win95") || has("win64") || has("win16")
-    let choice= substitute(choice,'\\','/','ge')
-    "ER: see NetRead()
-    exe 'lcd ' . fnamemodify(tmpfile,':h')
-    let tmpfile = fnamemodify(tmpfile,':t')
-   endif
- 
-   " Determine method of read (ftp, rcp, etc)
-   call s:NetMethod(choice)
- 
-   " =============
-   " Perform Write
-   " =============
- 
-   ".........................................
-   " rcp: NetWrite Method #1
-   if  b:netrw_method == 1	" write with rcp
-" Decho "write via rcp (method #1)"
-    if s:netrw_has_nt_rcp == 1
-     if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
-      let uid_machine = g:netrw_machine .'.'. g:netrw_uid
-     else
-      let uid_machine = g:netrw_machine .'.'. $USERNAME
-     endif
-    else
-     if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
-      let uid_machine = g:netrw_uid .'@'. g:netrw_machine
-     else
-      let uid_machine = g:netrw_machine
-     endif
-    endif
-"    call Decho("executing: !".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&'))
-    exe g:netrw_silentxfer."!".g:netrw_rcp_cmd." ".s:netrw_rcpmode." ".tmpfile." ".uid_machine.":".escape(b:netrw_fname,' ?&')
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " ftp + <.netrc>: NetWrite Method #2
-   elseif b:netrw_method == 2	" write with ftp + <.netrc>
-    let netrw_fname = b:netrw_fname
-    new
-    setlocal ff=unix
-    exe "put ='".g:netrw_ftpmode."'"
-"    call Decho(" NetWrite: put ='".g:netrw_ftpmode."'")
-    exe "put ='"."put ".tmpfile." ".netrw_fname."'"
-"    call Decho("put ='"."put ".tmpfile." ".netrw_fname."'")
-    if exists("g:netrw_port") && g:netrw_port != ""
-"     call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
-     exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
-    else
-"     call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
-     exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
-    endif
-    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
-    if getline(1) !~ "^$"
-     if !exists("g:netrw_quiet")
-      echohl Error | echo "***netrw*** ".getline(1) | echohl None
-      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-     endif
-     let mod=1
-    endif
-    bd!
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " ftp + machine, id, passwd, filename: NetWrite Method #3
-   elseif b:netrw_method == 3	" write with ftp + machine, id, passwd, and fname
-    let netrw_fname= b:netrw_fname
-    new
-    setlocal ff=unix
-    if exists("g:netrw_port") && g:netrw_port != ""
-     put ='open '.g:netrw_machine.' '.g:netrw_port
-    else
-     put ='open '.g:netrw_machine
-    endif
-    if exists("g:netrw_ftp") && g:netrw_ftp == 1
-     put =g:netrw_uid
-     put =g:netrw_passwd
-    else
-     put ='user '.g:netrw_uid.' '.g:netrw_passwd
-    endif
-    put ='put '.tmpfile.' '.netrw_fname
-    " save choice/id/password for future use
-    let b:netrw_lastfile = choice
- 
-    " perform ftp:
-    " -i       : turns off interactive prompting from ftp
-    " -n  unix : DON'T use <.netrc>, even though it exists
-    " -n  win32: quit being obnoxious about password
-"    call Decho('performing ftp -i -n')
-    norm! 1Gdd
-"    call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
-    exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
-    " If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
-    if getline(1) !~ "^$"
-     if  !exists("g:netrw_quiet")
-      echohl Error | echo "***netrw*** ".getline(1) | echohl None
-      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-     endif
-     let mod=1
-    endif
-    bd!
- 
-   ".........................................
-   " scp: NetWrite Method #4
-   elseif     b:netrw_method == 4	" write with scp
-    if exists("g:netrw_port") && g:netrw_port != ""
-     let useport= " -P ".g:netrw_port
-    else
-     let useport= ""
-    endif
-    if g:netrw_cygwin == 1
-     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-"     call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-     exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
-    else
-"     call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-     exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
-    endif
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " http: NetWrite Method #5
-   elseif     b:netrw_method == 5
-    if !exists("g:netrw_quiet")
-     echohl Error | echo "***netrw*** currently <netrw.vim> does not support writing using http:" | echohl None
-     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-    endif
- 
-   ".........................................
-   " dav: NetWrite Method #6
-   elseif     b:netrw_method == 6	" write with cadaver
-"    call Decho("write via cadaver (method #6)")
- 
-    " Construct execution string (four lines) which will be passed through filter
-    let netrw_fname= b:netrw_fname
-    new
-    setlocal ff=unix
-    if exists("g:netrw_port") && g:netrw_port != ""
-     put ='open '.g:netrw_machine.' '.g:netrw_port
-    else
-     put ='open '.g:netrw_machine
-    endif
-    put ='user '.g:netrw_uid.' '.g:netrw_passwd
- 
-    if g:netrw_cygwin == 1
-     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-     put ='put '.cygtmpfile.' '.netrw_fname
-    else
-     put ='put '.tmpfile.' '.netrw_fname
-    endif
- 
-    " perform cadaver operation:
-    norm! 1Gdd
-"    call Decho("executing: %!".g:netrw_dav_cmd)
-    exe g:netrw_silentxfer."%!".g:netrw_dav_cmd
-    bd!
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " rsync: NetWrite Method #7
-   elseif     b:netrw_method == 7	" write with rsync
-    if g:netrw_cygwin == 1
-     let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-"     call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-     exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
-    else
-"     call Decho("executing: !".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
-     exe g:netrw_silentxfer."!".g:netrw_rsync_cmd." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
-    endif
-    let b:netrw_lastfile = choice
- 
-   ".........................................
-   " scp: NetWrite Method #9
-   elseif     b:netrw_method == 9	" write with sftp
-    let netrw_fname= b:netrw_fname
-    if exists("g:netrw_uid") &&  ( g:netrw_uid != "" )
-     let uid_machine = g:netrw_uid .'@'. g:netrw_machine
-    else
-     let uid_machine = g:netrw_machine
-    endif
-    new
-    setlocal ff=unix
-    put ='put '.tmpfile.' '.netrw_fname
-    norm! 1Gdd
-"    call Decho("executing: %!".g:netrw_sftp_cmd.' '.uid_machine)
-    exe g:netrw_silentxfer."%!".g:netrw_sftp_cmd.' '.uid_machine
-    bd!
-    let b:netrw_lastfile= choice
- 
-   ".........................................
-   else " Complain
-    echo "***warning*** unable to comply with your request<" . choice . ">"
-   endif
-  endwhile
- 
-  " cleanup
-"  call Decho("cleanup")
-  let result=delete(tmpfile)
-  call s:NetOptionRestore()
- 
-  if a:firstline == 1 && a:lastline == line("$")
-   let &mod= mod	" usually equivalent to set nomod
-  endif
- 
-"  call Dret("NetWrite")
-endfun
-
-" ===========================================
-"  Remote Directory Browsing Support:    {{{1
-" ===========================================
-
-" NetBrowse: This function uses the command in g:netrw_list_cmd to get a list {{{2
-"  of the contents of a remote directory.  It is assumed that the
-"  g:netrw_list_cmd has a string, HOSTNAME, that needs to be substituted
-"  with the requested remote hostname first.
-fun! <SID>NetBrowse(dirname)
-"  call Dfunc("NetBrowse(dirname<".a:dirname.">) longlist=".g:netrw_longlist)
-
-  if exists("s:netrw_skipbrowse")
-   unlet s:netrw_skipbrowse
-"   call Dret("NetBrowse")
-   return
-  endif
-
-  " sanity check
-  if exists("b:netrw_method") && b:netrw_method =~ '[235]'
-"   call Decho("b:netrw_method=".b:netrw_method)
-   if !executable("ftp")
-    if !exists("g:netrw_quiet")
-     echohl Error | echo "***netrw*** this system doesn't support remote directory listing via ftp" | echohl None
-     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-    endif
-"    call Dret("NetBrowse")
-    return
-   endif
-  elseif !exists("g:netrw_list_cmd") || g:netrw_list_cmd == ''
-   if !exists("g:netrw_quiet")
-    echohl Error | echo "***netrw*** this system doesn't support remote directory listing via ssh" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-
-"   call Dret("NetBrowse")
-   return
-  endif
-
-  " use buffer-oriented WinVars if buffer ones exist but window ones don't
-  call s:UseBufWinVars()
-
-  " make this buffer modifiable
-  setlocal ma nonu nowrap
-
-  " analyze a:dirname and g:netrw_list_cmd
-  let dirpat  = '^\(\w\{-}\)://\(\w\+@\)\=\([^/]\+\)/\(.*\)$'
-  let dirname = substitute(a:dirname,'\\','/','ge')
-"  call Decho("dirpat<".dirpat.">")
-  if dirname !~ dirpat
-   if !exists("g:netrw_quiet")
-    echohl Error | echo "***netrw*** netrw doesn't understand your dirname<".dirname.">" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-"   call Dret("NetBrowse : badly formatted dirname<".dirname.">")
-   return
-  endif
-
-  let method  = substitute(dirname,dirpat,'\1','')
-  let user    = substitute(dirname,dirpat,'\2','')
-  let machine = substitute(dirname,dirpat,'\3','')
-  let path    = substitute(dirname,dirpat,'\4','')
-  let fname   = substitute(dirname,'^.*/\ze.','','')
-"  call Decho("set up method <".method .">")
-"  call Decho("set up user   <".user   .">")
-"  call Decho("set up machine<".machine.">")
-"  call Decho("set up path   <".path   .">")
-"  call Decho("set up fname  <".fname  .">")
-
-  if method == "ftp" || method == "http"
-   let method  = "ftp"
-   let listcmd = g:netrw_ftp_list_cmd
-  else
-   let listcmd = substitute(g:netrw_list_cmd,'\<HOSTNAME\>',user.machine,'')
-  endif
-
-  if exists("b:netrw_method")
-"   call Decho("setting w:netrw_method<".b:netrw_method.">")
-   let w:netrw_method= b:netrw_method
-  endif
-
-  " optionally sort by time (-t) or by size (-S)
-  if listcmd == "dir" && g:netrw_sort_by =~ "^[ts]"
-   echohl WarningMsg | echo "***netrw*** windows' ftp doesn't support time/size sorts (get cygwin, set g:netrw_cygwin)" | echohl None
-   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-  else
-   if g:netrw_sort_by =~ "^t"
-    let listcmd= listcmd."t"
-   elseif g:netrw_sort_by =~ "^s"
-    let listcmd= listcmd."S"
-   endif
-   " optionally sort in reverse
-   if g:netrw_sort_direction =~ "^r" && listcmd == "dir"
-    let listcmd= listcmd."r"
-   endif
-  endif
-
-"  call Decho("set up listcmd<".listcmd.">")
-  if fname =~ '@$' && fname !~ '^"'
-"   call Decho("attempt transfer of symlink as file")
-   call s:NetBrowse(substitute(dirname,'@$','','e'))
-   redraw!
-"   call Dret("NetBrowse : symlink")
-   return
-
-  elseif fname !~ '[\/]$' && fname !~ '^"'
-   " looks like a regular file, attempt transfer
-"   call Decho("attempt transfer as regular file<".dirname.">")
-
-   " remove any filetype indicator from end of dirname, except for the
-   " "this is a directory" indicator (/).  There shouldn't be one of those,
-   " anyway.
-   let path= substitute(path,'[*=@|]$','','e')
-"   call Decho("new path<".path.">")
-
-   " remote-read the requested file into current buffer
-   enew!
-"   call Decho("exe file .method."://".user.machine."/".escape(path,s:netrw_cd_escape))
-   exe "file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape)
-   exe "silent doau BufReadPre ".fname
-   silent call s:NetRead(method."://".user.machine."/".path)
-   exe "silent doau BufReadPost ".fname
-   keepjumps 1d
-
-   " save certain window-oriented variables into buffer-oriented variables
-   call s:BufWinVars()
-
-   setlocal nonu nomod noma
-
-"   call Dret("NetBrowse : file<".fname.">")
-   return
-  endif
-
-  " ---------------------------------------------------------------------
-  "  Perform Directory Listing:
-"  call Decho("Perform directory listing...")
-  " set up new buffer and map
-  let bufname   = method.'://'.user.machine.'/'.path
-  let bufnamenr = bufnr(bufname.'$')
-"  call Decho("bufname<".bufname."> bufnamenr=".bufnamenr)
-  if bufnamenr != -1
-   " buffer already exists, switch to it!
-"   call Decho("buffer already exists, switching to it")
-   exe "b ".bufnamenr
-   if line("$") >= 5
-"    call Dret("NetBrowse")
-    return
-   endif
-  else
-"   call Decho("generate a new buffer")
-   enew!
-  endif
-
-  " rename file to reflect where its from
-  setlocal bt=nofile bh=wipe nobl noswf
-  exe "setlocal ts=".g:netrw_maxfilenamelen
-"  call Decho("exe file ".escape(bufname,s:netrw_cd_escape))
-  exe 'file '.escape(bufname,s:netrw_cd_escape)
-"  call Decho("renaming file to bufname<".bufname.">")
-  setlocal bh=hide nobl nonu
-
-  " save current directory on directory history list
-  call <SID>NetBookmarkDir(3,expand("%"))
-
-  " set up buffer-local mappings
-"  call Decho("set up buffer-local mappings")
-  nnoremap <buffer> <silent> <cr>	:exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
-  nnoremap <buffer> <silent> <c-l>	:call <SID>NetRefresh(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
-  nnoremap <buffer> <silent> -		:exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'../'))<cr>
-  nnoremap <buffer> <silent> a		:let g:netrw_hide=(g:netrw_hide+1)%3<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
-  nnoremap <buffer> <silent> b		:<c-u>call <SID>NetBookmarkDir(0,expand("%"))<cr>
-  nnoremap <buffer> <silent> B		:<c-u>call <SID>NetBookmarkDir(1,expand("%"))<cr>
-  nnoremap <buffer> <silent> <c-h>	:call <SID>NetHideEdit(0)<cr>
-  nnoremap <buffer> <silent> i		:call <SID>NetLongList(0)<cr>
-  nnoremap <buffer> <silent> o		:call <SID>NetSplit(0)<cr>
-  nnoremap <buffer> <silent> q		:<c-u>call <SID>NetBookmarkDir(2,expand("%"))<cr>
-  nnoremap <buffer> <silent> r		:let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
-  nnoremap <buffer> <silent> s		:call <SID>NetSaveWordPosn()<bar>let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<bar>call <SID>NetRestoreWordPosn()<cr>
-  nnoremap <buffer> <silent> S		:call <SID>NetSortSequence(0)<cr>
-  nnoremap <buffer> <silent> u		:<c-u>call <SID>NetBookmarkDir(4,expand("%"))<cr>
-  nnoremap <buffer> <silent> U		:<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
-  nnoremap <buffer> <silent> v		:call <SID>NetSplit(1)<cr>
-  nnoremap <buffer> <silent> x		:exe "norm! 0"<bar>call <SID>NetBrowseX(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()),1)<cr>
-  nnoremap <buffer> <silent> <2-leftmouse> :exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
-  exe 'nnoremap <buffer> <silent> <del>	:exe "norm! 0"<bar>call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
-  exe 'vnoremap <buffer> <silent> <del>	:call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
-  exe 'nnoremap <buffer> <silent> d	:call <SID>NetMakeDir("'.user.machine.'")<cr>'
-  exe 'nnoremap <buffer> <silent> D	:exe "norm! 0"<bar>call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
-  exe 'vnoremap <buffer> <silent> D	:call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
-  exe 'nnoremap <buffer> <silent> R	:exe "norm! 0"<bar>call <SID>NetBrowseRename("'.user.machine.'","'.path.'")<cr>'
-  exe 'vnoremap <buffer> <silent> R	:call <SID>NetBrowseRename("'.user.machine.'","'.path.'")<cr>'
-  nnoremap <buffer> ?			:he netrw-browse-cmds<cr>
-  setlocal ma nonu nowrap
-
-  " Set up the banner
-"  call Decho("set up the banner: sortby<".g:netrw_sort_by."> method<".method.">")
-  keepjumps put ='\" ==========================================================================='
-  keepjumps put ='\" Netrw Remote Directory Listing'
-  keepjumps put ='\"   '.bufname
-  let w:netrw_bannercnt = 7
-  let sortby            = g:netrw_sort_by
-  if g:netrw_sort_direction =~ "^r"
-   let sortby           = sortby." reversed"
-  endif
-
-  if g:netrw_sort_by =~ "^n"
-   " sorted by name
-   let w:netrw_bannercnt= w:netrw_bannercnt + 1
-   keepjumps put ='\"   Sorted by      '.sortby
-   keepjumps put ='\"   Sort sequence: '.g:netrw_sort_sequence
-  else
-   " sorted by size or date
-   keepjumps put ='\"   Sorted by '.sortby
-  endif
-  if g:netrw_list_hide != "" && g:netrw_hide
-   if g:netrw_hide == 1
-    keepjumps put ='\"   Hiding:        '.g:netrw_list_hide
-   else
-    keepjumps put ='\"   Showing:       '.g:netrw_list_hide
-   endif
-   let w:netrw_bannercnt= w:netrw_bannercnt + 1
-  endif
-  keepjumps put ='\"   Quick Help:    ?:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec'
-  keepjumps put ='\" ==========================================================================='
-
-  " remote read the requested directory listing
-  " Use ftp if that was the file-transfer method selected, otherwise use ssh
-  " Note that not all ftp servers honor the options for ls
-  if method == "ftp"
-   " use ftp to get remote file listing
-"   call Decho("use ftp to get remote file listing")
-   call NetBrowseFtpCmd(path,listcmd)
-   keepjumps 1d
-
-   if !g:netrw_longlist
-    " shorten the listing
-"    call Decho("generate short listing")
-    exe "keepjumps ".w:netrw_bannercnt
-
-    " cleanup
-    if g:netrw_ftp_browse_reject != ""
-     exe "silent! g/".g:netrw_ftp_browse_reject."/keepjumps d"
-    endif
-
-    " if there's no ../ listed, then put ./ and ../ in
-    let line1= line(".")
-    keepjumps 1
-    silent keepjumps call search('^\.\.\/\%(\s\|$\)','W')
-    let line2= line(".")
-    if line2 == 0
-     keepjumps put='../'
-     keepjumps put='./'
-    endif
-    exe "keepjumps ".line1
-    keepjumps norm! 0
-
-    " more cleanup
-    exe 'keepjumps silent! '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
-    exe "keepjumps silent! ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
-    exe "keepjumps silent! ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
-   endif
-
-  else
-   " use ssh to get remote file listing
-"   call Decho("use ssh to get remote file listing")
-   let shq= &shq? &shq : ( &sxq? &sxq : "'")
-"   call Decho("exe silent r! ".listcmd." '".shq.escape(path,s:netrw_cd_escape).shq."'")
-   exe "silent r! ".listcmd." ".shq.escape(path,s:netrw_cd_escape).shq
-   keepjumps 1d
-   " cleanup
-   if g:netrw_ftp_browse_reject != ""
-    exe "silent! g/".g:netrw_ssh_browse_reject."/keepjumps d"
-   endif
-  endif
-  
-
-  " set up syntax highlighting
-  if has("syntax")
-   setlocal ft=netrwlist
-   if !exists("g:syntax_on") || !g:syntax_on
-    setlocal ft=
-    " Ugly workaround -- when syntax highlighting is off and laststatus==2,
-    " sometimes the laststatus highlight bleeds into the entire display.
-    " Only seems to happen with remote browsing.  Weird.
-    redraw
-   endif
-  endif
-
-  " manipulate the directory listing (hide, sort)
-  if line("$") >= w:netrw_bannercnt
-   if g:netrw_hide && g:netrw_list_hide != ""
-    call s:NetrwListHide()
-   endif
-
-   if g:netrw_longlist
-    " do a long listing; these substitutions need to be done prior to sorting
-"    call Decho("manipulate long listing")
-
-    if method == "ftp"
-     " cleanup
-     exe "keepjumps ".w:netrw_bannercnt
-     while getline(".") =~ g:netrw_ftp_browse_reject
-      keepjumps d
-     endwhile
-     " if there's no ../ listed, then put ./ and ../ in
-     let line1= line(".")
-     keepjumps 1
-     silent keepjumps call search('^\.\.\/\%(\s\|$\)','W')
-     let line2= line(".")
-     if line2 == 0
-      exe 'keepjumps '.w:netrw_bannercnt."put='./'"
-      exe 'keepjumps '.w:netrw_bannercnt."put='../'"
-     endif
-    exe "keepjumps ".line1
-    keepjumps norm! 0
-    endif
-
-    exe 'keepjumps silent '.w:netrw_bannercnt.',$s/ -> .*$//e'
-    exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e'
-    exe w:netrw_bannercnt
-   endif
-
-   if line("$") >= w:netrw_bannercnt
-    if g:netrw_sort_by =~ "^n"
-     call s:SetSort()
-     if v:version < 700
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$call s:NetSort()'
-     elseif g:netrw_sort_direction =~ 'n'
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
-     else
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
-     endif
-     exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
-    endif
-    if g:netrw_longlist
-     " shorten the list to keep its width <= 80 characters
-     exe "keepjumps silent ".w:netrw_bannercnt.',$s/\t[-dstrwx]\+/\t/e'
-    endif
-   endif
-  endif
-  exe "keepjumps ".w:netrw_bannercnt
-
-  setlocal nomod noma nonu
-
-"  call Dret("NetBrowse")
-  return
-endfun
-
-" ---------------------------------------------------------------------
-" NetBrowseChgDir: {{{2
-fun! <SID>NetBrowseChgDir(dirname,newdir)
-"  call Dfunc("NetBrowseChgDir(dirname<".a:dirname."> newdir<".a:newdir.">)")
-
-  let dirname= a:dirname
-  let newdir = a:newdir
-
-  if newdir !~ '[\/]$'
-   " handling a file
-   let dirname= dirname.newdir
-"   call Decho("handling a file: dirname<".dirname.">")
-
-  elseif newdir == './'
-   " refresh the directory list
-"   call Decho("refresh directory listing")
-   setlocal ma nobl bh=hide
-   %d
-
-  elseif newdir == '../'
-   " go up one directory
-   let trailer= substitute(a:dirname,'^\(\w\+://\%(\w\+@\)\=\w\+/\)\(.*\)$','\2','')
-
-   if trailer =~ '^\%(\.\./\)*$'
-    " tack on a ../"
-    let dirname= dirname.'../'
-
-   else
-    " strip off a directory name from dirname
-    let dirname= substitute(dirname,'^\(.*/\)[^/]\+/','\1','')
-   endif
-"   call Decho("go up one dir: dirname<".dirname."> trailer<".trailer.">")
-
-  else
-   " go down one directory
-   let dirname= dirname.newdir
-"   call Decho("go down one dir: dirname<".dirname."> newdir<".newdir.">")
-  endif
-
-"  call Dret("NetBrowseChgDir <".dirname.">")
-  return dirname
-endfun
-
-" ---------------------------------------------------------------------
-"  NetGetWord: it gets the directory named under the cursor
-fun! <SID>NetGetWord()
-"  call Dfunc("NetGetWord() line#".line("."))
-  call s:UseBufWinVars()
-
-  if exists("w:netrw_bannercnt") && line(".") < w:netrw_bannercnt
-   let dirname= "./"
-   let curline= getline(".")
-   if curline =~ '"\s*Sorted by\s'
-    norm s
-    let s:netrw_skipbrowse= 1
-    echo 'Pressing "s" also works'
-   elseif curline =~ '"\s*Sort sequence:'
-    let s:netrw_skipbrowse= 1
-    echo 'Press "S" to edit sorting sequence'
-   elseif curline =~ '"\s*Quick Help:'
-    norm ?
-    let s:netrw_skipbrowse= 1
-    echo 'Pressing "?" also works'
-   elseif curline =~ '"\s*\%(Hiding\|Showing\):'
-    norm a
-    let s:netrw_skipbrowse= 1
-    echo 'Pressing "a" also works'
-   elseif line("$") > w:netrw_bannercnt
-    exe w:netrw_bannercnt
-   endif
-  else
-   let dirname= getline(".")
-   if dirname =~ '\t'
-    let dirname= substitute(dirname,'\t.*$','','e')
-   endif
-  endif
-"  call Dret("NetGetWord <".dirname.">")
-  return dirname
-endfun
-
-" ---------------------------------------------------------------------
-" NetBrowseRm: remove/delete a remote file or directory {{{2
-fun! <SID>NetBrowseRm(usrhost,path) range
-"  call Dfunc("NetBrowseRm(usrhost<".a:usrhost."> path<".a:path.">)")
-"  call Decho("firstline=".a:firstline." lastline=".a:lastline)
-
-  " preparation for removing multiple files/directories
-  let ctr= a:firstline
-  let all= 0
-
-  " remove multiple files and directories
-  while ctr <= a:lastline
-   exe ctr
-
-   norm! 0
-   let rmfile= s:NetGetWord()
-"   call Decho("rmfile<".rmfile.">")
-
-   if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '[\/]$')
-    " attempt to remove file
-    if !all
-     echohl Statement
-     call inputsave()
-     let ok= input("Confirm deletion of file<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
-     call inputrestore()
-     echohl NONE
-     let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
-     if ok =~ 'a\%[ll]'
-      let all= 1
-     endif
-    endif
-
-    if all || ok =~ 'y\%[es]' || ok == ""
-     if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
-      silent! keepjumps .,$d
-      call NetBrowseFtpCmd(a:path,"delete ".rmfile)
-     else
-      let netrw_rm_cmd= substitute(g:netrw_rm_cmd,'HOSTNAME',a:usrhost,'').' "'.escape(a:path.rmfile,s:netrw_cd_escape).'"'
-"      call Decho("attempt to remove file: system(".netrw_rm_cmd.")")
-      let ret= system(netrw_rm_cmd)
-"      call Decho("returned=".ret." errcode=".v:shell_error)
-     endif
-    elseif ok =~ 'q\%[uit]'
-     break
-    endif
-  
-   else
-    " attempt to remove directory
-    if !all
-     call inputsave()
-     let ok= input("Confirm deletion of directory<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
-     call inputrestore()
-     let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
-     if ok =~ 'a\%[ll]'
-      let all= 1
-     endif
-    endif
-
-    if all || ok =~ 'y\%[es]' || ok == ""
-     if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
-      call NetBrowseFtpCmd(a:path,"rmdir ".rmfile)
-     else
-      let rmfile         = a:path.rmfile
-      let netrw_rmdir_cmd= substitute(g:netrw_rmdir_cmd,'HOSTNAME',a:usrhost,'').' '."'".'"'.rmfile.'"'."'"
-"      call Decho("attempt to remove dir: system(".netrw_rmdir_cmd.")")
-      let ret= system(netrw_rmdir_cmd)
-"      call Decho("returned=".ret." errcode=".v:shell_error)
-
-      if v:shell_error != 0
-       let netrw_rmf_cmd= substitute(g:netrw_rmf_cmd,'HOSTNAME',a:usrhost,'').' '.substitute(rmfile,'[\/]$','','e')
-"       call Decho("2nd attempt to remove dir: system(".netrw_rmf_cmd.")")
-       let ret= system(netrw_rmf_cmd)
-"       call Decho("returned=".ret." errcode=".v:shell_error)
-     
-       if v:shell_error != 0 && !exists("g:netrw_quiet")
-        echohl Error | echo "***netrw*** unable to remove directory<".rmfile."> -- is it empty?" | echohl None
-        call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-       endif
-      endif
-     endif
-
-    elseif ok =~ 'q\%[uit]'
-     break
-    endif
-   endif
-
-   let ctr= ctr + 1
-  endwhile
-
-  " refresh the directory
-  let curline= line(".")-1
-"  call Decho("refresh the directory")
-  call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))
-  exe curline
-
-"  call Dret("NetBrowseRm")
-endfun
-
-" ---------------------------------------------------------------------
-" NetBrowseRename: rename a remote file or directory {{{2
-fun! <SID>NetBrowseRename(usrhost,path) range
-"  call Dfunc("NetBrowseRename(usrhost<".a:usrhost."> path<".a:path.">)")
-
-  " preparation for removing multiple files/directories
-  let ctr        = a:firstline
-  let rename_cmd = substitute(g:netrw_rename_cmd,'\<HOSTNAME\>',a:usrhost,'')
-
-  " attempt to rename files/directories
-  while ctr <= a:lastline
-   exe "keepjumps ".ctr
-
-   norm! 0
-   let oldname= s:NetGetWord()
-"   call Decho("oldname<".oldname.">")
-
-   call inputsave()
-   let newname= input("Moving ".oldname." to : ",oldname)
-   call inputrestore()
-
-   if exists("w:netrw_method") && (w:netrw_method == 2 || w:netrw_method == 3)
-    call NetBrowseFtpCmd(a:path,"rename ".oldname." ".newname)
-   else
-    let oldname= a:path.oldname
-    let newname= a:path.newname
-"    call Decho("system(rename_cmd".' "'.escape(oldname," ").'" "'.escape(newname,s:netrw_cd_escape).'"')
-    let ret= system(rename_cmd.' "'.escape(oldname,s:netrw_cd_escape).'" "'.escape(newname,s:netrw_cd_escape).'"')
-   endif
-
-   let ctr= ctr + 1
-  endwhile
-
-  " refresh the directory
-  let curline= line(".")
-  call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))
-  exe "keepjumps ".curline
-"  call Dret("NetBrowseRename")
-endfun
-
-" ---------------------------------------------------------------------
-" NetRefresh: {{{2
-fun! <SID>NetRefresh(dirname)
-"  call Dfunc("NetRefresh(dirname<".a:dirname.">)")
-  set ma
-  %d
-  call <SID>NetBrowse(dirname)
-  redraw!
-"  call Dret("NetRefresh")
-endfun
-
-" ---------------------------------------------------------------------
-" NetSplit: mode {{{2
-"           =0 : net   and o
-"           =1 : net   and v
-"           =2 : local and o
-"           =3 : local and v
-fun! s:NetSplit(mode)
-"  call Dfunc("NetSplit(mode=".a:mode.")")
-
-  call s:SaveWinVars()
-  if a:mode == 0
-   exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"
-   call s:CopyWinVars()
-   exe "norm! 0"
-   call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))
-  elseif a:mode ==1
-   exe (g:netrw_altv? "rightb " : "lefta ").g:netrw_winsize."wincmd v"
-   call s:CopyWinVars()
-   exe "norm! 0"
-   call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))
-  elseif a:mode ==2
-   exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"
-   call s:CopyWinVars()
-   exe "norm! 0"
-   call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
-  else
-   exe (g:netrw_altv? "rightb " : "lefta ").g:netrw_winsize."wincmd v"
-   call s:CopyWinVars()
-   exe "norm! 0"
-   call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
-  endif
-
-"  call Dret("NetSplit")
-endfun
-
-" ---------------------------------------------------------------------
-" NetBrowseX:  allows users to write custom functions to operate on {{{2
-"              files given their extension.  Passes 0=local, 1=remote
-fun! <SID>NetBrowseX(fname,remote)
-"  call Dfunc("NetBrowseX(".a:fname." remote=".a:remote.")")
-
-  " set up the filename
-  " (lower case the extension, make a local copy of a remote file)
-  let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e')
-  if has("win32") || has("win95") || has("win64") || has("win16")
-   let exten= substitute(exten,'^.*$','\L&\E','')
-  endif
-  let fname= escape(a:fname,"%#")
-"  call Decho("fname<".fname."> after escape()")
-
-  if a:remote == 1
-   " create a local copy
-   let fname= tempname().".".exten
-"   call Decho("create a local copy of <".a:fname."> as <".fname.">")
-   exe "keepjumps silent bot 1new ".a:fname
-   set bh=delete
-   exe "w! ".fname
-   q
-  endif
-"  call Decho("exten<".exten."> "."NetrwFileHandler_".exten."():exists=".exists("*NetrwFileHandler_".exten))
-
-  " set up redirection
-  if &srr =~ "%s"
-   let redir= substitute(&srr,"%s","/dev/null"."")
-  else
-   let redir= &srr . "/dev/null"
-  endif
-"  call Decho("redir:".redir.":")
-
-  " execute the file handler
-  if has("win32") || has("win64")
-"   call Decho('exe silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"')
-   exe 'silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"'
-   let ret= v:shell_error
-
-  elseif has("unix") && executable("kfmclient")
-"   call Decho("exe silent !kfmclient exec '".escape(fname,'%#')."' ".redir)
-   exe "silent !kfmclient exec '".escape(fname,'%#')."' ".redir
-   let ret= v:shell_error
-
-  elseif has("unix") && executable("gnome-open")
-"   call Decho("exe silent !gnome-open '".escape(fname,'%#')."' ".redir)
-   exe "silent !gnome-open '".escape(fname,'%#')."'".redir
-   let ret= v:shell_error
-
-  elseif exten != "" && exists("*NetrwFileHandler_".exten)
-"   call Decho("let ret= NetrwFileHandler_".exten.'("'.fname.'")')
-   exe "let ret= NetrwFileHandler_".exten.'("'.fname.'")'
-  endif
-  redraw!
-
-  " cleanup: remove temporary file,
-  "          delete current buffer if success with handler,
-  "          return to prior buffer (directory listing)
-  if a:remote == 1 && fname != a:fname
-"   call Decho("deleting temporary file<".fname.">")
-   call delete(fname)
-  endif
-
-  if a:remote == 1
-   set bh=delete bt=nofile noswf
-   exe "norm! \<c-o>"
-   redraw!
-  endif
-
-"  call Dret("NetBrowseX")
-endfun
-
-" ---------------------------------------------------------------------
-" NetBrowseFtpCmd: unfortunately, not all ftp servers honor options for ls {{{2
-"  This function assumes that a long listing will be received.  Size, time,
-"  and reverse sorts will be requested of the server but not otherwise
-"  enforced here.
-fun! NetBrowseFtpCmd(path,cmd)
-"  call Dfunc("NetBrowseFtpCmd(path<".a:path."> cmd<".a:cmd.">) netrw_method=".w:netrw_method)
-
-  " because WinXX ftp uses unix style input
-  " curline is one more than the bannercnt in order to account
-  " for the unwanted first blank line (doing a :put to an empty
-  " buffer yields a blank first line)
-  let ffkeep= &ff
-  setlocal ma ff=unix
-  let curline= w:netrw_bannercnt+1
-  exe "silent! keepjumps ".curline.",$d"
-
-   ".........................................
-  if w:netrw_method == 2 || w:netrw_method == 5
-   " ftp + <.netrc>:  Method #2
-   if a:path != ""
-    put ='cd '.a:path
-   endif
-   exe "put ='".a:cmd."'"
-"    redraw!|call inputsave()|call input("Pausing...")|call inputrestore()
-   if exists("g:netrw_port") && g:netrw_port != ""
-"    call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
-    exe g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
-   else
-"    call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine)
-    exe g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine
-   endif
-
-   ".........................................
-  elseif w:netrw_method == 3
-   " ftp + machine,id,passwd,filename:  Method #3
-    setlocal ff=unix
-    if exists("g:netrw_port") && g:netrw_port != ""
-     put ='open '.g:netrw_machine.' '.g:netrw_port
-    else
-     put ='open '.g:netrw_machine
-    endif
- 
-    if exists("g:netrw_ftp") && g:netrw_ftp == 1
-     put =g:netrw_uid
-     put =g:netrw_passwd
-    else
-     put ='user '.g:netrw_uid.' '.g:netrw_passwd
-    endif
- 
-   if a:path != ""
-    put ='cd '.a:path
-   endif
-   exe "put ='".a:cmd."'"
- 
-    " perform ftp:
-    " -i       : turns off interactive prompting from ftp
-    " -n  unix : DON'T use <.netrc>, even though it exists
-    " -n  win32: quit being obnoxious about password
-"    call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i -n")
-    exe g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i -n"
-
-   ".........................................
-  else
-    echo "***warning*** unable to comply with your request<" . choice . ">"
-  endif
-
-  " cleanup for Windows
-  if has("win32") || has("win95") || has("win64") || has("win16")
-   keepjumps silent!! %s/\r$//e
-  endif
-  if a:cmd == "dir"
-   " infer directory/link based on the file permission string
-   keepjumps silent! g/d\%([-r][-w][-x]\)\{3}/s@$@/@
-   keepjumps silent! g/l\%([-r][-w][-x]\)\{3}/s/$/@/
-   if !g:netrw_longlist
-    exe "keepjumps silent! ".curline.',$s/^\%(\S\+\s\+\)\{8}//e'
-   endif
-  endif
-
-  " restore settings
-  let &ff= ffkeep
-"  call Dret("NetBrowseFtpCmd")
-endfun
-
-" ---------------------------------------------------------------------
-" NetrwListHide: uses [range]g~...~d to delete files that match comma {{{2
-" separated patterns given in g:netrw_list_hide
-fun! <SID>NetrwListHide()
-"  call Dfunc("NetrwListHide() listhide<".g:netrw_list_hide.">")
-
-  let listhide= g:netrw_list_hide
-  while listhide != ""
-   if listhide =~ ','
-    let hide     = substitute(listhide,',.*$','','e')
-    let listhide = substitute(listhide,'^.\{-},\(.*\)$','\1','e')
-   else
-    let hide     = listhide
-    let listhide= ""
-   endif
-
-   " Prune the list by hiding any files which match
-"   call Decho("pruning <".hide."> listhide<".listhide.">")
-   if g:netrw_hide == 1
-    exe 'keepjumps silent '.w:netrw_bannercnt.',$g~'.hide.'~d'
-   elseif g:netrw_hide == 2
-    exe 'keepjumps silent '.w:netrw_bannercnt.',$v~'.hide.'~d'
-   endif
-  endwhile
-
-"  call Dret("NetrwListHide")
-endfun
-
-" ---------------------------------------------------------------------
-" NetHideEdit: allows user to edit the file/directory hiding list
-fun! <SID>NetHideEdit(mode)
-"  call Dfunc("NetHideEdit(mode=".a:mode.")")
-
-  call inputsave()
-  let newhide= input("Edit Hiding List: ",g:netrw_list_hide)
-  call inputrestore()
-
-  " refresh the listing
-  let g:netrw_list_hide= newhide
-  if a:mode == 0
-   silent call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
-  else
-   silent call s:LocalRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"))
-  endif
-
-"  call Dret("NetHideEdit")
-endfun
-
-" ---------------------------------------------------------------------
-" NetSortSequence: allows user to edit the sorting sequence
-fun! <SID>NetSortSequence(mode)
-"  call Dfunc("NetSortSequence(mode=".a:mode.")")
-
-  call inputsave()
-  let newsortseq= input("Edit Sorting Sequence: ",g:netrw_sort_sequence)
-  call inputrestore()
-
-  " refresh the listing
-  let g:netrw_sort_sequence= newsortseq
-  if a:mode == 0
-   silent call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
-  else
-   silent call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"))
-  endif
-
-"  call Dret("NetSortSequence")
-endfun
-
-" ---------------------------------------------------------------------
-"  NetLongList: {{{2
-fun! <SID>NetLongList(mode)
-"  call Dfunc("NetLongList(mode=".a:mode.") netrw_longlist=".g:netrw_longlist)
-  call s:NetSavePosn()
-
-  if g:netrw_longlist != 0
-   " turn long listing off
-"   call Decho("turn long listing off")
-   let g:netrw_longlist = 0
-   let g:netrw_list_cmd = substitute(g:netrw_list_cmd,' -l','','ge')
-
-  else
-   " turn long listing on
-"   call Decho("turn long listing on")
-   let g:netrw_longlist = 1
-   let g:netrw_list_cmd = g:netrw_list_cmd." -l"
-  endif
-  setlocal ma
-
-  " clear buffer - this will cause NetBrowse/LocalBrowse to do a refresh
-  %d
-
-  " refresh the listing
-  if a:mode == 0
-   silent call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),"./"))
-  else
-   silent call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"))
-  endif
-
-  call s:NetRestorePosn()
-
-"  call Dret("NetLongList : g:netrw_longlist=".g:netrw_longlist)
-endfun
-
-" ---------------------------------------------------------------------
-" NetSaveWordPosn: used by the "s" command in both remote and local {{{2
-" browsing.  Along with NetRestoreWordPosn(), it keeps the cursor on
-" the same word even though the sorting has changed its order of appearance.
-fun! s:NetSaveWordPosn()
-"  call Dfunc("NetSaveWordPosn()")
-  let s:netrw_saveword= '^'.escape(getline("."),s:netrw_cd_escape).'$'
-"  call Dret("NetSaveWordPosn : saveword<".s:netrw_saveword.">")
-endfun
-
-" ---------------------------------------------------------------------
-" NetRestoreWordPosn: used by the "s" command; see NetSaveWordPosn() above {{{2
-fun! s:NetRestoreWordPosn()
-"  call Dfunc("NetRestoreWordPosn()")
-  silent! call search(s:netrw_saveword,'w')
-"  call Dret("NetRestoreWordPosn")
-endfun
-
-" ---------------------------------------------------------------------
-" NetMakeDir: this function makes a directory (both local and remote) {{{2
-fun! <SID>NetMakeDir(usrhost)
-"  call Dfunc("NetMakeDir(usrhost<".a:usrhost.">)")
-
-  " get name of new directory from user.  A bare <CR> will skip.
-  " if its currently a directory, also request will be skipped, but with
-  " a message.
-  call inputsave()
-  let newdirname= input("Please give directory name: ")
-  call inputrestore()
-"  call Decho("newdirname<".newdirname.">")
-
-  if newdirname == ""
-"   call Dret("NetMakeDir : user aborted with bare <cr>")
-   return
-  endif
-
-  if a:usrhost == ""
-
-   " Local mkdir:
-   " sanity checks
-   let fullnewdir= b:netrw_curdir.'/'.newdirname
-"   call Decho("fullnewdir<".fullnewdir.">")
-   if isdirectory(fullnewdir)
-    if !exists("g:netrw_quiet")
-     echohl WarningMsg | echo "***netrw*** <".newdirname."> is already a directory!" | echohl None
-     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-    endif
-"    call Dret("NetMakeDir : directory<".newdirname."> exists previously")
-    return
-   endif
-   if filereadable(fullnewdir)
-    if !exists("g:netrw_quiet")
-     echohl WarningMsg | echo "***netrw*** <".newdirname."> is already a file!" | echohl None
-     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-    endif
-"    call Dret("NetMakeDir : file<".newdirname."> exists previously")
-    return
-   endif
-
-   " requested new local directory is neither a pre-existing file or
-   " directory, so make it!
-   if exists("*mkdir")
-    call mkdir(fullnewdir,"p")
-   else
-    let netrw_origdir= s:NetGetcwd(1)
-    exe 'cd '.b:netrw_curdir
-"    call Decho("netrw_origdir<".netrw_origdir."> b:netrw_curdir<".b:netrw_curdir.">")
-"    call Decho("exe silent! !".g:netrw_local_mkdir.' "'.newdirname.'"')
-    exe "silent! !".g:netrw_local_mkdir.' "'.newdirname.'"'
-    if !g:netrw_keepdir | exe 'keepjumps cd '.netrw_origdir | endif
-   endif
-
-   if v:shell_error == 0
-    " refresh listing
-"    call Decho("refresh listing")
-    let linenum= line(".")
-    norm! H0
-    let hline  = line(".")
-    set ma|norm! 2D
-    call s:LocalBrowse(s:LocalBrowseChgDir(b:netrw_curdir,'./'))
-    exe "norm! ".hline."G0z\<CR>"
-    exe linenum
-   elseif !exists("g:netrw_quiet")
-    echohl Error | echo "***netrw*** unable to make directory<".newdirname.">" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-   redraw!
-
-  else
-   " Remote mkdir:
-   let mkdircmd  = substitute(g:netrw_mkdir_cmd,'\<HOSTNAME\>',a:usrhost,'')
-   let newdirname= "'".'"'.substitute(expand("%"),'^\%(.\{-}/\)\{3}\(.*\)$','\1','').newdirname.'"'."'"
-"   call Decho("exe silent! !".mkdircmd." ".newdirname)
-   exe "silent! !".mkdircmd." ".newdirname
-   if v:shell_error == 0
-    " refresh listing
-    let linenum= line(".")
-    norm! H0
-    let hline  = line(".")
-    call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
-    exe "norm! ".hline."G0z\<CR>"
-    exe linenum
-   elseif !exists("g:netrw_quiet")
-    echohl Error | echo "***netrw*** unable to make directory<".newdirname.">" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-   redraw!
-  endif
-  
-"  call Dret("NetMakeDir")
-endfun
-
-" ---------------------------------------------------------------------
-"  NetBookmarkDir: {{{2
-"    0: (user: <b>)   bookmark current directory
-"    1: (user: <B>)   change to the bookmarked directory
-"    2: (user: <q>)   list bookmarks
-"    3: (LocalBrowse) record current directory history
-"    4: (user: <u>)   go up   (previous) bookmark
-"    5: (user: <U>)   go down (next)     bookmark
-fun! <SID>NetBookmarkDir(chg,curdir)
-"  call Dfunc("NetBookmarkDir(chg=".a:chg." curdir<".a:curdir.">) cnt=".v:count)
-  if exists("w:netrw_bannercnt") && line(".") <= w:netrw_bannercnt
-   " looks like a "b" was pressed while in the banner region
-   if line("$") > w:netrw_bannercnt
-    exe w:netrw_bannercnt
-   endif
-   echo ""
-"  call Dret("NetBookmarkDir - ignoring")
-   return
-  endif
-
-  if a:chg == 0
-   " bookmark the current directory
-   let g:NETRW_BOOKMARKDIR_{v:count}= a:curdir
-   if !exists("g:NETRW_BOOKMARKMAX")
-    let g:NETRW_BOOKMARKMAX= v:count
-   elseif v:count > g:NETRW_BOOKMARKMAX
-    let g:NETRW_BOOKMARKMAX= v:count
-   endif
-   echo "bookmarked the current directory"
-
-  elseif a:chg == 1
-   " change to the bookmarked directory
-   if exists("g:NETRW_BOOKMARKDIR_{v:count}")
-    exe "e ".g:NETRW_BOOKMARKDIR_{v:count}
-   else
-    echomsg "Sorry, bookmark#".v:count." doesn't exist!"
-   endif
-
-  elseif a:chg == 2
-   " list user's bookmarks
-   if exists("g:NETRW_BOOKMARKMAX")
-"    call Decho("list bookmarks [0,".g:NETRW_BOOKMARKMAX."]")
-    let cnt= 0
-    while cnt <= g:NETRW_BOOKMARKMAX
-     if exists("g:NETRW_BOOKMARKDIR_{cnt}")
-"      call Decho("Netrw Bookmark#".cnt.": ".g:NETRW_BOOKMARKDIR_{cnt})
-      echo "Netrw Bookmark#".cnt.": ".g:NETRW_BOOKMARKDIR_{cnt}
-     endif
-     let cnt= cnt + 1
-    endwhile
-   endif
-
-   " list directory history
-   let cnt     = g:NETRW_DIRHIST_CNT
-   let first   = 1
-   let histcnt = 0
-   while ( first || cnt != g:NETRW_DIRHIST_CNT )
-"    call Decho("first=".first." cnt=".cnt." dirhist_cnt=".g:NETRW_DIRHIST_CNT)
-    let histcnt= histcnt + 1
-    if exists("g:NETRW_DIRHIST_{cnt}")
-"     call Decho("Netrw  History#".histcnt.": ".g:NETRW_DIRHIST_{cnt})
-     echo "Netrw  History#".histcnt.": ".g:NETRW_DIRHIST_{cnt}
-    endif
-    let first = 0
-    let cnt   = ( cnt - 1 ) % g:netrw_dirhistmax
-    if cnt < 0
-     let cnt= cnt + g:netrw_dirhistmax
-    endif
-   endwhile
-
-  elseif a:chg == 3
-   " saves most recently visited directories (when they differ)
-   if !exists("g:NETRW_DIRHIST_0") || g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT} != a:curdir
-    let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT + 1 ) % g:netrw_dirhistmax
-    let g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}= substitute(a:curdir,'[/\\]$','','e')
-"    call Decho("save dirhist#".g:NETRW_DIRHIST_CNT."<".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}.">")
-   endif
-
-  elseif a:chg == 4
-   " u: change to the previous directory stored on the history list
-   let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT - 1 ) % g:netrw_dirhistmax
-   if g:NETRW_DIRHIST_CNT < 0
-    let g:NETRW_DIRHIST_CNT= g:NETRW_DIRHIST_CNT + g:netrw_dirhistmax
-   endif
-   if exists("g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}")
-"    call Decho("changedir u#".g:NETRW_DIRHIST_CNT."<".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}.">")
-    exe "e ".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}
-   else
-    let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT + 1 ) % g:netrw_dirhistmax
-    echo "Sorry, no predecessor directory exists yet"
-   endif
-
-  elseif a:chg == 5
-   " U: change to the subsequent directory stored on the history list
-   let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT + 1 ) % g:netrw_dirhistmax
-   if exists("g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}")
-"    call Decho("changedir U#".g:NETRW_DIRHIST_CNT."<".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}.">")
-    exe "e ".g:NETRW_DIRHIST_{g:NETRW_DIRHIST_CNT}
-   else
-    let g:NETRW_DIRHIST_CNT= ( g:NETRW_DIRHIST_CNT - 1 ) % g:netrw_dirhistmax
-    if g:NETRW_DIRHIST_CNT < 0
-     let g:NETRW_DIRHIST_CNT= g:NETRW_DIRHIST_CNT + g:netrw_dirhistmax
-    endif
-    echo "Sorry, no successor directory exists yet"
-   endif
-  endif
-"  call Dret("NetBookmarkDir")
-endfun
-
-" ==========================================
-"  Local Directory Browsing Support:    {{{1
-" ==========================================
-
-" ---------------------------------------------------------------------
-" LocalBrowse: supports local file/directory browsing {{{2
-fun! <SID>LocalBrowse(dirname)
-
-"  let dirname= (a:dirname == "")? expand("%:p") : a:dirname
-  if !isdirectory(a:dirname)
-   " not a directory, ignore it
-   return
-  endif
-
-  " unfortunate interaction -- when putting debugging calls
-  " above one can no longer enter the DBG buffer.
-"  call Dfunc("LocalBrowse(dirname<".a:dirname.">) buf#".bufnr("%")." winnr=".winnr()." sortby=".g:netrw_sort_by)
-"  call Dredir("ls!")
-
-  if exists("s:netrw_skipbrowse")
-   unlet s:netrw_skipbrowse
-"   call Dret("NetBrowse")
-   return
-  endif
-
-  if v:version < 603
-   if !exists("g:netrw_quiet")
-    echohl Error | echo "***netrw*** vim version<".v:version."> too old for browsing with netrw" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-"   call Dret("LocalBrowse : vim version<".v:version."> too old")
-   return
-  endif
-
-  " record autochdir setting and then insure its unset (tnx to David Fishburn)
-  if has("netbeans_intg") || has("sun_workshop")
-   let keep_autochdir= &autochdir
-   set noautochdir
-  endif
-
-  " use buffer-oriented WinVars if buffer ones exist but window ones don't
-  call s:UseBufWinVars()
-
-  " find buffer number of buffer named precisely the same as a:dirname
-  let bufnum= bufnr(a:dirname)
-"  call Decho("findbuf: bufnum=".bufnum)
-  if bufnum > 0 && bufname(bufnum) != a:dirname
-   let ibuf= 1
-   let buflast= bufnr("$")
-   while bufname(ibuf) !~ '^'.a:dirname.'\=$' && ibuf <= buflast
-"    call Decho("findbuf: ibuf=".ibuf. " bufname<".bufname(ibuf)."> dirname<".a:dirname.">")
-    let ibuf= ibuf + 1
-   endwhile
-   if ibuf > buflast
-    let bufnum= -1
-   else
-    let bufnum= ibuf
-   endif
-"   call Decho("findbuf: bufnum=".bufnum." (final)")
-  endif
-
-  " get cleared buffer
-  if bufnum < 0
-   if v:version < 700
-    enew!
-   else
-    keepalt enew!
-   endif
-"   call Decho("enew buffer")
-  else
-   if v:version < 700
-    exe "b ".bufnum
-   else
-    exe "keepalt b ".bufnum
-   endif
-   if exists("s:last_sort_by") && g:netrw_sort_by == s:last_sort_by
-    if getline(2) =~ '^" Directory Listing '
-     if !g:netrw_keepdir
-"      call Decho("change directory: cd ".b:netrw_curdir)
-      exe 'cd '.b:netrw_curdir
-     endif
-"     call Dret("LocalBrowse : reusing buffer#".bufnum."<".a:dirname.">")
-     return
-    endif
-   endif
-  endif
-  let s:last_sort_by= g:netrw_sort_by
-
-  " get the new directory name
-  let b:netrw_curdir= substitute(a:dirname,'\\','/','ge')
-  if b:netrw_curdir =~ '[/\\]$'
-   let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
-  endif
-"  call Decho("b:netrw_curdir<".b:netrw_curdir.">")
-
-  " make netrw's idea of the current directory vim's if the user wishes
-  if !g:netrw_keepdir
-"   call Decho("change directory: cd ".b:netrw_curdir)
-   try
-    exe 'cd '.b:netrw_curdir
-   catch /^Vim\%((\a\+)\)\=:E472/
-    echohl Error | echo "***netrw*** unable to change directory to <".b:netrw_curdir."> (permissions?)" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-    if exists("w:netrw_prvdir")
-     let b:netrw_curdir= w:netrw_prvdir
-    else
-"     call Dret("LocalBrowse : reusing buffer#".bufnum."<".a:dirname.">")
-     return
-    endif
-   endtry
-  endif
-
-  " change the name of the buffer to reflect the b:netrw_curdir
-  exe 'silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape)
-
-  " make this buffer modifiable and hidden
-  setlocal ma hidden nonu
-  if v:version < 700
-   silent! %d
-  else
-   keepalt silent! %d
-  endif
-
-  " ---------------------------
-  "  Perform Directory Listing:
-
-  " save current directory on directory history list
-  call <SID>NetBookmarkDir(3,b:netrw_curdir)
-
-  " set up all the maps
-"  call Decho("Setting up local browser maps")
-  nnoremap <buffer> <silent> <cr>	:exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
-  nnoremap <buffer> <silent> <c-l>	:set ma<bar>%d<bar>call <SID>LocalRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<bar>redraw!<cr>
-  nnoremap <buffer> <silent> -		:exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'../'))<cr>
-  nnoremap <buffer> <silent> a		:let g:netrw_hide=(g:netrw_hide+1)%3<bar>exe "norm! 0"<bar>call <SID>LocalRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
-  nnoremap <buffer> <silent> b		:<c-u>call <SID>NetBookmarkDir(0,b:netrw_curdir)<cr>
-  nnoremap <buffer> <silent> B		:<c-u>call <SID>NetBookmarkDir(1,b:netrw_curdir)<cr>
-  nnoremap <buffer> <silent> c		:exe "cd ".b:netrw_curdir<cr>
-  nnoremap <buffer> <silent> d		:call <SID>NetMakeDir("")<cr>
-  nnoremap <buffer> <silent> <c-h>	:call <SID>NetHideEdit(1)<cr>
-  nnoremap <buffer> <silent> i		:call <SID>NetLongList(1)<cr>
-  nnoremap <buffer> <silent> o		:call <SID>NetSplit(2)<cr>
-  nnoremap <buffer> <silent> p		:exe "norm! 0"<bar>call <SID>LocalPreview(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),1))<cr>
-  nnoremap <buffer> <silent> q		:<c-u>call <SID>NetBookmarkDir(2,b:netrw_curdir)<cr>
-  nnoremap <buffer> <silent> r		:let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
-  nnoremap <buffer> <silent> s		:call <SID>NetSaveWordPosn()<bar>let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<bar>call <SID>NetRestoreWordPosn()<cr>
-  nnoremap <buffer> <silent> S		:call <SID>NetSortSequence(1)<cr>
-  nnoremap <buffer> <silent> u		:<c-u>call <SID>NetBookmarkDir(4,expand("%"))<cr>
-  nnoremap <buffer> <silent> U		:<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
-  nnoremap <buffer> <silent> v		:call <SID>NetSplit(3)<cr>
-  nnoremap <buffer> <silent> x		:exe "norm! 0"<bar>call <SID>NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)<cr>
-  nnoremap <buffer> <silent> <2-leftmouse> :exe "norm! 0"<bar>call <SID>LocalRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
-  nnoremap <buffer> <silent> <s-up>	:Pexplore<cr>
-  nnoremap <buffer> <silent> <s-down>	:Nexplore<cr>
-  exe 'nnoremap <buffer> <silent> <del>	:exe "norm! 0"<bar>call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
-  exe 'vnoremap <buffer> <silent> <del>	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
-  exe 'nnoremap <buffer> <silent> D	:exe "norm! 0"<bar>call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
-  exe 'vnoremap <buffer> <silent> D	:call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
-  exe 'nnoremap <buffer> <silent> R	:exe "norm! 0"<bar>call <SID>LocalBrowseRename("'.b:netrw_curdir.'")<cr>'
-  exe 'vnoremap <buffer> <silent> R	:call <SID>LocalBrowseRename("'.b:netrw_curdir.'")<cr>'
-  exe 'nnoremap <buffer> <silent> <Leader>m :call <SID>NetMakeDir("")<cr>'
-  nnoremap <buffer> ?			:he netrw-dir<cr>
-
-  " Set up the banner
-"  call Decho("set up banner")
-  keepjumps put ='\" ============================================================================'
-  keepjumps 1d
-  keepjumps put ='\" Directory Listing                                              (netrw '.g:loaded_netrw.')'
-  keepjumps put ='\"   '.b:netrw_curdir
-  let w:netrw_bannercnt= 3
-
-  let sortby= g:netrw_sort_by
-  if g:netrw_sort_direction =~ "^r"
-   let sortby= sortby." reversed"
-  endif
-
-  " Sorted by...
-  if g:netrw_sort_by =~ "^n"
-"   call Decho("directories will be sorted by name")
-   " sorted by name
-   keepjumps put ='\"   Sorted by      '.sortby
-   keepjumps put ='\"   Sort sequence: '.g:netrw_sort_sequence
-   let w:netrw_bannercnt= w:netrw_bannercnt + 2
-  else
-"   call Decho("directories will be sorted by size or date")
-   " sorted by size or date
-   keepjumps put ='\"   Sorted by '.sortby
-   let w:netrw_bannercnt= w:netrw_bannercnt + 1
-  endif
-
-  " Hiding...  -or-  Showing...
-  if g:netrw_list_hide != "" && g:netrw_hide
-   if g:netrw_hide == 1
-    keepjumps put ='\"   Hiding:        '.g:netrw_list_hide
-   else
-    keepjumps put ='\"   Showing:       '.g:netrw_list_hide
-   endif
-   let w:netrw_bannercnt= w:netrw_bannercnt + 1
-  endif
-  keepjumps put ='\"   Quick Help:    ?:help  -:go up dir  D:delete  R:rename  s:sort-by  x:exec'
-  keepjumps put ='\" ============================================================================'
-  let w:netrw_bannercnt= w:netrw_bannercnt + 2
-
-  " bannercnt should index the line just after the banner
-  let w:netrw_bannercnt= w:netrw_bannercnt + 1
-"  call Decho("bannercnt=".w:netrw_bannercnt)
-
-  " generate the requested directory listing
-  call LocalBrowseList()
-
-  " set up syntax highlighting
-  if has("syntax")
-   setlocal ft=netrwlist
-   if !exists("g:syntax_on") || !g:syntax_on
-    setlocal ft=
-   endif
-  endif
-
-  " manipulate the directory listing (hide, sort)
-  if line("$") >= w:netrw_bannercnt
-   if g:netrw_hide && g:netrw_list_hide != ""
-    call s:NetrwListHide()
-   endif
-   if line("$") >= w:netrw_bannercnt
-
-    if g:netrw_sort_by =~ "^n"
-     call s:SetSort()
-
-     if v:version < 700
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$call s:NetSort()'
-     elseif g:netrw_sort_direction =~ 'n'
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
-     else
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
-     endif
-     exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
-
-    else
-     if v:version < 700
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$call s:NetSort()'
-     elseif g:netrw_sort_direction =~ 'n'
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
-     else
-      exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
-     endif
-     exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
-    endif
-
-   endif
-  endif
-  if exists("w:netrw_bannercnt") && line("$") > w:netrw_bannercnt
-   exe w:netrw_bannercnt
-  endif
-
-  " record previous current directory
-  let w:netrw_prvdir= b:netrw_curdir
-
-  " save certain window-oriented variables into buffer-oriented variables
-  call s:BufWinVars()
-
-  setlocal noma nomod nonu bh=hide nobl
-  if has("netbeans_intg") || has("sun_workshop")
-   let &autochdir= keep_autochdir
-  endif
-
-"  call Dret("LocalBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
-endfun
-
-" ---------------------------------------------------------------------
-"  LocalBrowseList: does the job of "ls" for local directories {{{2
-fun! LocalBrowseList()
-"  call Dfunc("LocalBrowseList() b:netrw_curdir<".b:netrw_curdir.">")
-
-  " get the list of files contained in the current directory
-  let dirname    = escape(b:netrw_curdir,s:netrw_glob_escape)
-  let dirnamelen = strlen(b:netrw_curdir)
-  let filelist   = glob(dirname."/*")
-"  call Decho("glob(dirname<".dirname.">,*)=".filelist)
-  if filelist != ""
-   let filelist= filelist."\n"
-  endif
-  let filelist= filelist.glob(dirname."/.*")
-"  call Decho("glob(dirname<".dirname.">,.*)=".glob(dirname.".*"))
-
-  " if the directory name includes a "$", and possibly other characters,
-  " the glob() doesn't include "." and ".." entries.
-  if filelist !~ '[\\/]\.[\\/]\=\(\n\|$\)'
-"   call Decho("forcibly tacking on .")
-   if filelist == ""
-    let filelist= dirname."."
-   else
-    let filelist= filelist."\n".b:netrw_curdir."."
-   endif
-"  call Decho("filelist<".filelist.">")
-  endif
-  if filelist !~ '[\\/]\.\.[\\/]\=\(\n\|$\)'
-"   call Decho("forcibly tacking on ..")
-   let filelist= filelist."\n".b:netrw_curdir.".."
-"  call Decho("filelist<".filelist.">")
-  endif
-  let filelist= substitute(filelist,'\n\{2,}','\n','ge')
-
-"  call Decho("dirname<".dirname.">")
-"  call Decho("dirnamelen<".dirnamelen.">")
-"  call Decho("filelist<".filelist.">")
-
-  while filelist != ""
-   if filelist =~ '\n'
-    let filename = substitute(filelist,'\n.*$','','e')
-    let filelist = substitute(filelist,'^.\{-}\n\(.*\)$','\1','e')
-   else
-    let filename = filelist
-    let filelist = ""
-   endif
-   let pfile= filename
-   if isdirectory(filename)
-    let pfile= filename."/"
-   endif
-   if pfile =~ '//$'
-    let pfile= substitute(pfile,'//$','/','e')
-   endif
-   let pfile= strpart(pfile,dirnamelen)
-   let pfile= substitute(pfile,'^/','','e')
-"   call Decho(" ")
-"   call Decho("filename<".filename.">")
-"   call Decho("pfile   <".pfile.">")
-
-   if g:netrw_longlist
-    let sz   = getfsize(filename)
-    if v:version <= 700
-     let fsz  = strpart("               ",1,15-strlen(sz)).sz
-     let pfile= pfile."\t".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
-    else
-     let pfile= printf('%-'.g:netrw_maxfilenamelen.'s%15d%s',pfile,sz,getftime(filename))
-    endif
-"    call Decho("sz=".sz." fsz=".fsz)
-   endif
-
-   if     g:netrw_sort_by =~ "^t"
-    " sort by time (handles time up to 1 quintillion seconds, US)
-"    call Decho("getftime(".filename.")=".getftime(filename))
-    let t  = getftime(filename)
-    let ft = strpart("000000000000000000",1,18-strlen(t)).t
-"    call Decho("exe keepjumps put ='".ft.'/'.filename."'")
-    let ftpfile= ft.'/'.pfile
-    keepjumps put=ftpfile
-
-   elseif g:netrw_sort_by =~ "^s"
-    " sort by size (handles file sizes up to 1 quintillion bytes, US)
-"    call Decho("getfsize(".filename.")=".getfsize(filename))
-    let sz   = getfsize(filename)
-    let fsz  = strpart("000000000000000000",1,18-strlen(sz)).sz
-"    call Decho("exe keepjumps put ='".fsz.'/'.filename."'")
-    let fszpfile= fsz.'/'.pfile
-    keepjumps put =fszpfile
-
-   else 
-    " sort by name
-"    call Decho("exe keepjumps put ='".pfile."'")
-    keepjumps put=pfile
-   endif
-  endwhile
-  setlocal ts=32
-
-"  call Dret("LocalBrowseList")
-endfun
-
-" ---------------------------------------------------------------------
-"  LocalBrowseChgDir: constructs a new directory based on the current {{{2
-"                     directory and a new directory name
-fun! <SID>LocalBrowseChgDir(dirname,newdir,...)
-"  call Dfunc("LocalBrowseChgDir(dirname<".a:dirname."> newdir<".a:newdir.">) a:0=".a:0)
-
-  let dirname= substitute(a:dirname,'\\','','ge')
-  let newdir = a:newdir
-
-  if dirname !~ '[\/]$'
-   " apparently vim is "recognizing" that it is in the home directory and
-   " is removing the "/".  Bad idea, so I have to put it back.
-   let dirname= dirname.'/'
-"   call Decho("adjusting dirname<".dirname.">")
-  endif
-
-  if newdir !~ '[\/]$'
-   " handling a file
-   let dirname= dirname.newdir
-"   call Decho("handling a file: dirname<".dirname.">")
-   " this lets NetBrowseX avoid the edit
-   if a:0 < 1
-"    call Decho("dirname<".dirname."> netrw_cd_escape<".s:netrw_cd_escape.">")
-"    call Decho("about to edit<".escape(dirname,s:netrw_cd_escape).">")
-    exe "e! ".escape(dirname,s:netrw_cd_escape)
-   endif
-
-  elseif newdir == './'
-   " refresh the directory list
-"   call Decho("refresh directory listing")
-
-  elseif newdir == '../'
-   " go up one directory
-   let dirname= substitute(dirname,'^\(.*/\)\([^/]\+[\/]$\)','\1','e')
-"   call Decho("go up one dir: dirname<".dirname.">")
-
-  else
-   " go down one directory
-   let dirname= dirname.newdir
-"   call Decho("go down one dir: dirname<".dirname."> newdir<".newdir.">")
-  endif
-
-"  call Dret("LocalBrowseChgDir <".dirname.">")
-  return dirname
-endfun
-
-" ---------------------------------------------------------------------
-" LocalBrowseRm: {{{2
-fun! <SID>LocalBrowseRm(path) range
-"  call Dfunc("LocalBrowseRm(path<".a:path.">)")
-"  call Decho("firstline=".a:firstline." lastline=".a:lastline)
-
-  " preparation for removing multiple files/directories
-  let ctr           = a:firstline
-  let ret           = 0
-  let all= 0
-
-  " remove multiple files and directories
-  while ctr <= a:lastline
-   exe "keepjumps ".ctr
-
-   " sanity checks
-   if line(".") < w:netrw_bannercnt
-    let ctr= ctr + 1
-    continue
-   endif
-   let curword= s:NetGetWord()
-   if curword == "./" || curword == "../"
-    let ctr= ctr + 1
-    continue
-   endif
-
-   norm! 0
-   let rmfile= a:path."/".curword
-"   call Decho("rmfile<".rmfile.">")
-
-   if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '[\/]$')
-    " attempt to remove file
-    if !all
-     echohl Statement
-     call inputsave()
-     let ok= input("Confirm deletion of file<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
-     call inputrestore()
-     echohl NONE
-     let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
-     if ok =~ 'a\%[ll]'
-      let all= 1
-     endif
-    endif
-
-    if all || ok =~ 'y\%[es]' || ok == ""
-     let ret= delete(rmfile)
-"     call Decho("errcode=".v:shell_error." ret=".ret)
-    elseif ok =~ 'q\%[uit]'
-     break
-    endif
-  
-   else
-    " attempt to remove directory
-    if !all
-     echohl Statement
-     call inputsave()
-     let ok= input("Confirm deletion of directory<".rmfile."> ","[{y(es)},n(o),a(ll),q(uit)] ")
-     call inputrestore()
-     let ok= substitute(ok,'\[{y(es)},n(o),a(ll),q(uit)]\s*','','e')
-     if ok =~ 'a\%[ll]'
-      let all= 1
-     endif
-    endif
-    let rmfile= substitute(rmfile,'[\/]$','','e')
-
-    if all || ok =~ 'y\%[es]' || ok == ""
-"     call Decho("1st attempt: system(".g:netrw_local_rmdir.' "'.rmfile.'")')
-     call system(g:netrw_local_rmdir.' "'.rmfile.'"')
-"     call Decho("v:shell_error=".v:shell_error)
-
-     if v:shell_error != 0
-"      call Decho("2nd attempt to remove directory<".rmfile.">")
-      let errcode= delete(rmfile)
-"      call Decho("errcode=".errcode)
-
-      if errcode != 0
-       if has("unix")
-"        call Decho("3rd attempt to remove directory<".rmfile.">")
-	call system("rm ".rmfile)
-        if v:shell_error != 0 && !exists("g:netrw_quiet")
-         echohl Error | echo "***netrw*** unable to remove directory<".rmfile."> -- is it empty?" | echohl None
-         call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-	endif
-       elseif !exists("g:netrw_quiet")
-        echohl Error | echo "***netrw*** unable to remove directory<".rmfile."> -- is it empty?" | echohl None
-        call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-       endif
-      endif
-     endif
-
-    elseif ok =~ 'q\%[uit]'
-     break
-    endif
-   endif
-
-   let ctr= ctr + 1
-  endwhile
-
-  " refresh the directory
-  let curline= line(".")
-"  call Decho("refresh the directory")
-  call s:LocalRefresh(s:LocalBrowseChgDir(b:netrw_curdir,'./'))
-  exe curline
-
-"  call Dret("LocalBrowseRm")
-endfun
-
-" ---------------------------------------------------------------------
-" LocalBrowseRename: rename a remote file or directory {{{2
-fun! <SID>LocalBrowseRename(path) range
-"  call Dfunc("LocalBrowseRename(path<".a:path.">)")
-
-  " preparation for removing multiple files/directories
-  let ctr= a:firstline
-
-  " attempt to rename files/directories
-  while ctr <= a:lastline
-   exe "keepjumps ".ctr
-
-   " sanity checks
-   if line(".") < w:netrw_bannercnt
-    let ctr= ctr + 1
-    continue
-   endif
-   let curword= s:NetGetWord()
-   if curword == "./" || curword == "../"
-    let ctr= ctr + 1
-    continue
-   endif
-
-   norm! 0
-   let oldname= a:path."/".curword
-"   call Decho("oldname<".oldname.">")
-
-   call inputsave()
-   let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
-   call inputrestore()
-
-   let ret= rename(oldname,newname)
-"   call Decho("renaming <".oldname."> to <".newname.">")
-
-   let ctr= ctr + 1
-  endwhile
-
-  " refresh the directory
-  let curline= line(".")
-"  call Decho("refresh the directory listing")
-  call s:LocalRefresh(s:LocalBrowseChgDir(b:netrw_curdir,'./'))
-  exe "keepjumps ".curline
-"  call Dret("LocalBrowseRename")
-endfun
-
-" ---------------------------------------------------------------------
-" LocalPreview: {{{2
-fun! <SID>LocalPreview(path) range
-"  call Dfunc("LocalPreview(path<".a:path.">)")
-  if has("quickfix")
-   if !isdirectory(a:path)
-    exe "pedit ".a:path
-   elseif !exists("g:netrw_quiet")
-    echohl WarningMsg | echo "***netrw*** sorry, cannot preview a directory such as <".a:path.">" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-  elseif !exists("g:netrw_quiet")
-   echohl WarningMsg | echo "***netrw*** sorry, to preview your vim needs the quickfix feature compiled in" | echohl None
-   call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-  endif
-"  call Dret("LocalPreview")
-endfun
-
-" ---------------------------------------------------------------------
-" LocalRefresh: {{{2
-fun! <SID>LocalRefresh(dirname)
-"  call Dfunc("LocalRefresh(dirname<".a:dirname.">)")
-  set ma
-  %d
-  call <SID>LocalBrowse(a:dirname)
-  redraw!
-"  call Dret("LocalRefresh")
-endfun
-
-" ---------------------------------------------------------------------
-" Explore: launch the local browser in the directory of the current file {{{2
-"          dosplit==0: the window will be split iff the current file has
-"                      been modified
-"          dosplit==1: the window will be split before running the local
-"                      browser
-fun! s:Explore(indx,dosplit,style,...)
-"  call Dfunc("Explore(indx=".a:indx." dosplit=".a:dosplit." style=".a:style.")")
-
-  " if dosplit or file has been modified
-  if a:dosplit || &modified
-   call <SID>SaveWinVars()
-
-   if a:style == 0      " Explore, Sexplore
-    exe g:netrw_winsize."wincmd s"
-"    call Decho("style=0: Explore or Sexplore")
-
-   elseif a:style == 1  "Explore!, Sexplore!
-    exe g:netrw_winsize."wincmd v"
-"    call Decho("style=1: Explore! or Sexplore!")
-
-   elseif a:style == 2  " Hexplore
-    exe "bel ".g:netrw_winsize."wincmd s"
-"    call Decho("style=2: Hexplore")
-
-   elseif a:style == 3  " Hexplore!
-    exe "abo ".g:netrw_winsize."wincmd s"
-"    call Decho("style=3: Hexplore!")
-
-   elseif a:style == 4  " Vexplore
-    exe "lefta ".g:netrw_winsize."wincmd v"
-"    call Decho("style=4: Vexplore")
-
-   elseif a:style == 5  " Vexplore!
-    exe "rightb ".g:netrw_winsize."wincmd v"
-"    call Decho("style=5: Vexplore!")
-   endif
-   call s:CopyWinVars()
-  endif
-  norm! 0
-
-  if a:1 == "" && a:indx >= 0
-   " Explore Hexplore Vexplore Sexplore
-   let newdir= substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e')
-   if newdir =~ '^scp:' || newdir =~ '^ftp:'
-"    call Decho("calling NetBrowse(newdir<".newdir.">)")
-    call s:NetBrowse(newdir)
-   else
-"    call Decho("calling LocalBrowse(newdir<".newdir.">)")
-    call s:LocalBrowse(newdir)
-   endif
-
-  elseif a:1 =~ '\*\*/' || a:indx < 0
-   " Nexplore Pexplore -or-  Explore **/...
-
-   if has("path_extra") && v:version >= 700
-    if !exists("w:netrw_explore_indx")
-     let w:netrw_explore_indx= 0
-    endif
-    let indx = a:indx
-    if indx == -1
-     let indx= w:netrw_explore_indx + 1
-    elseif indx == -2
-     let indx= w:netrw_explore_indx - 1
-    else
-     let w:netrw_explore_indx    = 0
-     if !exists("b:netrw_curdir")
-      let b:netrw_curdir= getcwd()
-     endif
-     let w:netrw_explore_list    = split(expand(b:netrw_curdir."/".a:1),'\n')
-     let w:netrw_explore_listlen = len(w:netrw_explore_list)
-     if w:netrw_explore_listlen == 1 && w:netrw_explore_list[0] =~ '\*\*\/'
-      echohl WarningMsg | echo "***netrw*** no files matched" | echohl None
-      call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-"      call Dret("Explore")
-      return
-     endif
-    endif
-
-    " NetrwStatusLine support
-    let w:netrw_explore_indx= indx
-    if !exists("s:netrw_explore_stl")
-     let s:netrw_explore_stl= &stl
-    endif
-    set stl=%f\ %h%m%r%=%{NetrwStatusLine()}
-"    call Decho("explorelist<".join(w:netrw_explore_list,',')."> len=".w:netrw_explore_listlen)
-
-    " sanity check
-    if indx >= w:netrw_explore_listlen || indx < 0
-     let indx= (indx < 0)? 0 : ( w:netrw_explore_listlen - 1 )
-     echohl WarningMsg | echo "***netrw*** no more files match Explore pattern" | echohl None
-     call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-"     call Dret("Explore")
-     return
-    endif
-
-    exe "let dirfile= w:netrw_explore_list[".indx."]"
-"    call Decho("dirfile<".dirfile."> indx=".indx)
-    let newdir= substitute(dirfile,'/[^/]*$','','e')
-"    call Decho("newdir<".newdir.">")
-"    call Decho("calling LocalBrowse(newdir<".newdir.">)")
-    call s:LocalBrowse(newdir)
-    call search(substitute(dirfile,"^.*/","",""),"W")
-    let w:netrw_explore_mtchcnt = indx + 1
-    let w:netrw_explore_bufnr   = bufnr(".")
-    let w:netrw_explore_line    = line(".")
-"    call Decho("explore: mtchcnt=".w:netrw_explore_mtchcnt." bufnr=".w:netrw_explore_bufnr." line#".w:netrw_explore_line)
-
-   else
-    if v:version < 700
-     echohl WarningMsg | echo "***netrw*** you need vim version 7.0 or later for Exploring with **!" | echohl None
-    elseif !exists("g:netrw_quiet")
-     echohl WarningMsg | echo "***netrw*** your vim needs the +path_extra feature for Exploring with **!" | echohl None | echohl None
-    endif
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-
-  else
-   let newdir= a:1
-"   call Decho("calling LocalBrowse(newdir<".newdir.">)")
-   call s:LocalBrowse(newdir)
-  endif
-
-"  call Dret("Explore")
-endfun
-
-" ---------------------------------------------------------------------
-" NetrwStatusLine: {{{2
-fun! NetrwStatusLine()
-"  let g:stlmsg= "Xbufnr=".w:netrw_explore_bufnr." bufnr=".bufnr(".")." Xline#".w:netrw_explore_line." line#".line(".")
-  if !exists("w:netrw_explore_bufnr") || w:netrw_explore_bufnr != bufnr(".") || !exists("w:netrw_explore_line") || w:netrw_explore_line != line(".") || !exists("w:netrw_explore_list")
-   let &stl= s:netrw_explore_stl
-   if exists("w:netrw_explore_bufnr")|unlet w:netrw_explore_bufnr|endif
-   if exists("w:netrw_explore_line")|unlet w:netrw_explore_line|endif
-   return ""
-  else
-   return "Match ".w:netrw_explore_mtchcnt." of ".w:netrw_explore_listlen
-  endif
-endfun
-
-" ---------------------------------------------------------------------
-" NetGetcwd: get the current directory. {{{2
-"   Change backslashes to forward slashes, if any.
-"   If doesc is true, escape certain troublesome characters
-fun! <SID>NetGetcwd(doesc)
-"  call Dfunc("NetGetcwd(doesc=".a:doesc.")")
-  let curdir= substitute(getcwd(),'\\','/','ge')
-  if curdir !~ '[\/]$'
-   let curdir= curdir.'/'
-  endif
-  if a:doesc
-   let curdir= escape(curdir,s:netrw_cd_escape)
-  endif
-"  call Dret("NetGetcwd <".curdir.">")
-  return curdir
-endfun
-
-" ---------------------------------------------------------------------
-" NetMethod:  determine method of transfer {{{1
-"  method == 1: rcp
-"	     2: ftp + <.netrc>
-"	     3: ftp + machine, id, password, and [path]filename
-"	     4: scp
-"	     5: http (wget)
-"	     6: cadaver
-"	     7: rsync
-"	     8: fetch
-"	     9: sftp
-fun! s:NetMethod(choice)  " globals: method machine id passwd fname
-"   call Dfunc("NetMethod(a:choice<".a:choice.">)")
- 
-  " initialization
-  let b:netrw_method  = 0
-  let g:netrw_machine = ""
-  let b:netrw_fname   = ""
-  let g:netrw_port    = ""
- 
-  " Patterns:
-  " mipf     : a:machine a:id password filename	     Use ftp
-  " mf	    : a:machine filename		     Use ftp + <.netrc> or g:netrw_uid g:netrw_passwd
-  " ftpurm   : ftp://[user@]host[[#:]port]/filename  Use ftp + <.netrc> or g:netrw_uid g:netrw_passwd
-  " rcpurm   : rcp://[user@]host/filename	     Use rcp
-  " rcphf    : [user@]host:filename		     Use rcp
-  " scpurm   : scp://[user@]host[[#:]port]/filename  Use scp
-  " httpurm  : http://[user@]host/filename	     Use wget
-  " davurm   : [s]dav://host[:port]/path             Use cadaver
-  " rsyncurm : rsync://host[:port]/path              Use rsync
-  " fetchurm : fetch://[user@]host[:http]/filename   Use fetch (defaults to ftp, override for http)
-  " sftpurm  : sftp://[user@]host/filename  Use scp
-  let mipf     = '^\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)$'
-  let mf       = '^\(\S\+\)\s\+\(\S\+\)$'
-  let ftpurm   = '^ftp://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
-  let rcpurm   = '^rcp://\%(\([^/@]\{-}\)@\)\=\([^/]\{-}\)/\(.*\)$'
-  let rcphf    = '^\(\(\h\w*\)@\)\=\(\h\w*\):\([^@]\+\)$'
-  let scpurm   = '^scp://\([^/]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
-  let httpurm  = '^http://\([^/]\{-}\)\(/.*\)\=$'
-  let davurm   = '^s\=dav://\([^/]\+\)/\(.*/\)\([-_.~[:alnum:]]\+\)$'
-  let rsyncurm = '^rsync://\([^/]\{-}\)/\(.*\)\=$'
-  let fetchurm = '^fetch://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\(:http\)\=/\(.*\)$'
-  let sftpurm  = '^sftp://\([^/]\{-}\)/\(.*\)\=$'
- 
-"  call Decho("determine method:")
-  " Determine Method
-  " rcp://user@hostname/...path-to-file
-  if match(a:choice,rcpurm) == 0
-"   call Decho("rcp://...")
-   let b:netrw_method  = 1
-   let userid          = substitute(a:choice,rcpurm,'\1',"")
-   let g:netrw_machine = substitute(a:choice,rcpurm,'\2',"")
-   let b:netrw_fname   = substitute(a:choice,rcpurm,'\3',"")
-   if userid != ""
-    let g:netrw_uid= userid
-   endif
- 
-  " scp://user@hostname/...path-to-file
-  elseif match(a:choice,scpurm) == 0
-"   call Decho("scp://...")
-   let b:netrw_method = 4
-   let g:netrw_machine = substitute(a:choice,scpurm,'\1',"")
-   let g:netrw_port    = substitute(a:choice,scpurm,'\2',"")
-   let b:netrw_fname   = substitute(a:choice,scpurm,'\3',"")
- 
-  " http://user@hostname/...path-to-file
-  elseif match(a:choice,httpurm) == 0
-"   call Decho("http://...")
-   let b:netrw_method = 5
-   let g:netrw_machine= substitute(a:choice,httpurm,'\1',"")
-   let b:netrw_fname  = substitute(a:choice,httpurm,'\2',"")
- 
-  " dav://hostname[:port]/..path-to-file..
-  elseif match(a:choice,davurm) == 0
-"   call Decho("dav://...")
-   let b:netrw_method= 6
-   if a:choice =~ '^s'
-    let g:netrw_machine= 'https://'.substitute(a:choice,davurm,'\1/\2',"")
-   else
-    let g:netrw_machine= 'http://'.substitute(a:choice,davurm,'\1/\2',"")
-   endif
-   let b:netrw_fname  = substitute(a:choice,davurm,'\3',"")
- 
-  " rsync://user@hostname/...path-to-file
-  elseif match(a:choice,rsyncurm) == 0
-"   call Decho("rsync://...")
-   let b:netrw_method = 7
-   let g:netrw_machine= substitute(a:choice,rsyncurm,'\1',"")
-   let b:netrw_fname  = substitute(a:choice,rsyncurm,'\2',"")
- 
-  " ftp://[user@]hostname[[:#]port]/...path-to-file
-  elseif match(a:choice,ftpurm) == 0
-"   call Decho("ftp://...")
-   let userid	     = substitute(a:choice,ftpurm,'\2',"")
-   let g:netrw_machine= substitute(a:choice,ftpurm,'\3',"")
-   let g:netrw_port   = substitute(a:choice,ftpurm,'\4',"")
-   let b:netrw_fname  = substitute(a:choice,ftpurm,'\5',"")
-   if userid != ""
-    let g:netrw_uid= userid
-   endif
-   if exists("g:netrw_uid") && exists("g:netrw_passwd")
-    let b:netrw_method = 3
-   else
-    if filereadable(expand("$HOME/.netrc")) && !exists("g:netrw_ignorenetrc")
-     let b:netrw_method= 2
-    else
-     if !exists("g:netrw_uid") || g:netrw_uid == ""
-      call NetUserPass()
-     elseif !exists("g:netrw_passwd") || g:netrw_passwd == ""
-      call NetUserPass(g:netrw_uid)
-    " else just use current g:netrw_uid and g:netrw_passwd
-     endif
-     let b:netrw_method= 3
-    endif
-   endif
- 
-  elseif match(a:choice,fetchurm) == 0
-"   call Decho("fetch://...")
-   let b:netrw_method = 8
-   let g:netrw_userid = substitute(a:choice,fetchurm,'\2',"")
-   let g:netrw_machine= substitute(a:choice,fetchurm,'\3',"")
-   let b:netrw_option = substitute(a:choice,fetchurm,'\4',"")
-   let b:netrw_fname  = substitute(a:choice,fetchurm,'\5',"")
- 
-  " Issue an ftp : "machine id password [path/]filename"
-  elseif match(a:choice,mipf) == 0
-"   call Decho("(ftp) host id pass file")
-   let b:netrw_method  = 3
-   let g:netrw_machine = substitute(a:choice,mipf,'\1',"")
-   let g:netrw_uid     = substitute(a:choice,mipf,'\2',"")
-   let g:netrw_passwd  = substitute(a:choice,mipf,'\3',"")
-   let b:netrw_fname   = substitute(a:choice,mipf,'\4',"")
- 
-  " Issue an ftp: "hostname [path/]filename"
-  elseif match(a:choice,mf) == 0
-"   call Decho("(ftp) host file")
-   if exists("g:netrw_uid") && exists("g:netrw_passwd")
-    let b:netrw_method  = 3
-    let g:netrw_machine = substitute(a:choice,mf,'\1',"")
-    let b:netrw_fname   = substitute(a:choice,mf,'\2',"")
- 
-   elseif filereadable(expand("$HOME/.netrc"))
-    let b:netrw_method  = 2
-    let g:netrw_machine = substitute(a:choice,mf,'\1',"")
-    let b:netrw_fname   = substitute(a:choice,mf,'\2',"")
-   endif
- 
-  " sftp://user@hostname/...path-to-file
-  elseif match(a:choice,sftpurm) == 0
-"   call Decho("sftp://...")
-   let b:netrw_method = 9
-   let g:netrw_machine= substitute(a:choice,sftpurm,'\1',"")
-   let b:netrw_fname  = substitute(a:choice,sftpurm,'\2',"")
- 
-  " Issue an rcp: hostname:filename"  (this one should be last)
-  elseif match(a:choice,rcphf) == 0
-"   call Decho("(rcp) [user@]host:file) rcphf<".rcphf.">")
-   let b:netrw_method = 1
-   let userid	     = substitute(a:choice,rcphf,'\2',"")
-   let g:netrw_machine= substitute(a:choice,rcphf,'\3',"")
-   let b:netrw_fname  = substitute(a:choice,rcphf,'\4',"")
-"   call Decho('\1<'.substitute(a:choice,rcphf,'\1',"").">")
-"   call Decho('\2<'.substitute(a:choice,rcphf,'\2',"").">")
-"   call Decho('\3<'.substitute(a:choice,rcphf,'\3',"").">")
-"   call Decho('\4<'.substitute(a:choice,rcphf,'\4',"").">")
-   if userid != ""
-    let g:netrw_uid= userid
-   endif
-   if has("win32") || has("win95") || has("win64") || has("win16")
-    " don't let PCs try <.netrc>
-    let b:netrw_method = 3
-   endif
- 
-  else
-   if !exists("g:netrw_quiet")
-    echohl Error | echo "***netrw*** cannot determine method" | echohl None
-    call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-   endif
-   let b:netrw_method  = -1
-  endif
-
-  " remove any leading [:#] from port number
-  if g:netrw_port != ""
-    let g:netrw_port = substitute(g:netrw_port,'[#:]\+','','')
-  endif
- 
-"  call Decho("a:choice       <".a:choice.">")
-"  call Decho("b:netrw_method <".b:netrw_method.">")
-"  call Decho("g:netrw_machine<".g:netrw_machine.">")
-"  call Decho("g:netrw_port   <".g:netrw_port.">")
-"  if exists("g:netrw_uid")		"Decho
-"   call Decho("g:netrw_uid    <".g:netrw_uid.">")
-"  endif					"Decho
-"  if exists("g:netrw_passwd")		"Decho
-"   call Decho("g:netrw_passwd <".g:netrw_passwd.">")
-"  endif					"Decho
-"  call Decho("b:netrw_fname  <".b:netrw_fname.">")
-"  call Dret("NetMethod")
-endfun
-
-" ------------------------------------------------------------------------
-" NetUserPass: set username and password for subsequent ftp transfer {{{1
-"   Usage:  :call NetUserPass()			-- will prompt for userid and password
-"	    :call NetUserPass("uid")		-- will prompt for password
-"	    :call NetUserPass("uid","password") -- sets global userid and password
-fun! NetUserPass(...)
-
- " get/set userid
- if a:0 == 0
-"  call Dfunc("NetUserPass(a:0<".a:0.">)")
-  if !exists("g:netrw_uid") || g:netrw_uid == ""
-   " via prompt
-   let g:netrw_uid= input('Enter username: ')
-  endif
- else	" from command line
-"  call Dfunc("NetUserPass(a:1<".a:1.">) {")
-  let g:netrw_uid= a:1
- endif
-
- " get password
- if a:0 <= 1 " via prompt
-"  call Decho("a:0=".a:0." case <=1:")
-  let g:netrw_passwd= inputsecret("Enter Password: ")
- else " from command line
-"  call Decho("a:0=".a:0." case >1: a:2<".a:2.">")
-  let g:netrw_passwd=a:2
- endif
-"  call Dret("NetUserPass")
-endfun
-
-" ------------------------------------------------------------------------
-" NetOptionSave: save options and set to "standard" form {{{1
-fun!s:NetOptionSave()
-"  call Dfunc("NetOptionSave()")
-
-  " Get Temporary Filename
-  let s:aikeep	= &ai
-  let s:cinkeep	= &cin
-  let s:cinokeep = &cino
-  let s:comkeep	= &com
-  let s:cpokeep	= &cpo
-  let s:dirkeep	= getcwd()
-  let s:gdkeep	= &gd
-  let s:twkeep	= &tw
-  setlocal cino =
-  setlocal com  =
-  setlocal cpo -=aA
-  setlocal nocin noai
-  setlocal tw   =0
-  if has("win32") && !has("win95")
-   let s:swfkeep= &swf
-   setlocal noswf
-"  call Decho("setting s:swfkeep to <".&swf.">")
-  endif
-
-"  call Dret("NetOptionSave")
-endfun
-
-" ------------------------------------------------------------------------
-" NetOptionRestore: restore options {{{1
-fun! s:NetOptionRestore()
-"  call Dfunc("NetOptionRestore()")
- 
-  let &ai	= s:aikeep
-  let &cin	= s:cinkeep
-  let &cino	= s:cinokeep
-  let &com	= s:comkeep
-  let &cpo	= s:cpokeep
-  exe "lcd ".s:dirkeep
-  let &gd	= s:gdkeep
-  let &tw	= s:twkeep
-  if exists("s:swfkeep")
-   if &directory == ""
-    " user hasn't specified a swapfile directory;
-    " netrw will temporarily make the swapfile
-    " directory the current local one.
-    let &directory   = getcwd()
-    silent! let &swf = s:swfkeep
-    set directory=
-   else
-    let &swf= s:swfkeep
-   endif
-   unlet s:swfkeep
-  endif
-  unlet s:aikeep
-  unlet s:cinkeep
-  unlet s:cinokeep
-  unlet s:comkeep
-  unlet s:cpokeep
-  unlet s:gdkeep
-  unlet s:twkeep
-  unlet s:dirkeep
- 
-"  call Dret("NetOptionRestore")
-endfun
-
-" ------------------------------------------------------------------------
-" NetReadFixup: this sort of function is typically written by the user {{{1
-"               to handle extra junk that their system's ftp dumps
-"               into the transfer.  This function is provided as an
-"               example and as a fix for a Windows 95 problem: in my
-"               experience, win95's ftp always dumped four blank lines
-"               at the end of the transfer.
-if has("win95") && g:netrw_win95ftp
- fun! NetReadFixup(method, line1, line2)
-"   call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
-   if method == 3   " ftp (no <.netrc>)
-    let fourblanklines= line2 - 3
-    silent fourblanklines.",".line2."g/^\s*/d"
-   endif
-"   call Dret("NetReadFixup")
- endfun
-endif
-
-" ---------------------------------------------------------------------
-" NetSort: Piet Delport's BISort2() function, modified to take a range {{{1
-if v:version < 700
- fun! <SID>NetSort() range
-" "  call Dfunc("NetSort()")
- 
-  let i = a:firstline + 1
-  while i <= a:lastline
-    " find insertion point via binary search
-    let i_val = getline(i)
-    let lo    = a:firstline
-    let hi    = i
-    while lo < hi
-     let mid     = (lo + hi) / 2
-     let mid_val = getline(mid)
-     if g:netrw_sort_direction =~ '^n'
-      " normal sorting order
-      if i_val < mid_val
-       let hi = mid
-      else
-       let lo = mid + 1
-       if i_val == mid_val | break | endif
-      endif
-     else
-      " reverse sorting order
-      if i_val > mid_val
-       let hi = mid
-      else
-       let lo = mid + 1
-       if i_val == mid_val | break | endif
-      endif
-     endif
-    endwhile
-    " do insert
-    if lo < i
-     exe 'keepjumps '.i.'d_'
-     keepjumps call append(lo - 1, i_val)
-    endif
-    let i = i + 1
-  endwhile
- 
-" "  call Dret("NetSort")
- endfun
-endif
-
-" ---------------------------------------------------------------------
-" SetSort: sets up the sort based on the g:netrw_sort_sequence {{{1
-"          What this function does is to compute a priority for the patterns
-"          in the g:netrw_sort_sequence.  It applies a substitute to any
-"          "files" that satisfy each pattern, putting the priority / in
-"          front.  An "*" pattern handles the default priority.
-fun! <SID>SetSort()
-"  call Dfunc("SetSort() bannercnt=".w:netrw_bannercnt)
-  if g:netrw_longlist
-   let seqlist  = substitute(g:netrw_sort_sequence,'\$','\\%(\t\\|\$\\)','ge')
-  else
-   let seqlist  = g:netrw_sort_sequence
-  endif
-  " sanity check -- insure that * appears somewhere
-  if seqlist == ""
-   let seqlist= '*'
-  elseif seqlist !~ '\*'
-   let seqlist= seqlist.',*'
-  endif
-  let priority = 1
-  while seqlist != ""
-   if seqlist =~ ','
-    let seq     = substitute(seqlist,',.*$','','e')
-    let seqlist = substitute(seqlist,'^.\{-},\(.*\)$','\1','e')
-   else
-    let seq     = seqlist
-    let seqlist = ""
-   endif
-   let eseq= escape(seq,'/')
-   if priority < 10
-    let spriority= "00".priority.'\/'
-   elseif priority < 100
-    let spriority= "0".priority.'\/'
-   else
-    let spriority= priority.'\/'
-   endif
-"   call Decho("priority=".priority." spriority<".spriority."> seq<".seq."> seqlist<".seqlist.">")
-
-   " sanity check
-   if w:netrw_bannercnt > line("$")
-    " apparently no files were left after a Hiding pattern was used
-"    call Dret("SetSort : no files left after hiding")
-    return
-   endif
-   if seq == '*'
-    exe 'keepjumps silent '.w:netrw_bannercnt.',$v/^\d\{3}\//s/^/'.spriority.'/'
-   else
-    exe 'keepjumps silent '.w:netrw_bannercnt.',$g/'.eseq.'/s/^/'.spriority.'/'
-   endif
-   let priority = priority + 1
-  endwhile
-
-  exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\(\d\{3}\/\)\%(\d\{3}\/\)\+/\1/e'
-
-"  call Dret("SetSort")
-endfun
-
-" ---------------------------------------------------------------------
-" SaveWinVars: (used by Explore()) {{{1
-fun! s:SaveWinVars()
-"  call Dfunc("SaveWinVars()")
-  if exists("w:netrw_bannercnt")      |let s:bannercnt       = w:netrw_bannercnt      |endif
-  if exists("w:netrw_method")         |let s:method          = w:netrw_method         |endif
-  if exists("w:netrw_prvdir")         |let s:prvdir          = w:netrw_prvdir         |endif
-  if exists("w:netrw_explore_indx")   |let s:explore_indx    = w:netrw_explore_indx   |endif
-  if exists("w:netrw_explore_listlen")|let s:explore_listlen = w:netrw_explore_listlen|endif
-  if exists("w:netrw_explore_mtchcnt")|let s:explore_mtchcnt = w:netrw_explore_mtchcnt|endif
-  if exists("w:netrw_explore_bufnr")  |let s:explore_bufnr   = w:netrw_explore_bufnr  |endif
-  if exists("w:netrw_explore_line")   |let s:explore_line    = w:netrw_explore_line   |endif
-  if exists("w:netrw_explore_list")   |let s:explore_list    = w:netrw_explore_list   |endif
-"  call Dret("SaveWinVars")
-endfun
-
-" ---------------------------------------------------------------------
-" CopyWinVars: (used by Explore()) {{{1
-fun! s:CopyWinVars()
-"  call Dfunc("CopyWinVars()")
-  if exists("s:bannercnt")      |let w:netrw_bannercnt       = s:bannercnt      |unlet s:bannercnt      |endif
-  if exists("s:method")         |let w:netrw_method          = s:method         |unlet s:method         |endif
-  if exists("s:prvdir")         |let w:netrw_prvdir          = s:prvdir         |unlet s:prvdir         |endif
-  if exists("s:explore_indx")   |let w:netrw_explore_indx    = s:explore_indx   |unlet s:explore_indx   |endif
-  if exists("s:explore_listlen")|let w:netrw_explore_listlen = s:explore_listlen|unlet s:explore_listlen|endif
-  if exists("s:explore_mtchcnt")|let w:netrw_explore_mtchcnt = s:explore_mtchcnt|unlet s:explore_mtchcnt|endif
-  if exists("s:explore_bufnr")  |let w:netrw_explore_bufnr   = s:explore_bufnr  |unlet s:explore_bufnr  |endif
-  if exists("s:explore_line")   |let w:netrw_explore_line    = s:explore_line   |unlet s:explore_line   |endif
-  if exists("s:explore_list")   |let w:netrw_explore_list    = s:explore_list   |unlet s:explore_list   |endif
-"  call Dret("CopyWinVars")
-endfun
-
-" ---------------------------------------------------------------------
-" BufWinVars: (used by NetBrowse() and LocalBrowse()) {{{1
-"   To allow separate windows to have their own activities, such as
-"   Explore **/pattern, several variables have been made window-oriented.
-"   However, when the user splits a browser window (ex: ctrl-w s), these
-"   variables are not inherited by the new window.  BufWinVars() and
-"   UseBufWinVars() get around that.
-fun! s:BufWinVars()
-"  call Dfunc("BufWinVars()")
-  if exists("w:netrw_bannercnt")      |let b:netrw_bannercnt       = w:netrw_bannercnt      |endif
-  if exists("w:netrw_method")         |let b:netrw_method          = w:netrw_method         |endif
-  if exists("w:netrw_prvdir")         |let b:netrw_prvdir          = w:netrw_prvdir         |endif
-  if exists("w:netrw_explore_indx")   |let b:netrw_explore_indx    = w:netrw_explore_indx   |endif
-  if exists("w:netrw_explore_listlen")|let b:netrw_explore_listlen = w:netrw_explore_listlen|endif
-  if exists("w:netrw_explore_mtchcnt")|let b:netrw_explore_mtchcnt = w:netrw_explore_mtchcnt|endif
-  if exists("w:netrw_explore_bufnr")  |let b:netrw_explore_bufnr   = w:netrw_explore_bufnr  |endif
-  if exists("w:netrw_explore_line")   |let b:netrw_explore_line    = w:netrw_explore_line   |endif
-  if exists("w:netrw_explore_list")   |let b:netrw_explore_list    = w:netrw_explore_list   |endif
-"  call Dret("BufWinVars")
-endfun
-
-" ---------------------------------------------------------------------
-" UseBufWinVars: (used by NetBrowse() and LocalBrowse() {{{1
-"              Matching function to BufferWinVars()
-fun! s:UseBufWinVars()
-"  call Dfunc("UseBufWinVars()")
-  if exists("b:netrw_bannercnt")       && !exists("w:netrw_bannercnt")      |let w:netrw_bannercnt       = b:netrw_bannercnt      |endif
-  if exists("b:netrw_method")          && !exists("w:netrw_method")         |let w:netrw_method          = b:netrw_method         |endif
-  if exists("b:netrw_prvdir")          && !exists("w:netrw_prvdir")         |let w:netrw_prvdir          = b:netrw_prvdir         |endif
-  if exists("b:netrw_explore_indx")    && !exists("w:netrw_explore_indx")   |let w:netrw_explore_indx    = b:netrw_explore_indx   |endif
-  if exists("b:netrw_explore_listlen") && !exists("w:netrw_explore_listlen")|let w:netrw_explore_listlen = b:netrw_explore_listlen|endif
-  if exists("b:netrw_explore_mtchcnt") && !exists("w:netrw_explore_mtchcnt")|let w:netrw_explore_mtchcnt = b:netrw_explore_mtchcnt|endif
-  if exists("b:netrw_explore_bufnr")   && !exists("w:netrw_explore_bufnr")  |let w:netrw_explore_bufnr   = b:netrw_explore_bufnr  |endif
-  if exists("b:netrw_explore_line")    && !exists("w:netrw_explore_line")   |let w:netrw_explore_line    = b:netrw_explore_line   |endif
-  if exists("b:netrw_explore_list")    && !exists("w:netrw_explore_list")   |let w:netrw_explore_list    = b:netrw_explore_list   |endif
-"  call Dret("UseBufWinVars")
-endfun
-
-let &cpo= s:keepcpo
-unlet s:keepcpo
-" ------------------------------------------------------------------------
-" Modelines: {{{1
-" vim:ts=8 fdm=marker