vim-patch:1e34b95e4402

runtime(netrw): Remove and cleanup Win9x legacy from netrw

closes: vim/vim#14732

1e34b95e44

Co-authored-by: Nir Lichtman <nir@lichtman.org>
This commit is contained in:
Christian Clason 2024-05-08 19:37:48 +02:00
parent e4e230a0cd
commit 9b1628da98
4 changed files with 91 additions and 152 deletions

View File

@ -9,6 +9,7 @@
" 2024 Feb 19 by Vim Project: (announce adoption) " 2024 Feb 19 by Vim Project: (announce adoption)
" 2024 Feb 29 by Vim Project: handle symlinks in tree mode correctly " 2024 Feb 29 by Vim Project: handle symlinks in tree mode correctly
" 2024 Apr 03 by Vim Project: detect filetypes for remote edited files " 2024 Apr 03 by Vim Project: detect filetypes for remote edited files
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
" Former Maintainer: Charles E Campbell " Former Maintainer: Charles E Campbell
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1 " Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
@ -281,7 +282,7 @@ if !exists("g:netrw_scp_cmd")
if executable("scp") if executable("scp")
call s:NetrwInit("g:netrw_scp_cmd" , "scp -q") call s:NetrwInit("g:netrw_scp_cmd" , "scp -q")
elseif executable("pscp") elseif executable("pscp")
if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable('c:\private.ppk') if has("win32") && filereadable('c:\private.ppk')
call s:NetrwInit("g:netrw_scp_cmd", 'pscp -i c:\private.ppk') call s:NetrwInit("g:netrw_scp_cmd", 'pscp -i c:\private.ppk')
else else
call s:NetrwInit("g:netrw_scp_cmd", 'pscp -q') call s:NetrwInit("g:netrw_scp_cmd", 'pscp -q')
@ -294,7 +295,7 @@ endif
call s:NetrwInit("g:netrw_sftp_cmd" , "sftp") call s:NetrwInit("g:netrw_sftp_cmd" , "sftp")
call s:NetrwInit("g:netrw_ssh_cmd" , "ssh") call s:NetrwInit("g:netrw_ssh_cmd" , "ssh")
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
\ && exists("g:netrw_use_nt_rcp") \ && exists("g:netrw_use_nt_rcp")
\ && g:netrw_use_nt_rcp \ && g:netrw_use_nt_rcp
\ && executable( $SystemRoot .'/system32/rcp.exe') \ && executable( $SystemRoot .'/system32/rcp.exe')
@ -309,12 +310,8 @@ endif
" Default values for netrw's global variables {{{2 " Default values for netrw's global variables {{{2
" Cygwin Detection ------- {{{3 " Cygwin Detection ------- {{{3
if !exists("g:netrw_cygwin") if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32unix") && &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$'
if has("win32unix") && &shell =~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$' let g:netrw_cygwin= 1
let g:netrw_cygwin= 1
else
let g:netrw_cygwin= 0
endif
else else
let g:netrw_cygwin= 0 let g:netrw_cygwin= 0
endif endif
@ -370,7 +367,7 @@ endif
call s:NetrwInit("g:netrw_keepdir",1) call s:NetrwInit("g:netrw_keepdir",1)
if !exists("g:netrw_list_cmd") if !exists("g:netrw_list_cmd")
if g:netrw_scp_cmd =~ '^pscp' && executable("pscp") if g:netrw_scp_cmd =~ '^pscp' && executable("pscp")
if (has("win32") || has("win95") || has("win64") || has("win16")) && filereadable("c:\\private.ppk") if has("win32") && filereadable("c:\\private.ppk")
" provide a pscp-based listing command " provide a pscp-based listing command
let g:netrw_scp_cmd ="pscp -i C:\\private.ppk" let g:netrw_scp_cmd ="pscp -i C:\\private.ppk"
endif endif
@ -401,7 +398,7 @@ if !exists("g:netrw_localcmdshell")
let g:netrw_localcmdshell= "" let g:netrw_localcmdshell= ""
endif endif
if !exists("g:netrw_localcopycmd") if !exists("g:netrw_localcopycmd")
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
if g:netrw_cygwin if g:netrw_cygwin
let g:netrw_localcopycmd= "cp" let g:netrw_localcopycmd= "cp"
else else
@ -415,7 +412,7 @@ if !exists("g:netrw_localcopycmd")
endif endif
endif endif
if !exists("g:netrw_localcopydircmd") if !exists("g:netrw_localcopydircmd")
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
if g:netrw_cygwin if g:netrw_cygwin
let g:netrw_localcopydircmd = "cp" let g:netrw_localcopydircmd = "cp"
let g:netrw_localcopydircmdopt= " -R" let g:netrw_localcopydircmdopt= " -R"
@ -437,7 +434,7 @@ if exists("g:netrw_local_mkdir")
let g:netrw_localmkdir= g:netrw_local_mkdir let g:netrw_localmkdir= g:netrw_local_mkdir
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_mkdir is deprecated in favor of g:netrw_localmkdir",87) call netrw#ErrorMsg(s:NOTE,"g:netrw_local_mkdir is deprecated in favor of g:netrw_localmkdir",87)
endif endif
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
if g:netrw_cygwin if g:netrw_cygwin
call s:NetrwInit("g:netrw_localmkdir","mkdir") call s:NetrwInit("g:netrw_localmkdir","mkdir")
else else
@ -453,7 +450,7 @@ if exists("g:netrw_local_movecmd")
call netrw#ErrorMsg(s:NOTE,"g:netrw_local_movecmd is deprecated in favor of g:netrw_localmovecmd",88) call netrw#ErrorMsg(s:NOTE,"g:netrw_local_movecmd is deprecated in favor of g:netrw_localmovecmd",88)
endif endif
if !exists("g:netrw_localmovecmd") if !exists("g:netrw_localmovecmd")
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
if g:netrw_cygwin if g:netrw_cygwin
let g:netrw_localmovecmd= "mv" let g:netrw_localmovecmd= "mv"
else else
@ -486,7 +483,7 @@ call s:NetrwInit("g:netrw_mousemaps" , (exists("+mouse") && &mouse =~# '[anh
call s:NetrwInit("g:netrw_retmap" , 0) call s:NetrwInit("g:netrw_retmap" , 0)
if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin) if has("unix") || (exists("g:netrw_cygwin") && g:netrw_cygwin)
call s:NetrwInit("g:netrw_chgperm" , "chmod PERM FILENAME") call s:NetrwInit("g:netrw_chgperm" , "chmod PERM FILENAME")
elseif has("win32") || has("win95") || has("win64") || has("win16") elseif has("win32")
call s:NetrwInit("g:netrw_chgperm" , "cacls FILENAME /e /p PERM") call s:NetrwInit("g:netrw_chgperm" , "cacls FILENAME /e /p PERM")
else else
call s:NetrwInit("g:netrw_chgperm" , "chmod PERM FILENAME") call s:NetrwInit("g:netrw_chgperm" , "chmod PERM FILENAME")
@ -545,14 +542,13 @@ if !exists("g:netrw_xstrlen")
endif endif
endif endif
call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.") call s:NetrwInit("g:NetrwTopLvlMenu","Netrw.")
call s:NetrwInit("g:netrw_win95ftp",1)
call s:NetrwInit("g:netrw_winsize",50) call s:NetrwInit("g:netrw_winsize",50)
call s:NetrwInit("g:netrw_wiw",1) call s:NetrwInit("g:netrw_wiw",1)
if g:netrw_winsize > 100|let g:netrw_winsize= 100|endif if g:netrw_winsize > 100|let g:netrw_winsize= 100|endif
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" Default values for netrw's script variables: {{{2 " Default values for netrw's script variables: {{{2
call s:NetrwInit("g:netrw_fname_escape",' ?&;%') call s:NetrwInit("g:netrw_fname_escape",' ?&;%')
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
call s:NetrwInit("g:netrw_glob_escape",'*?`{[]$') call s:NetrwInit("g:netrw_glob_escape",'*?`{[]$')
else else
call s:NetrwInit("g:netrw_glob_escape",'*[]?`{~$\') call s:NetrwInit("g:netrw_glob_escape",'*[]?`{~$\')
@ -684,7 +680,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" record current directory " record current directory
let curdir = simplify(b:netrw_curdir) let curdir = simplify(b:netrw_curdir)
let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e') let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e')
if !exists("g:netrw_cygwin") && (has("win32") || has("win95") || has("win64") || has("win16")) if !exists("g:netrw_cygwin") && has("win32")
let curdir= substitute(curdir,'\','/','g') let curdir= substitute(curdir,'\','/','g')
endif endif
" call Decho("curdir<".curdir."> curfiledir<".curfiledir.">",'~'.expand("<slnum>")) " call Decho("curdir<".curdir."> curfiledir<".curfiledir.">",'~'.expand("<slnum>"))
@ -837,7 +833,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" handle .../**/.../filepat " handle .../**/.../filepat
" call Decho("case starpat=4: Explore .../**/.../filepat",'~'.expand("<slnum>")) " call Decho("case starpat=4: Explore .../**/.../filepat",'~'.expand("<slnum>"))
let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','') let prefixdir= substitute(dirname,'^\(.\{-}\)\*\*.*$','\1','')
if prefixdir =~ '^/' || (prefixdir =~ '^\a:/' && (has("win32") || has("win95") || has("win64") || has("win16"))) if prefixdir =~ '^/' || (prefixdir =~ '^\a:/' && has("win32"))
let b:netrw_curdir = prefixdir let b:netrw_curdir = prefixdir
else else
let b:netrw_curdir= getcwd().'/'.prefixdir let b:netrw_curdir= getcwd().'/'.prefixdir
@ -874,7 +870,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
else else
if dirname == "" if dirname == ""
let dirname= getcwd() let dirname= getcwd()
elseif (has("win32") || has("win95") || has("win64") || has("win16")) && !g:netrw_cygwin elseif has("win32") && !g:netrw_cygwin
" Windows : check for a drive specifier, or else for a remote share name ('\\Foo' or '//Foo', " Windows : check for a drive specifier, or else for a remote share name ('\\Foo' or '//Foo',
" depending on whether backslashes have been converted to forward slashes by earlier code). " depending on whether backslashes have been converted to forward slashes by earlier code).
if dirname !~ '^[a-zA-Z]:' && dirname !~ '^\\\\\w\+' && dirname !~ '^//\w\+' if dirname !~ '^[a-zA-Z]:' && dirname !~ '^\\\\\w\+' && dirname !~ '^//\w\+'
@ -1383,7 +1379,7 @@ fun! netrw#Obtain(islocal,fname,...)
" call Decho("obtain a file from local ".b:netrw_curdir." to ".tgtdir,'~'.expand("<slnum>")) " call Decho("obtain a file from local ".b:netrw_curdir." to ".tgtdir,'~'.expand("<slnum>"))
if exists("b:netrw_curdir") && getcwd() != b:netrw_curdir if exists("b:netrw_curdir") && getcwd() != b:netrw_curdir
let topath= s:ComposePath(tgtdir,"") let topath= s:ComposePath(tgtdir,"")
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
" transfer files one at time " transfer files one at time
" call Decho("transfer files one at a time",'~'.expand("<slnum>")) " call Decho("transfer files one at a time",'~'.expand("<slnum>"))
for fname in fnamelist for fname in fnamelist
@ -2254,7 +2250,7 @@ fun! netrw#NetRead(mode,...)
endif endif
" 'C' in 'C:\path\to\file' is handled as hostname on windows. " 'C' in 'C:\path\to\file' is handled as hostname on windows.
" This is workaround to avoid mis-handle windows local-path: " This is workaround to avoid mis-handle windows local-path:
if g:netrw_scp_cmd =~ '^scp' && (has("win32") || has("win95") || has("win64") || has("win16")) if g:netrw_scp_cmd =~ '^scp' && has("win32")
let tmpfile_get = substitute(tr(tmpfile, '\', '/'), '^\(\a\):[/\\]\(.*\)$', '/\1/\2', '') let tmpfile_get = substitute(tr(tmpfile, '\', '/'), '^\(\a\):[/\\]\(.*\)$', '/\1/\2', '')
else else
let tmpfile_get = tmpfile let tmpfile_get = tmpfile
@ -3174,7 +3170,7 @@ fun! s:NetrwMethod(choice)
if exists("s:netrw_hup[host]") if exists("s:netrw_hup[host]")
call NetUserPass("ftp:".host) call NetUserPass("ftp:".host)
elseif (has("win32") || has("win95") || has("win64") || has("win16")) && s:netrw_ftp_cmd =~# '-[sS]:' elseif has("win32") && s:netrw_ftp_cmd =~# '-[sS]:'
" call Decho("has -s: : s:netrw_ftp_cmd<".s:netrw_ftp_cmd.">",'~'.expand("<slnum>")) " call Decho("has -s: : s:netrw_ftp_cmd<".s:netrw_ftp_cmd.">",'~'.expand("<slnum>"))
" call Decho(" g:netrw_ftp_cmd<".g:netrw_ftp_cmd.">",'~'.expand("<slnum>")) " call Decho(" g:netrw_ftp_cmd<".g:netrw_ftp_cmd.">",'~'.expand("<slnum>"))
if g:netrw_ftp_cmd =~# '-[sS]:\S*MACHINE\>' if g:netrw_ftp_cmd =~# '-[sS]:\S*MACHINE\>'
@ -3289,38 +3285,6 @@ fun! s:NetrwMethod(choice)
" call Dret("s:NetrwMethod : b:netrw_method=".b:netrw_method." g:netrw_port=".g:netrw_port) " call Dret("s:NetrwMethod : b:netrw_method=".b:netrw_method." g:netrw_port=".g:netrw_port)
endfun endfun
" ------------------------------------------------------------------------
" NetReadFixup: this sort of function is typically written by the user {{{2
" 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") && exists("g:netrw_win95ftp") && g:netrw_win95ftp
fun! NetReadFixup(method, line1, line2)
" call Dfunc("NetReadFixup(method<".a:method."> line1=".a:line1." line2=".a:line2.")")
" sanity checks -- attempt to convert inputs to integers
let method = a:method + 0
let line1 = a:line1 + 0
let line2 = a:line2 + 0
if type(method) != 0 || type(line1) != 0 || type(line2) != 0 || method < 0 || line1 <= 0 || line2 <= 0
" call Dret("NetReadFixup")
return
endif
if method == 3 " ftp (no <.netrc>)
let fourblanklines= line2 - 3
if fourblanklines >= line1
exe "sil NetrwKeepj ".fourblanklines.",".line2."g/^\s*$/d"
call histdel("/",-1)
endif
endif
" call Dret("NetReadFixup")
endfun
endif
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" NetUserPass: set username and password for subsequent ftp transfer {{{2 " NetUserPass: set username and password for subsequent ftp transfer {{{2
" Usage: :call NetUserPass() -- will prompt for userid and password " Usage: :call NetUserPass() -- will prompt for userid and password
@ -3943,7 +3907,7 @@ fun! s:NetrwBrowse(islocal,dirname)
if b:netrw_curdir =~ '[/\\]$' if b:netrw_curdir =~ '[/\\]$'
let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e') let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
endif endif
if b:netrw_curdir =~ '\a:$' && (has("win32") || has("win95") || has("win64") || has("win16")) if b:netrw_curdir =~ '\a:$' && has("win32")
let b:netrw_curdir= b:netrw_curdir."/" let b:netrw_curdir= b:netrw_curdir."/"
endif endif
if b:netrw_curdir == '' if b:netrw_curdir == ''
@ -4097,7 +4061,7 @@ fun! s:NetrwFile(fname)
let b:netrw_curdir= getcwd() let b:netrw_curdir= getcwd()
endif endif
if !exists("g:netrw_cygwin") && (has("win32") || has("win95") || has("win64") || has("win16")) if !exists("g:netrw_cygwin") && has("win32")
if fname =~ '^\' || fname =~ '^\a:\' if fname =~ '^\' || fname =~ '^\a:\'
" windows, but full path given " windows, but full path given
let ret= fname let ret= fname
@ -4817,7 +4781,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
call s:SavePosn(s:netrw_posn) call s:SavePosn(s:netrw_posn)
NetrwKeepj call s:NetrwOptionsSave("s:") NetrwKeepj call s:NetrwOptionsSave("s:")
NetrwKeepj call s:NetrwOptionsSafe(a:islocal) NetrwKeepj call s:NetrwOptionsSafe(a:islocal)
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
let dirname = substitute(b:netrw_curdir,'\\','/','ge') let dirname = substitute(b:netrw_curdir,'\\','/','ge')
else else
let dirname = b:netrw_curdir let dirname = b:netrw_curdir
@ -5064,7 +5028,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
endif endif
" call Decho("go-up: amiga: dirname<".dirname."> (go up one dir)",'~'.expand("<slnum>")) " call Decho("go-up: amiga: dirname<".dirname."> (go up one dir)",'~'.expand("<slnum>"))
elseif !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) elseif !g:netrw_cygwin && has("win32")
" windows " windows
if a:islocal if a:islocal
let dirname= substitute(dirname,'^\(.*\)/\([^/]\+\)/$','\1','') let dirname= substitute(dirname,'^\(.*\)/\([^/]\+\)/$','\1','')
@ -5349,7 +5313,7 @@ fun! netrw#BrowseX(fname,remote)
" set up the filename " set up the filename
" (lower case the extension, make a local copy of a remote file) " (lower case the extension, make a local copy of a remote file)
let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e') let exten= substitute(a:fname,'.*\.\(.\{-}\)','\1','e')
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
let exten= substitute(exten,'^.*$','\L&\E','') let exten= substitute(exten,'^.*$','\L&\E','')
endif endif
if exten =~ "[\\/]" if exten =~ "[\\/]"
@ -5396,12 +5360,12 @@ fun! netrw#BrowseX(fname,remote)
" by default, g:netrw_suppress_gx_mesg is true " by default, g:netrw_suppress_gx_mesg is true
if g:netrw_suppress_gx_mesg if g:netrw_suppress_gx_mesg
if &srr =~ "%s" if &srr =~ "%s"
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
let redir= substitute(&srr,"%s","nul","") let redir= substitute(&srr,"%s","nul","")
else else
let redir= substitute(&srr,"%s","/dev/null","") let redir= substitute(&srr,"%s","/dev/null","")
endif endif
elseif (has("win32") || has("win95") || has("win64") || has("win16")) elseif has("win32")
let redir= &srr . "nul" let redir= &srr . "nul"
else else
let redir= &srr . "/dev/null" let redir= &srr . "/dev/null"
@ -5444,7 +5408,7 @@ fun! netrw#BrowseX(fname,remote)
call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir) call s:NetrwExe("sil !".viewer." ".viewopt.s:ShellEscape(fname,1).redir)
let ret= v:shell_error let ret= v:shell_error
elseif has("win32") || has("win64") elseif has("win32")
" call Decho("(netrw#BrowseX) win".(has("win32")? "32" : "64"),'~'.expand("<slnum>")) " call Decho("(netrw#BrowseX) win".(has("win32")? "32" : "64"),'~'.expand("<slnum>"))
if executable("start") if executable("start")
call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1)) call s:NetrwExe('sil! !start rundll32 url.dll,FileProtocolHandler '.s:ShellEscape(fname,1))
@ -7167,7 +7131,7 @@ fun! s:NetrwMarkFileCopy(islocal,...)
let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"s:ShellEscape(b:netrw_curdir.\"/\".v:val)")) let args= join(map(deepcopy(s:netrwmarkfilelist_{bufnr('%')}),"s:ShellEscape(b:netrw_curdir.\"/\".v:val)"))
let tgt = s:ShellEscape(s:netrwmftgt) let tgt = s:ShellEscape(s:netrwmftgt)
endif endif
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) if !g:netrw_cygwin && has("win32")
let args= substitute(args,'/','\\','g') let args= substitute(args,'/','\\','g')
let tgt = substitute(tgt, '/','\\','g') let tgt = substitute(tgt, '/','\\','g')
endif endif
@ -7181,7 +7145,7 @@ fun! s:NetrwMarkFileCopy(islocal,...)
" call Decho("args<".args."> is a directory",'~'.expand("<slnum>")) " call Decho("args<".args."> is a directory",'~'.expand("<slnum>"))
let copycmd= g:netrw_localcopydircmd let copycmd= g:netrw_localcopydircmd
" call Decho("using copydircmd<".copycmd.">",'~'.expand("<slnum>")) " call Decho("using copydircmd<".copycmd.">",'~'.expand("<slnum>"))
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) if !g:netrw_cygwin && has("win32")
" window's xcopy doesn't copy a directory to a target properly. Instead, it copies a directory's " window's xcopy doesn't copy a directory to a target properly. Instead, it copies a directory's
" contents to a target. One must append the source directory name to the target to get xcopy to " contents to a target. One must append the source directory name to the target to get xcopy to
" do the right thing. " do the right thing.
@ -7799,7 +7763,7 @@ fun! s:NetrwMarkFileMove(islocal)
endif endif
let tgt = s:ShellEscape(s:netrwmftgt) let tgt = s:ShellEscape(s:netrwmftgt)
" call Decho("tgt<".tgt.">",'~'.expand("<slnum>")) " call Decho("tgt<".tgt.">",'~'.expand("<slnum>"))
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) if !g:netrw_cygwin && has("win32")
let tgt= substitute(tgt, '/','\\','g') let tgt= substitute(tgt, '/','\\','g')
" call Decho("windows exception: tgt<".tgt.">",'~'.expand("<slnum>")) " call Decho("windows exception: tgt<".tgt.">",'~'.expand("<slnum>"))
if g:netrw_localmovecmd =~ '\s' if g:netrw_localmovecmd =~ '\s'
@ -7820,7 +7784,7 @@ fun! s:NetrwMarkFileMove(islocal)
" Jul 19, 2022: fixing file move when g:netrw_keepdir is 1 " Jul 19, 2022: fixing file move when g:netrw_keepdir is 1
let fname= b:netrw_curdir."/".fname let fname= b:netrw_curdir."/".fname
endif endif
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) if !g:netrw_cygwin && has("win32")
let fname= substitute(fname,'/','\\','g') let fname= substitute(fname,'/','\\','g')
endif endif
" call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("<slnum>")) " call Decho("system(".movecmd." ".s:ShellEscape(fname)." ".tgt.")",'~'.expand("<slnum>"))
@ -10239,7 +10203,7 @@ fun! s:NetrwRemoteFtpCmd(path,listcmd)
endif endif
" cleanup for Windows " {{{3 " cleanup for Windows " {{{3
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
sil! NetrwKeepj %s/\r$//e sil! NetrwKeepj %s/\r$//e
NetrwKeepj call histdel("/",-1) NetrwKeepj call histdel("/",-1)
endif endif
@ -10747,7 +10711,7 @@ fun! netrw#FileUrlEdit(fname)
let fname= substitute(fname,'^file://localhost/','file:///','') let fname= substitute(fname,'^file://localhost/','file:///','')
" call Decho("fname<".fname.">",'~'.expand("<slnum>")) " call Decho("fname<".fname.">",'~'.expand("<slnum>"))
endif endif
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
if fname =~ '^file:///\=\a[|:]/' if fname =~ '^file:///\=\a[|:]/'
" call Decho('converting file:///\a|/ -to- file://\a:/','~'.expand("<slnum>")) " call Decho('converting file:///\a|/ -to- file://\a:/','~'.expand("<slnum>"))
let fname = substitute(fname,'^file:///\=\(\a\)[|:]/','file://\1:/','') let fname = substitute(fname,'^file:///\=\(\a\)[|:]/','file://\1:/','')
@ -10757,7 +10721,7 @@ fun! netrw#FileUrlEdit(fname)
let fname2396 = netrw#RFC2396(fname) let fname2396 = netrw#RFC2396(fname)
let fname2396e= fnameescape(fname2396) let fname2396e= fnameescape(fname2396)
let plainfname= substitute(fname2396,'file://\(.*\)','\1',"") let plainfname= substitute(fname2396,'file://\(.*\)','\1',"")
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
" call Decho("windows exception for plainfname",'~'.expand("<slnum>")) " call Decho("windows exception for plainfname",'~'.expand("<slnum>"))
if plainfname =~ '^/\+\a:' if plainfname =~ '^/\+\a:'
" call Decho('removing leading "/"s','~'.expand("<slnum>")) " call Decho('removing leading "/"s','~'.expand("<slnum>"))
@ -10969,7 +10933,7 @@ fun! s:LocalFastBrowser()
let s:netrw_events= 1 let s:netrw_events= 1
augroup AuNetrwEvent augroup AuNetrwEvent
au! au!
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
" call Decho("installing autocmd: ShellCmdPost",'~'.expand("<slnum>")) " call Decho("installing autocmd: ShellCmdPost",'~'.expand("<slnum>"))
au ShellCmdPost * call s:LocalBrowseRefresh() au ShellCmdPost * call s:LocalBrowseRefresh()
else else
@ -11011,7 +10975,7 @@ fun! s:LocalListing()
let filelist = filelist + s:NetrwGlob(dirname,".*",0) let filelist = filelist + s:NetrwGlob(dirname,".*",0)
" call Decho("filelist=".string(filelist),'~'.expand("<slnum>")) " call Decho("filelist=".string(filelist),'~'.expand("<slnum>"))
if g:netrw_cygwin == 0 && (has("win32") || has("win95") || has("win64") || has("win16")) if g:netrw_cygwin == 0 && has("win32")
" call Decho("filelist=".string(filelist),'~'.expand("<slnum>")) " call Decho("filelist=".string(filelist),'~'.expand("<slnum>"))
elseif index(filelist,'..') == -1 && b:netrw_curdir !~ '/' elseif index(filelist,'..') == -1 && b:netrw_curdir !~ '/'
" include ../ in the glob() entry if its missing " include ../ in the glob() entry if its missing
@ -11057,7 +11021,7 @@ fun! s:LocalListing()
let pfile= filename."/" let pfile= filename."/"
elseif exists("b:netrw_curdir") && b:netrw_curdir !~ '^.*://' && !isdirectory(s:NetrwFile(filename)) elseif exists("b:netrw_curdir") && b:netrw_curdir !~ '^.*://' && !isdirectory(s:NetrwFile(filename))
if (has("win32") || has("win95") || has("win64") || has("win16")) if has("win32")
if filename =~ '\.[eE][xX][eE]$' || filename =~ '\.[cC][oO][mM]$' || filename =~ '\.[bB][aA][tT]$' if filename =~ '\.[eE][xX][eE]$' || filename =~ '\.[cC][oO][mM]$' || filename =~ '\.[bB][aA][tT]$'
" indicate an executable " indicate an executable
" call Decho("indicate <".filename."> is executable with trailing *",'~'.expand("<slnum>")) " call Decho("indicate <".filename."> is executable with trailing *",'~'.expand("<slnum>"))
@ -11534,7 +11498,7 @@ endfun
" netrw#WinPath: tries to insure that the path is windows-acceptable, whether cygwin is used or not {{{2 " netrw#WinPath: tries to insure that the path is windows-acceptable, whether cygwin is used or not {{{2
fun! netrw#WinPath(path) fun! netrw#WinPath(path)
" call Dfunc("netrw#WinPath(path<".a:path.">)") " call Dfunc("netrw#WinPath(path<".a:path.">)")
if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && (has("win32") || has("win95") || has("win64") || has("win16")) if (!g:netrw_cygwin || &shell !~ '\%(\<bash\>\|\<zsh\>\)\%(\.exe\)\=$') && has("win32")
" remove cygdrive prefix, if present " remove cygdrive prefix, if present
let path = substitute(a:path,g:netrw_cygdrive.'/\(.\)','\1:','') let path = substitute(a:path,g:netrw_cygdrive.'/\(.\)','\1:','')
" remove trailing slash (Win95) " remove trailing slash (Win95)
@ -11594,11 +11558,11 @@ fun! s:ComposePath(base,subdir)
endif endif
" COMBAK: test on windows with changing to root directory: :e C:/ " COMBAK: test on windows with changing to root directory: :e C:/
elseif a:subdir =~ '^\a:[/\\]\([^/\\]\|$\)' && (has("win32") || has("win95") || has("win64") || has("win16")) elseif a:subdir =~ '^\a:[/\\]\([^/\\]\|$\)' && has("win32")
" call Decho("windows",'~'.expand("<slnum>")) " call Decho("windows",'~'.expand("<slnum>"))
let ret= a:subdir let ret= a:subdir
elseif a:base =~ '^\a:[/\\]\([^/\\]\|$\)' && (has("win32") || has("win95") || has("win64") || has("win16")) elseif a:base =~ '^\a:[/\\]\([^/\\]\|$\)' && has("win32")
" call Decho("windows",'~'.expand("<slnum>")) " call Decho("windows",'~'.expand("<slnum>"))
if a:base =~ '[/\\]$' if a:base =~ '[/\\]$'
let ret= a:base.a:subdir let ret= a:base.a:subdir
@ -11710,7 +11674,7 @@ fun! s:GetTempfile(fname)
" o/s dependencies " o/s dependencies
if g:netrw_cygwin != 0 if g:netrw_cygwin != 0
let tmpfile = substitute(tmpfile,'^\(\a\):',g:netrw_cygdrive.'/\1','e') let tmpfile = substitute(tmpfile,'^\(\a\):',g:netrw_cygdrive.'/\1','e')
elseif has("win32") || has("win95") || has("win64") || has("win16") elseif has("win32")
if !exists("+shellslash") || !&ssl if !exists("+shellslash") || !&ssl
let tmpfile = substitute(tmpfile,'/','\','g') let tmpfile = substitute(tmpfile,'/','\','g')
endif endif
@ -11926,7 +11890,7 @@ fun! s:NetrwDelete(path)
" call Dfunc("s:NetrwDelete(path<".a:path.">)") " call Dfunc("s:NetrwDelete(path<".a:path.">)")
let path = netrw#WinPath(a:path) let path = netrw#WinPath(a:path)
if !g:netrw_cygwin && (has("win32") || has("win95") || has("win64") || has("win16")) if !g:netrw_cygwin && has("win32")
if exists("+shellslash") if exists("+shellslash")
let sskeep= &shellslash let sskeep= &shellslash
setl noshellslash setl noshellslash
@ -12117,7 +12081,7 @@ fun! s:NetrwLcd(newdir)
" 'root' (ie. '\'). The share name may start with either backslashes ('\\Foo') or " 'root' (ie. '\'). The share name may start with either backslashes ('\\Foo') or
" forward slashes ('//Foo'), depending on whether backslashes have been converted to " forward slashes ('//Foo'), depending on whether backslashes have been converted to
" forward slashes by earlier code; so check for both. " forward slashes by earlier code; so check for both.
if (has("win32") || has("win95") || has("win64") || has("win16")) && !g:netrw_cygwin if has("win32") && !g:netrw_cygwin
if a:newdir =~ '^\\\\\w\+' || a:newdir =~ '^//\w\+' if a:newdir =~ '^\\\\\w\+' || a:newdir =~ '^//\w\+'
let dirname = '\' let dirname = '\'
exe 'NetrwKeepj sil lcd '.fnameescape(dirname) exe 'NetrwKeepj sil lcd '.fnameescape(dirname)
@ -12590,7 +12554,7 @@ endfun
" --------------------------------------------------------------------- " ---------------------------------------------------------------------
" s:ShellEscape: shellescape(), or special windows handling {{{2 " s:ShellEscape: shellescape(), or special windows handling {{{2
fun! s:ShellEscape(s, ...) fun! s:ShellEscape(s, ...)
if (has('win32') || has('win64')) && $SHELL == '' && &shellslash if has('win32') && $SHELL == '' && &shellslash
return printf('"%s"', substitute(a:s, '"', '""', 'g')) return printf('"%s"', substitute(a:s, '"', '""', 'g'))
endif endif
let f = a:0 > 0 ? a:1 : 0 let f = a:0 > 0 ? a:1 : 0

View File

@ -3,6 +3,8 @@
" Maintainer: This runtime file is looking for a new maintainer. " Maintainer: This runtime file is looking for a new maintainer.
" Former Maintainer: Charles E Campbell " Former Maintainer: Charles E Campbell
" Version: 18 " Version: 18
" Last Change:
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
" Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1 " Copyright: Copyright (C) 1999-2007 Charles E. Campbell {{{1
" Permission is hereby granted to use and distribute this code, " Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright " with or without modifications, provided that this copyright
@ -91,7 +93,6 @@ fun! netrwSettings#NetrwSettings()
put = 'let g:netrw_sshport = '.g:netrw_sshport put = 'let g:netrw_sshport = '.g:netrw_sshport
put = 'let g:netrw_silent = '.g:netrw_silent put = 'let g:netrw_silent = '.g:netrw_silent
put = 'let g:netrw_use_nt_rcp = '.g:netrw_use_nt_rcp 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(".") let s:netrw_xfer_stop= line(".")
put ='' put =''
put ='+ Netrw Messages' put ='+ Netrw Messages'

View File

@ -446,10 +446,6 @@ settings are described below, in |netrw-browser-options|, and in
messages don't always seem to show up this messages don't always seem to show up this
way, but one doesn't have to quit the window. way, but one doesn't have to quit the window.
*g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank
lines that o/s's ftp "provides" on transfers
=0 force normal ftp behavior (no trailing line removal)
*g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
permits network browsing to use ls with time and permits network browsing to use ls with time and
size sorting (default if windows) size sorting (default if windows)
@ -825,8 +821,6 @@ set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
g:netrw_uid Holds current user-id for ftp. g:netrw_uid Holds current user-id for ftp.
g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default) g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
=1 use WinNT/2K/XP's rcp, binary mode =1 use WinNT/2K/XP's rcp, binary mode
g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc
=1 use default method to do ftp >
----------------------------------------------------------------------- -----------------------------------------------------------------------
< <
*netrw-internal-variables* *netrw-internal-variables*
@ -955,21 +949,8 @@ messages) you may write a NetReadFixup() function:
endfunction endfunction
> >
The NetReadFixup() function will be called if it exists and thus allows you to The NetReadFixup() function will be called if it exists and thus allows you to
customize your reading process. As a further example, <netrw.vim> contains customize your reading process.
just such a function to handle Windows 95 ftp. For whatever reason, Windows
95's ftp dumps four blank lines at the end of a transfer, and so it is
desirable to automate their removal. Here's some code taken from <netrw.vim>
itself:
>
if has("win95") && g:netrw_win95ftp
fun! NetReadFixup(method, line1, line2)
if method == 3 " ftp (no <.netrc>)
let fourblanklines= line2 - 3
silent fourblanklines .. "," .. line2 .. "g/^\s*/d"
endif
endfunction
endif
>
(Related topics: |ftp| |netrw-userpass| |netrw-start|) (Related topics: |ftp| |netrw-userpass| |netrw-start|)
============================================================================== ==============================================================================
@ -3397,16 +3378,7 @@ Example: Clear netrw's marked file list via a mapping on gu >
(This section is likely to grow as I get feedback) (This section is likely to grow as I get feedback)
(also see |netrw-debug|) (also see |netrw-debug|)
*netrw-p1* *netrw-p1*
P1. I use windows 95, and my ftp dumps four blank lines at the {{{2 P1. I use Windows, and my network browsing with ftp doesn't sort by {{{2
end of every read.
See |netrw-fixup|, and put the following into your
<.vimrc> file:
let g:netrw_win95ftp= 1
*netrw-p2*
P2. I use Windows, and my network browsing with ftp doesn't sort by {{{2
time or size! -or- The remote system is a Windows server; why time or size! -or- The remote system is a Windows server; why
don't I get sorts by time or size? don't I get sorts by time or size?
@ -3432,8 +3404,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
modify its listing behavior. modify its listing behavior.
*netrw-p3* *netrw-p2*
P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2 P2. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2
used ssh! That wasn't what I asked for... used ssh! That wasn't what I asked for...
Netrw has two methods for browsing remote directories: ssh Netrw has two methods for browsing remote directories: ssh
@ -3441,8 +3413,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
When it comes time to do download a file (not just a directory When it comes time to do download a file (not just a directory
listing), netrw will use the given protocol to do so. listing), netrw will use the given protocol to do so.
*netrw-p4* *netrw-p3*
P4. I would like long listings to be the default. {{{2 P3. I would like long listings to be the default. {{{2
Put the following statement into your |vimrc|: > Put the following statement into your |vimrc|: >
@ -3451,8 +3423,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
Check out |netrw-browser-var| for more customizations that Check out |netrw-browser-var| for more customizations that
you can set. you can set.
*netrw-p5* *netrw-p4*
P5. My times come up oddly in local browsing {{{2 P4. My times come up oddly in local browsing {{{2
Does your system's strftime() accept the "%c" to yield dates Does your system's strftime() accept the "%c" to yield dates
such as "Sun Apr 27 11:49:23 1997"? If not, do a such as "Sun Apr 27 11:49:23 1997"? If not, do a
@ -3461,16 +3433,16 @@ Example: Clear netrw's marked file list via a mapping on gu >
let g:netrw_timefmt= "%X" (where X is the option) let g:netrw_timefmt= "%X" (where X is the option)
< <
*netrw-p6* *netrw-p5*
P6. I want my current directory to track my browsing. {{{2 P5. I want my current directory to track my browsing. {{{2
How do I do that? How do I do that?
Put the following line in your |vimrc|: Put the following line in your |vimrc|:
> >
let g:netrw_keepdir= 0 let g:netrw_keepdir= 0
< <
*netrw-p7* *netrw-p6*
P7. I use Chinese (or other non-ascii) characters in my filenames, {{{2 P6. I use Chinese (or other non-ascii) characters in my filenames, {{{2
and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them! and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
(taken from an answer provided by Wu Yongwei on the vim (taken from an answer provided by Wu Yongwei on the vim
@ -3484,8 +3456,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
(...it is one more reason to recommend that people use utf-8!) (...it is one more reason to recommend that people use utf-8!)
*netrw-p8* *netrw-p7*
P8. I'm getting "ssh is not executable on your system" -- what do I {{{2 P7. I'm getting "ssh is not executable on your system" -- what do I {{{2
do? do?
(Dudley Fox) Most people I know use putty for windows ssh. It (Dudley Fox) Most people I know use putty for windows ssh. It
@ -3567,8 +3539,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
of the others will use the string in g:netrw_ssh_cmd by of the others will use the string in g:netrw_ssh_cmd by
default. default.
*netrw-p9* *netrw-ml_get* *netrw-p8* *netrw-ml_get*
P9. I'm browsing, changing directory, and bang! ml_get errors {{{2 P8. I'm browsing, changing directory, and bang! ml_get errors {{{2
appear and I have to kill vim. Any way around this? appear and I have to kill vim. Any way around this?
Normally netrw attempts to avoid writing swapfiles for Normally netrw attempts to avoid writing swapfiles for
@ -3578,8 +3550,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
in your <.vimrc>: > in your <.vimrc>: >
let g:netrw_use_noswf= 0 let g:netrw_use_noswf= 0
< <
*netrw-p10* *netrw-p9*
P10. I'm being pestered with "[something] is a directory" and {{{2 P9. I'm being pestered with "[something] is a directory" and {{{2
"Press ENTER or type command to continue" prompts... "Press ENTER or type command to continue" prompts...
The "[something] is a directory" prompt is issued by Vim, The "[something] is a directory" prompt is issued by Vim,
@ -3589,8 +3561,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
I also suggest that you set your |'cmdheight'| to 2 (or more) in I also suggest that you set your |'cmdheight'| to 2 (or more) in
your <.vimrc> file. your <.vimrc> file.
*netrw-p11* *netrw-p10*
P11. I want to have two windows; a thin one on the left and my {{{2 P10. I want to have two windows; a thin one on the left and my {{{2
editing window on the right. How may I accomplish this? editing window on the right. How may I accomplish this?
You probably want netrw running as in a side window. If so, you You probably want netrw running as in a side window. If so, you
@ -3615,8 +3587,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
<middlemouse> to select the file. <middlemouse> to select the file.
*netrw-p12* *netrw-p11*
P12. My directory isn't sorting correctly, or unwanted letters are {{{2 P11. My directory isn't sorting correctly, or unwanted letters are {{{2
appearing in the listed filenames, or things aren't lining appearing in the listed filenames, or things aren't lining
up properly in the wide listing, ... up properly in the wide listing, ...
@ -3625,8 +3597,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
Multibyte encodings use two (or more) bytes per character. Multibyte encodings use two (or more) bytes per character.
You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|. You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
*netrw-p13* *netrw-p12*
P13. I'm a Windows + putty + ssh user, and when I attempt to {{{2 P12. I'm a Windows + putty + ssh user, and when I attempt to {{{2
browse, the directories are missing trailing "/"s so netrw treats browse, the directories are missing trailing "/"s so netrw treats
them as file transfers instead of as attempts to browse them as file transfers instead of as attempts to browse
subdirectories. How may I fix this? subdirectories. How may I fix this?
@ -3646,8 +3618,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
"let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe" "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
"let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe" "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
< <
*netrw-p14* *netrw-p13*
P14. I would like to speed up writes using Nwrite and scp/ssh {{{2 P13. I would like to speed up writes using Nwrite and scp/ssh {{{2
style connections. How? (Thomer M. Gil) style connections. How? (Thomer M. Gil)
Try using ssh's ControlMaster and ControlPath (see the ssh_config Try using ssh's ControlMaster and ControlPath (see the ssh_config
@ -3673,8 +3645,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
vim scp://host.domain.com//home/user/.bashrc vim scp://host.domain.com//home/user/.bashrc
< <
*netrw-p15* *netrw-p14*
P15. How may I use a double-click instead of netrw's usual single {{{2 P14. How may I use a double-click instead of netrw's usual single {{{2
click to open a file or directory? (Ben Fritz) click to open a file or directory? (Ben Fritz)
First, disable netrw's mapping with > First, disable netrw's mapping with >
@ -3686,8 +3658,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
all netrw's mouse mappings, not just the <leftmouse> one. all netrw's mouse mappings, not just the <leftmouse> one.
(see |g:netrw_mousemaps|) (see |g:netrw_mousemaps|)
*netrw-p16* *netrw-p15*
P16. When editing remote files (ex. :e ftp://hostname/path/file), {{{2 P15. When editing remote files (ex. :e ftp://hostname/path/file), {{{2
under Windows I get an |E303| message complaining that its unable under Windows I get an |E303| message complaining that its unable
to open a swap file. to open a swap file.
@ -3695,8 +3667,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
directory. Start netrw from your $HOME or other writable directory. Start netrw from your $HOME or other writable
directory. directory.
*netrw-p17* *netrw-p16*
P17. Netrw is closing buffers on its own. {{{2 P16. Netrw is closing buffers on its own. {{{2
What steps will reproduce the problem? What steps will reproduce the problem?
1. :Explore, navigate directories, open a file 1. :Explore, navigate directories, open a file
2. :Explore, open another file 2. :Explore, open another file
@ -3709,15 +3681,15 @@ Example: Clear netrw's marked file list via a mapping on gu >
It appears that the buffers are not exactly closed; It appears that the buffers are not exactly closed;
a ":ls!" will show them (although ":ls" does not). a ":ls!" will show them (although ":ls" does not).
*netrw-P18* *netrw-P17*
P18. How to locally edit a file that's only available via {{{2 P17. How to locally edit a file that's only available via {{{2
another server accessible via ssh? another server accessible via ssh?
See http://stackoverflow.com/questions/12469645/ See http://stackoverflow.com/questions/12469645/
"Using Vim to Remotely Edit A File on ServerB Only "Using Vim to Remotely Edit A File on ServerB Only
Accessible From ServerA" Accessible From ServerA"
*netrw-P19* *netrw-P18*
P19. How do I get numbering on in directory listings? {{{2 P18. How do I get numbering on in directory listings? {{{2
With |g:netrw_bufsettings|, you can control netrw's buffer With |g:netrw_bufsettings|, you can control netrw's buffer
settings; try putting > settings; try putting >
let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu" let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
@ -3725,8 +3697,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
instead, try > instead, try >
let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu" let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
< <
*netrw-P20* *netrw-P19*
P20. How may I have gvim start up showing a directory listing? {{{2 P19. How may I have gvim start up showing a directory listing? {{{2
Try putting the following code snippet into your .vimrc: > Try putting the following code snippet into your .vimrc: >
augroup VimStartup augroup VimStartup
au! au!
@ -3738,8 +3710,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
This snippet assumes that you have client-server enabled This snippet assumes that you have client-server enabled
(ie. a "huge" vim version). (ie. a "huge" vim version).
*netrw-P21* *netrw-P20*
P21. I've made a directory (or file) with an accented character, {{{2 P20. I've made a directory (or file) with an accented character, {{{2
but netrw isn't letting me enter that directory/read that file: but netrw isn't letting me enter that directory/read that file:
Its likely that the shell or o/s is using a different encoding Its likely that the shell or o/s is using a different encoding
@ -3749,8 +3721,8 @@ Example: Clear netrw's marked file list via a mapping on gu >
au FileType netrw set enc=latin1 au FileType netrw set enc=latin1
< <
*netrw-P22* *netrw-P21*
P22. I get an error message when I try to copy or move a file: {{{2 P21. I get an error message when I try to copy or move a file: {{{2
> >
**error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work! **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
< <

View File

@ -2,6 +2,8 @@
" PLUGIN SECTION " PLUGIN SECTION
" Maintainer: This runtime file is looking for a new maintainer. " Maintainer: This runtime file is looking for a new maintainer.
" Date: Feb 09, 2021 " Date: Feb 09, 2021
" Last Change:
" 2024 May 08 by Vim Project: cleanup legacy Win9X checks
" Former Maintainer: Charles E Campbell " Former Maintainer: Charles E Campbell
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2021 Charles E. Campbell {{{1 " Copyright: Copyright (C) 1999-2021 Charles E. Campbell {{{1
@ -35,7 +37,7 @@ augroup FileExplorer
au BufLeave * if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif au BufLeave * if &ft != "netrw"|let w:netrw_prvfile= expand("%:p")|endif
au BufEnter * sil call s:LocalBrowse(expand("<amatch>")) au BufEnter * sil call s:LocalBrowse(expand("<amatch>"))
au VimEnter * sil call s:VimEnter(expand("<amatch>")) au VimEnter * sil call s:VimEnter(expand("<amatch>"))
if has("win32") || has("win95") || has("win64") || has("win16") if has("win32")
au BufEnter .* sil call s:LocalBrowse(expand("<amatch>")) au BufEnter .* sil call s:LocalBrowse(expand("<amatch>"))
endif endif
augroup END augroup END