summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/autoload/netrw.vim231
-rw-r--r--runtime/doc/map.txt4
-rw-r--r--runtime/doc/pi_netrw.txt55
-rw-r--r--runtime/doc/todo.txt24
-rw-r--r--runtime/indent/haml.vim2
-rw-r--r--runtime/plugin/netrwPlugin.vim6
6 files changed, 183 insertions, 139 deletions
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 70b146d64..b05f81db8 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,10 +1,10 @@
" netrw.vim: Handles file transfer and remote directory listing across
" AUTOLOAD SECTION
-" Date: May 14, 2010
-" Version: 138
+" Date: Jul 27, 2010
+" Version: 139
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
-" Copyright: Copyright (C) 1999-2009 Charles E. Campbell, Jr. {{{1
+" Copyright: Copyright (C) 1999-2010 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,
@@ -22,7 +22,7 @@
if &cp || exists("g:loaded_netrw")
finish
endif
-let g:loaded_netrw = "v138"
+let g:loaded_netrw = "v139"
if v:version < 702
echohl WarningMsg
echo "***warning*** this version of netrw needs vim 7.2"
@@ -153,6 +153,7 @@ call s:NetrwInit("g:netrw_alto" , &sb)
call s:NetrwInit("g:netrw_altv" , &spr)
call s:NetrwInit("g:netrw_banner" , 1)
call s:NetrwInit("g:netrw_browse_split", 0)
+call s:NetrwInit("g:netrw_bufsettings" , "noma nomod nonu nobl nowrap ro")
call s:NetrwInit("g:netrw_chgwin" , -1)
call s:NetrwInit("g:netrw_compress" , "gzip")
call s:NetrwInit("g:netrw_ctags" , "ctags")
@@ -163,7 +164,7 @@ if !exists("g:netrw_cursorline")
endif
" Default values - d-g ---------- {{{3
call s:NetrwInit("g:netrw_dirhist_cnt" , 0)
-call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf"}')
+call s:NetrwInit("g:netrw_decompress" , '{ ".gz" : "gunzip", ".bz2" : "bunzip2", ".zip" : "unzip", ".tar" : "tar -xf", ".xz" : "unxz" }')
call s:NetrwInit("g:netrw_dirhistmax" , 10)
call s:NetrwInit("g:netrw_fastbrowse" , 1)
call s:NetrwInit("g:netrw_ftp_browse_reject", '^total\s\+\d\+$\|^Trying\s\+\d\+.*$\|^KERBEROS_V\d rejected\|^Security extensions not\|No such file\|: connect to address [0-9a-fA-F:]*: No route to host$')
@@ -325,7 +326,7 @@ fun! s:NetrwOptionSave(vt)
" call Dret("s:NetrwOptionSave : options already saved")
return
endif
-" call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist"))
+" call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist")." diff=".&l:diff)
" Save current settings and current directory
let s:yykeep = @@
@@ -340,6 +341,7 @@ fun! s:NetrwOptionSave(vt)
let {a:vt}netrw_cinokeep = &l:cino
let {a:vt}netrw_comkeep = &l:com
let {a:vt}netrw_cpokeep = &l:cpo
+ let {a:vt}netrw_diffkeep = &l:diff
if g:netrw_keepdir
let {a:vt}netrw_dirkeep = getcwd()
endif
@@ -349,6 +351,7 @@ fun! s:NetrwOptionSave(vt)
let {a:vt}netrw_imkeep = &l:im
let {a:vt}netrw_magickeep = &l:magic
let {a:vt}netrw_repkeep = &l:report
+ let {a:vt}netrw_selkeep = &l:sel
let {a:vt}netrw_spellkeep = &l:spell
let {a:vt}netrw_twkeep = &l:tw " textwidth
let {a:vt}netrw_wigkeep = &l:wig " wildignore
@@ -398,6 +401,7 @@ fun! s:NetrwOptionRestore(vt)
if exists("{a:vt}netrw_cinokeep") |let &l:cino = {a:vt}netrw_cinokeep |unlet {a:vt}netrw_cinokeep |endif
if exists("{a:vt}netrw_comkeep") |let &l:com = {a:vt}netrw_comkeep |unlet {a:vt}netrw_comkeep |endif
if exists("{a:vt}netrw_cpokeep") |let &l:cpo = {a:vt}netrw_cpokeep |unlet {a:vt}netrw_cpokeep |endif
+ if exists("{a:vt}netrw_diffkeep") |let &l:diff = {a:vt}netrw_diffkeep |unlet {a:vt}netrw_diffkeep |endif
if exists("{a:vt}netrw_dirkeep") && isdirectory({a:vt}netrw_dirkeep) && g:netrw_keepdir
let dirkeep = substitute({a:vt}netrw_dirkeep,'\\','/','g')
if exists("{a:vt}netrw_dirkeep") |exe "keepjumps lcd ".fnameescape(dirkeep)|unlet {a:vt}netrw_dirkeep |endif
@@ -408,6 +412,7 @@ fun! s:NetrwOptionRestore(vt)
if exists("{a:vt}netrw_imkeep") |let &l:im = {a:vt}netrw_imkeep |unlet {a:vt}netrw_imkeep |endif
if exists("{a:vt}netrw_magic") |let &l:magic = {a:vt}netrw_magic |unlet {a:vt}netrw_magic |endif
if exists("{a:vt}netrw_repkeep") |let &l:report = {a:vt}netrw_repkeep |unlet {a:vt}netrw_repkeep |endif
+ if exists("{a:vt}netrw_selkeep") |let &l:sel = {a:vt}netrw_selkeep |unlet {a:vt}netrw_selkeep |endif
if exists("{a:vt}netrw_spellkeep")|let &l:spell = {a:vt}netrw_spellkeep |unlet {a:vt}netrw_spellkeep|endif
if exists("{a:vt}netrw_twkeep") |let &l:tw = {a:vt}netrw_twkeep |unlet {a:vt}netrw_twkeep |endif
if exists("{a:vt}netrw_wigkeep") |let &l:wig = {a:vt}netrw_wigkeep |unlet {a:vt}netrw_wigkeep |endif
@@ -433,6 +438,7 @@ fun! s:NetrwOptionRestore(vt)
" call Decho("g:netrw_keepdir=".g:netrw_keepdir.": getcwd<".getcwd()."> acd=".&acd)
" call Decho("fo=".&fo.(exists("&acd")? " acd=".&acd : " acd doesn't exist"))
" call Decho("ro=".&l:ro." ma=".&l:ma." mod=".&l:mod." wrap=".&l:wrap)
+" call Decho("diff=".&l:diff." win#".winnr()." w:netrw_diffkeep=".(exists("w:netrw_diffkeep")? w:netrw_diffkeep : "doesn't exist"))
" call Dret("s:NetrwOptionRestore : win#".winnr()." buf#".bufnr("%"))
endfun
@@ -450,12 +456,14 @@ fun! s:NetrwSafeOptions()
setlocal tw=0
setlocal report=10000
setlocal isk+=@ isk+=* isk+=/
+ setlocal sel=inclusive
if g:netrw_use_noswf && has("win32") && !has("win95")
setlocal noswf
endif
call s:NetrwCursorline()
" allow the user to override safe options
+" call Decho("ft<".&ft."> ei=".&ei)
if &ft == "netrw"
" call Decho("do any netrw FileType autocmds")
silent keepalt keepjumps doau FileType netrw
@@ -920,7 +928,7 @@ fun! netrw#NetRead(mode,...)
unlet b:netrw_method
unlet b:netrw_fname
endif
- if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't'
+ if s:FileReadable(tmpfile) && tmpfile !~ '.tar.bz2$' && tmpfile !~ '.tar.gz$' && tmpfile !~ '.zip' && tmpfile !~ '.tar' && readcmd != 't' && tmpfile !~ '.tar.xz$' && tmpfile !~ '.txz'
" call Decho("cleanup by deleting tmpfile<".tmpfile.">")
call s:NetrwDelete(tmpfile)
endif
@@ -1371,8 +1379,8 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
else
let tfile= a:tfile
endif
-" call Decho("exe silent! keepalt file ".fnameescape(tfile))
- exe "silent! keepalt file ".fnameescape(tfile)
+" call Decho("exe sil! keepalt file ".fnameescape(tfile))
+ exe "sil! keepalt file ".fnameescape(tfile)
" edit temporary file (ie. read the temporary file in)
if rfile =~ '\.zip$'
@@ -1381,19 +1389,25 @@ fun! s:NetrwGetFile(readcmd, tfile, method)
elseif rfile =~ '\.tar$'
" call Decho("handling remote tar file with tar#Browse(tfile<".tfile.">)")
call tar#Browse(tfile)
- elseif rfile =~ '\.tar\.gz'
+ elseif rfile =~ '\.tar\.gz$'
" call Decho("handling remote gzip-compressed tar file")
call tar#Browse(tfile)
- elseif rfile =~ '\.tar\.bz2'
+ elseif rfile =~ '\.tar\.bz2$'
" call Decho("handling remote bz2-compressed tar file")
call tar#Browse(tfile)
+ elseif rfile =~ '\.tar\.xz$'
+" call Decho("handling remote xz-compressed tar file")
+ call tar#Browse(tfile)
+ elseif rfile =~ '\.txz$'
+" call Decho("handling remote xz-compressed tar file (.txz)")
+ call tar#Browse(tfile)
else
" call Decho("edit temporary file")
e!
endif
" rename buffer back to remote filename
-" call Decho("exe silent! keepalt file ".fnameescape(rfile))
+" call Decho("exe sil! keepalt file ".fnameescape(rfile))
exe "sil! keepalt file ".fnameescape(rfile)
filetype detect
" call Dredir("renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">","ls!")
@@ -2242,8 +2256,6 @@ fun! s:NetrwBrowse(islocal,dirname)
if !exists("s:netrw_initbookhist")
call s:NetrwBookHistRead()
endif
-" call FOTEST(7)
-"call Decho("COMBAK#01 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
" simplify the dirname (especially for ".."s in dirnames)
if a:dirname !~ '^\a\+://'
@@ -2251,8 +2263,6 @@ fun! s:NetrwBrowse(islocal,dirname)
else
let dirname= a:dirname
endif
-" call FOTEST(8)
-"call Decho("COMBAK#02 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
if exists("s:netrw_skipbrowse")
unlet s:netrw_skipbrowse
@@ -2271,17 +2281,13 @@ fun! s:NetrwBrowse(islocal,dirname)
return
endif
- call s:NetrwOptionSave("w:")
-" call FOTEST(9)
-"call Decho("COMBAK#03 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
+ call s:NetrwOptionSave("w:")
" re-instate any marked files
if exists("s:netrwmarkfilelist_{bufnr('%')}")
" call Decho("clearing marked files")
exe "2match netrwMarkFile /".s:netrwmarkfilemtch_{bufnr("%")}."/"
endif
-" call FOTEST(10)
-"call Decho("COMBAK#04 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
if a:islocal && exists("w:netrw_acdkeep") && w:netrw_acdkeep
" call Decho("handle w:netrw_acdkeep:")
@@ -2308,11 +2314,11 @@ fun! s:NetrwBrowse(islocal,dirname)
setlocal ma noro
" call Decho("setlocal ma noro")
let b:netrw_curdir= dirname
-" call Decho("exe silent! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)." (bt=".&bt.")")
+" call Decho("exe sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)." (bt=".&bt.")")
exe "sil! keepalt file ".fnameescape(s:method."://".s:user.s:machine."/".s:path)
- exe "sil keepalt doau BufReadPre ".fnameescape(s:fname)
+ exe "sil! keepalt doau BufReadPre ".fnameescape(s:fname)
silent call netrw#NetRead(2,s:method."://".s:user.s:machine."/".s:path)
- if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz'
+ if s:path !~ '.tar.bz2$' && s:path !~ '.tar.gz' && s:path !~ '.tar.xz' && s:path !~ '.txz'
" netrw.vim and tar.vim have already handled decompression of the tarball; avoiding gzip.vim error
exe "sil keepalt doau BufReadPost ".fnameescape(s:fname)
endif
@@ -2326,8 +2332,6 @@ fun! s:NetrwBrowse(islocal,dirname)
" call Dret("s:NetrwBrowse : file<".s:fname.">")
return
endif
-" call FOTEST(11)
-"call Decho("COMBAK#05 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
" use buffer-oriented WinVars if buffer ones exist but window ones don't {{{3
call s:UseBufWinVars()
@@ -2339,8 +2343,6 @@ fun! s:NetrwBrowse(islocal,dirname)
" set up menu {{{3
call s:NetrwMenu(1)
-" call FOTEST(12)
-"call Decho("COMBAK#06 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
" set up buffer {{{3
let reusing= s:NetrwGetBuffer(a:islocal,dirname)
@@ -2360,12 +2362,10 @@ fun! s:NetrwBrowse(islocal,dirname)
" call Dret("s:NetrwBrowse : re-using buffer")
return
endif
-"" call FOTEST(13) " PROBLEM WITH LISTING
-"call Decho("COMBAK#07 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
" set b:netrw_curdir to the new directory name {{{3
" call Decho("set b:netrw_curdir to the new directory name: (buf#".bufnr("%").")")
- let b:netrw_curdir= dirname
+ let b:netrw_curdir= dirname
if b:netrw_curdir =~ '[/\\]$'
let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
endif
@@ -2383,8 +2383,6 @@ fun! s:NetrwBrowse(islocal,dirname)
let b:netrw_curdir= b:netrw_curdir.'/'
endif
" call Decho("b:netrw_curdir<".b:netrw_curdir.">")
-"" call FOTEST(14) " PROBLEM WITH LISTING
-"call Decho("COMBAK#08 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
" ------------
" (local only) {{{3
@@ -2456,17 +2454,12 @@ fun! s:NetrwBrowse(islocal,dirname)
let b:netrw_curdir= dirname
" call Decho("b:netrw_curdir<".b:netrw_curdir."> (remote)")
endif " (additional remote handling)
-"" call FOTEST(15) " PROBLEM WITH LISTING
-"call Decho("COMBAK#09 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
" -----------------------
" Directory Listing: {{{3
" -----------------------
call s:BrowserMaps(a:islocal)
-"" call FOTEST(16) " PROBLEM WITH LISTING
call s:PerformListing(a:islocal)
-" call FOTEST(17)
-"call Decho("COMBAK#10 buf(%)#".bufnr("%")."<".bufname("%")."> win#".winnr()." bufnr(win#1)=".winbufnr(1)."<".bufname(winbufnr(1))." bufnr(win#2)=".winbufnr(2)."<".bufname(winbufnr(2)).">")
" The s:LocalBrowseShellCmdRefresh() function is called by an autocmd
" installed by s:LocalFastBrowser() when g:netrw_fastbrowse <= 1 (ie. slow, medium speed).
@@ -2534,7 +2527,7 @@ fun! s:NetrwGetBuffer(islocal,dirname)
" call Decho(" re-use w:netrw_treebufnr=".w:netrw_treebufnr)
let eikeep= &ei
set ei=all
- exe "b ".w:netrw_treebufnr
+ exe "sil! b ".w:netrw_treebufnr
let &ei= eikeep
" call Dret("s:NetrwGetBuffer : bufnum#".w:netrw_treebufnr."<NetrwTreeListing>")
return
@@ -2614,7 +2607,7 @@ fun! s:NetrwGetBuffer(islocal,dirname)
endif
" get enew buffer and name it -or- re-use buffer {{{3
- keepj mark '
+ sil! keepj mark '
if bufnum < 0 || !bufexists(bufnum)
" call Decho("--get enew buffer and name it (bufexists([bufnum=".bufnum."])=".bufexists(bufnum).")")
call s:NetrwEnew(dirname)
@@ -2629,7 +2622,7 @@ fun! s:NetrwGetBuffer(islocal,dirname)
let s:netrw_treelistnum= s:netrw_treelistnum + 1
endif
let w:netrw_treebufnr= bufnr("%")
-" call Decho(" exe silent! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum))
+" call Decho(" exe sil! keepalt file NetrwTreeListing ".fnameescape(s:netrw_treelistnum))
exe 'sil! keepalt file NetrwTreeListing\ '.fnameescape(s:netrw_treelistnum)
set bt=nofile noswf
nnoremap <silent> <buffer> [ :silent call <SID>TreeListMove('[')<cr>
@@ -2641,7 +2634,7 @@ fun! s:NetrwGetBuffer(islocal,dirname)
" let v:errmsg= "" " Decho
let escdirname= fnameescape(dirname)
" call Decho(" errmsg<".v:errmsg."> bufnr(escdirname<".escdirname.">)=".bufnr(escdirname)." bufname()<".bufname(bufnr(escdirname)).">")
-" call Decho(' exe silent! keepalt file '.escdirname)
+" call Decho(' exe sil! keepalt file '.escdirname)
" let v:errmsg= "" " Decho
exe 'sil! keepalt file '.escdirname
" call Decho(" errmsg<".v:errmsg."> bufnr(".escdirname.")=".bufnr(escdirname)."<".bufname(bufnr(escdirname)).">")
@@ -2654,13 +2647,13 @@ fun! s:NetrwGetBuffer(islocal,dirname)
set ei=all
if getline(2) =~ '^" Netrw Directory Listing'
" call Decho(" re-use buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: keepalt b ".bufnum)
- exe "keepalt b ".bufnum
+ exe "sil! keepalt b ".bufnum
else
" call Decho(" reusing buffer#".bufnum."<".((bufnum > 0)? bufname(bufnum) : "")."> using: b ".bufnum)
- exe "b ".bufnum
+ exe "sil! b ".bufnum
endif
if bufname("%") == '.'
-" call Decho("exe silent! keepalt file ".fnameescape(getcwd()))
+" call Decho("exe sil! keepalt file ".fnameescape(getcwd()))
exe "sil! keepalt file ".fnameescape(getcwd())
endif
let &ei= eikeep
@@ -2689,8 +2682,8 @@ fun! s:NetrwGetBuffer(islocal,dirname)
" call Decho("--do netrw settings: make this buffer#".bufnr("%")." not-a-file, modifiable, not line-numbered, etc--")
let fname= expand("%")
call s:NetrwListSettings(a:islocal)
-" call Decho("exe keepalt file ".fnameescape(fname))
- exe "keepalt file ".fnameescape(fname)
+" call Decho("exe sil! keepalt file ".fnameescape(fname))
+ exe "sil! keepalt file ".fnameescape(fname)
" delete all lines from buffer {{{3
" call Decho("--delete all lines from buffer--")
@@ -2831,8 +2824,8 @@ fun! s:NetrwListSettings(islocal)
let fname= bufname("%")
" call Decho("setlocal bt=nofile nobl ma nonu nowrap noro")
setlocal bt=nofile nobl ma nonu nowrap noro
-" call Decho("exe keepalt file ".fnameescape(fname))
- exe "keepalt file ".fnameescape(fname)
+" call Decho("exe sil! keepalt file ".fnameescape(fname))
+ exe "sil! keepalt file ".fnameescape(fname)
if g:netrw_use_noswf
setlocal noswf
endif
@@ -2891,7 +2884,7 @@ fun! s:NetrwListStyle(islocal)
" clear buffer - this will cause NetrwBrowse/LocalBrowseCheck to do a refresh
" call Decho("clear buffer<".expand("%")."> with :%d")
- keepj %d
+ sil! keepj %d
" following prevents tree listing buffer from being marked "modified"
setlocal nomod
@@ -2903,11 +2896,11 @@ fun! s:NetrwListStyle(islocal)
call s:NetrwCursorline()
" keep cursor on the filename
- sil keepj $
+ sil! keepj $
let result= search('\%(^\%(|\+\s\)\=\|\s\{2,}\)\zs'.escape(fname,'.\[]*$^').'\%(\s\{2,}\|$\)','bc')
" call Decho("search result=".result." w:netrw_bannercnt=".(exists("w:netrw_bannercnt")? w:netrw_bannercnt : 'N/A'))
if result <= 0 && exists("w:netrw_bannercnt")
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepj ".w:netrw_bannercnt
endif
" call Dret("NetrwListStyle".(exists("w:netrw_liststyle")? ' : w:netrw_liststyle='.w:netrw_liststyle : ""))
@@ -3095,6 +3088,7 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
endif
endif
endif
+
" the point where netrw actually edits the (local) file
" if its local only: LocalBrowseCheck() doesn't edit a file, but NetrwBrowse() will
if a:islocal
@@ -3110,9 +3104,12 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
" or as a list of function references. It will ignore anything that's not
" a function reference. See :help Funcref for information about function references.
if exists("g:Netrw_funcref")
+" call Decho("handle optional Funcrefs")
if type(g:Netrw_funcref) == 2
+" call Decho("handling a g:Netrw_funcref")
call g:Netrw_funcref()
elseif type(g:Netrw_funcref) == 3
+" call Decho("handling a list of g:Netrw_funcrefs")
for Fncref in g:Netrw_funcref
if type(FncRef) == 2
call FncRef()
@@ -3246,8 +3243,14 @@ fun! s:NetrwBrowseChgDir(islocal,newdir,...)
call s:NetrwOptionRestore("s:")
if dolockout
-" call Decho("doing modification lockout settings: ma nomod noro")
- setlocal ma nomod noro
+" call Decho("filewritable(dirname<".dirname.">)=".filewritable(dirname))
+ if filewritable(dirname)
+" call Decho("doing modification lockout settings: ma nomod noro")
+ setlocal ma nomod noro
+ else
+" call Decho("doing modification lockout settings: ma nomod ro")
+ setlocal ma nomod ro
+ endif
" call Decho("setlocal ma nomod noro")
endif
@@ -3510,7 +3513,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
let curdir = simplify(b:netrw_curdir)
let curfiledir = substitute(expand("%:p"),'^\(.*[/\\]\)[^/\\]*$','\1','e')
" call Decho("curdir<".curdir."> curfiledir<".curfiledir.">")
-" call FOTEST(1)
" save registers
sil! let keepregstar = @*
@@ -3561,7 +3563,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
" call Decho("case a:dosplit=".a:dosplit." AND modified=".&modified." AND a:style=".a:style." is not 6")
endif
keepj norm! 0
-" call FOTEST(2)
if a:0 > 0
" call Decho("case [a:0=".a:0."] > 0: a:1<".a:1.">")
@@ -3596,7 +3597,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
return
endif
-" call FOTEST(3)
" call Decho("dirname<".dirname.">")
if dirname =~ '\.\./\=$'
let dirname= simplify(fnamemodify(dirname,':p:h'))
@@ -3648,7 +3648,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
let starpat= 0
" call Decho("default case: starpat=".starpat)
endif
-" call FOTEST(4)
if starpat == 0 && a:indx >= 0
" [Explore Hexplore Vexplore Sexplore] [dirname]
@@ -3875,7 +3874,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
call netrw#LocalBrowseCheck(s:NetrwBrowseChgDir(1,newdir))
endif
endif
-" call FOTEST(5)
" visual display of **/ **// */ Exploration files
" call Decho("w:netrw_explore_indx=".(exists("w:netrw_explore_indx")? w:netrw_explore_indx : "doesn't exist"))
@@ -3920,7 +3918,6 @@ fun! netrw#Explore(indx,dosplit,style,...)
echo " "
" call Decho("cleared explore match list")
endif
-" call FOTEST(6)
sil! let @* = keepregstar
sil! let @+ = keepregstar
@@ -4390,7 +4387,7 @@ endfun
" using g:netrw_compress_suffix to know which to
" do. By default:
" g:netrw_compress = "gzip"
-" g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"}
+" g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf", ".xz" : "unxz"}
fun! s:NetrwMarkFileCompress(islocal)
" call Dfunc("s:NetrwMarkFileCompress(islocal=".a:islocal.")")
let svpos = netrw#NetrwSavePosn()
@@ -4423,6 +4420,7 @@ fun! s:NetrwMarkFileCompress(islocal)
endif
break
endif
+ unlet sfx
endfor
if exists("exe")
unlet exe
@@ -5219,6 +5217,7 @@ fun! s:NetrwMenu(domenu)
exe 'sil! menu '.g:NetrwMenuPriority.'.9.4 '.g:NetrwTopLvlMenu.'Browsing\ Control.Refresh\ Listing<tab>'."<ctrl-l> \<c-l>"
exe 'sil! menu '.g:NetrwMenuPriority.'.9.5 '.g:NetrwTopLvlMenu.'Browsing\ Control.Settings/Options<tab>:NetrwSettings '.":NetrwSettings\<cr>"
exe 'sil! menu '.g:NetrwMenuPriority.'.10 '.g:NetrwTopLvlMenu.'Delete\ File/Directory<tab>D D'
+ exe 'sil! menu '.g:NetrwMenuPriority.'.11.1 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Create\ New\ File<tab>% %'
exe 'sil! menu '.g:NetrwMenuPriority.'.11.1 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Current\ Window<tab><cr> '."\<cr>"
exe 'sil! menu '.g:NetrwMenuPriority.'.11.2 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.Preview\ File/Directory<tab>p p'
exe 'sil! menu '.g:NetrwMenuPriority.'.11.3 '.g:NetrwTopLvlMenu.'Edit\ File/Dir.In\ Previous\ Window<tab>P P'
@@ -5814,7 +5813,7 @@ fun! s:NetrwRefresh(islocal,dirname)
setlocal ma noro
" call Decho("setlocal ma noro")
" call Decho("clear buffer<".expand("%")."> with :%d")
- keepj %d
+ sil! keepj %d
if a:islocal
call netrw#LocalBrowseCheck(a:dirname)
else
@@ -6093,7 +6092,7 @@ fun! s:NetrwTreeDir()
" call Decho("user attempted to close treeroot")
" now force a refresh
" call Decho("clear buffer<".expand("%")."> with :%d")
- keepj %d
+ sil! keepj %d
" call Dret("NetrwTreeDir <".treedir."> : (side effect) s:treecurpos<".string(s:treecurpos).">")
return b:netrw_curdir
endif
@@ -6174,7 +6173,7 @@ fun! s:NetrwTreeDisplay(dir,depth)
call s:NetrwTreeDisplay(direntry.'/',depth)
else
" call Decho("<".entry."> is not a key in treedict (no subtree)")
- keepj call setline(line("$")+1,depth.entry)
+ sil! keepj call setline(line("$")+1,depth.entry)
endif
endfor
" call Dret("NetrwTreeDisplay")
@@ -6206,10 +6205,10 @@ fun! s:NetrwTreeListing(dirname)
" update the directory listing for the current directory
" call Decho("updating dictionary with ".a:dirname.":[..directory listing..]")
" call Decho("bannercnt=".w:netrw_bannercnt." line($)=".line("$"))
- exe "silent! keepjumps ".w:netrw_bannercnt.',$g@^\.\.\=/$@d'
+ exe "sil! keepj ".w:netrw_bannercnt.',$g@^\.\.\=/$@d'
let w:netrw_treedict[a:dirname]= getline(w:netrw_bannercnt,line("$"))
" call Decho("w:treedict[".a:dirname."]= ".string(w:netrw_treedict[a:dirname]))
- exe "silent! keepjumps ".w:netrw_bannercnt.",$d"
+ exe "sil! keepj ".w:netrw_bannercnt.",$d"
" if past banner, record word
if exists("w:netrw_bannercnt") && line(".") > w:netrw_bannercnt
@@ -6263,21 +6262,21 @@ fun! s:NetrwWideListing()
let newcolstart = w:netrw_bannercnt + fpc
let newcolend = newcolstart + fpc - 1
" call Decho("bannercnt=".w:netrw_bannercnt." fpl=".w:netrw_fpl." fpc=".fpc." newcol[".newcolstart.",".newcolend."]")
- silent! let keepregstar = @*
+ sil! let keepregstar = @*
while line("$") >= newcolstart
if newcolend > line("$") | let newcolend= line("$") | endif
let newcolqty= newcolend - newcolstart
exe newcolstart
if newcolqty == 0
- exe "sil keepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p"
+ exe "sil! keepj norm! 0\<c-v>$hx".w:netrw_bannercnt."G$p"
else
- exe "sil keepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p'
+ exe "sil! keepj norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p'
endif
- exe "sil keepj ".newcolstart.','.newcolend.'d'
- exe 'sil keepj '.w:netrw_bannercnt
+ exe "sil! keepj ".newcolstart.','.newcolend.'d'
+ exe 'sil! keepj '.w:netrw_bannercnt
endwhile
silent! let @*= keepregstar
- exe "sil keepj ".w:netrw_bannercnt.',$s/\s\+$//e'
+ exe "sil! keepj ".w:netrw_bannercnt.',$s/\s\+$//e'
call histdel("/",-1)
setlocal noma nomod ro
" call Dret("NetrwWideListing")
@@ -6302,7 +6301,7 @@ fun! s:PerformListing(islocal)
if exists("w:netrw_liststyle") && w:netrw_liststyle == s:TREELIST && exists("w:netrw_treedict")
" force a refresh for tree listings
" call Decho("force refresh for treelisting: clear buffer<".expand("%")."> with :%d")
- keepj %d
+ sil! keepj %d
endif
" save current directory on directory history list
@@ -6316,7 +6315,7 @@ fun! s:PerformListing(islocal)
keepj put ='\" '.b:netrw_curdir
keepj 1d
let w:netrw_bannercnt= 3
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepj ".w:netrw_bannercnt
else
keepj 1
let w:netrw_bannercnt= 1
@@ -6342,7 +6341,7 @@ fun! s:PerformListing(islocal)
keepj put ='\" Sorted by '.sortby
let w:netrw_bannercnt= w:netrw_bannercnt + 1
endif
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepj ".w:netrw_bannercnt
endif
" show copy/move target, if any
@@ -6351,15 +6350,15 @@ fun! s:PerformListing(islocal)
" call Decho("show copy/move target<".s:netrwmftgt.">")
keepj put =''
if s:netrwmftgt_islocal
- keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (local)')
+ sil! keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (local)')
else
- keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (remote)')
+ sil! keepj call setline(line("."),'" Copy/Move Tgt: '.s:netrwmftgt.' (remote)')
endif
let w:netrw_bannercnt= w:netrw_bannercnt + 1
else
" call Decho("s:netrwmftgt does not exist, don't make Copy/Move Tgt")
endif
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepj ".w:netrw_bannercnt
endif
" Hiding... -or- Showing... {{{3
@@ -6382,14 +6381,14 @@ fun! s:PerformListing(islocal)
" bannercnt should index the line just after the banner
if g:netrw_banner
let w:netrw_bannercnt= w:netrw_bannercnt + 1
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepj ".w:netrw_bannercnt
" call Decho("bannercnt=".w:netrw_bannercnt." (should index line just after banner) line($)=".line("$"))
endif
" set up syntax highlighting {{{3
" call Decho("set up syntax highlighting")
if has("syntax")
- setlocal ft=netrw
+ setf netrw
if !exists("g:syntax_on") || !g:syntax_on
setlocal ft=
endif
@@ -6430,7 +6429,7 @@ fun! s:PerformListing(islocal)
endif
" remove priority pattern prefix
" call Decho("remove priority pattern prefix")
- exe 'sil keepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
+ exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\d\{3}'.g:netrw_sepchr.'//e'
call histdel("/",-1)
elseif a:islocal
@@ -6438,12 +6437,12 @@ fun! s:PerformListing(islocal)
" call Decho("g:netrw_sort_direction=".g:netrw_sort_direction)
if g:netrw_sort_direction =~ 'n'
" call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort')
- exe 'sil keepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options
+ exe 'sil! keepj '.w:netrw_bannercnt.',$sort'.' '.g:netrw_sort_options
else
" call Decho('exe silent keepjumps '.w:netrw_bannercnt.',$sort!')
- exe 'sil keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
+ exe 'sil! keepj '.w:netrw_bannercnt.',$sort!'.' '.g:netrw_sort_options
endif
- exe 'sil keepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
+ exe 'sil! keepj '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
call histdel("/",-1)
endif
endif
@@ -6451,7 +6450,7 @@ fun! s:PerformListing(islocal)
elseif g:netrw_sort_direction =~ 'r'
" call Decho('reverse the sorted listing')
if !g:netrw_banner || w:netrw_bannercnt < line('$')
- exe 'sil keepj '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt
+ exe 'sil! keepj '.w:netrw_bannercnt.',$g/^/m '.w:netrw_bannercnt
call histdel("/",-1)
endif
endif
@@ -6465,8 +6464,8 @@ fun! s:PerformListing(islocal)
if exists("w:netrw_bannercnt") && (line("$") > w:netrw_bannercnt || !g:netrw_banner)
" place cursor on the top-left corner of the file listing
" call Decho("place cursor on top-left corner of file listing")
- exe 'sil keepj '.w:netrw_bannercnt
- keepj norm! 0
+ exe 'sil! keepj '.w:netrw_bannercnt
+ sil! keepj norm! 0
endif
" record previous current directory
@@ -6479,7 +6478,7 @@ fun! s:PerformListing(islocal)
" set display to netrw display settings
" call Decho("set display to netrw display settings (noma nomod etc)")
- setlocal noma nomod nonu nobl nowrap ro
+ exe "setl ".g:netrw_bufsettings
if exists("s:treecurpos")
call netrw#NetrwRestorePosn(s:treecurpos)
@@ -6586,16 +6585,16 @@ fun! s:NetrwRemoteListing()
endif
" call Decho("listcmd<".listcmd."> (using g:netrw_ftp_list_cmd)")
call s:NetrwRemoteFtpCmd(s:path,listcmd)
-" exe "keepj ".w:netrw_bannercnt.',$g/^./call Decho("raw listing: ".getline("."))'
+" exe "sil! keepalt keepj ".w:netrw_bannercnt.',$g/^./call Decho("raw listing: ".getline("."))'
if w:netrw_liststyle == s:THINLIST || w:netrw_liststyle == s:WIDELIST || w:netrw_liststyle == s:TREELIST
" shorten the listing
" call Decho("generate short listing")
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepalt keepj ".w:netrw_bannercnt
" cleanup
if g:netrw_ftp_browse_reject != ""
- exe "sil! keepj g/".g:netrw_ftp_browse_reject."/keepj d"
+ exe "sil! keepalt keepj g/".g:netrw_ftp_browse_reject."/keepj d"
call histdel("/",-1)
endif
sil! keepj %s/\r$//e
@@ -6603,15 +6602,15 @@ fun! s:NetrwRemoteListing()
" if there's no ../ listed, then put ./ and ../ in
let line1= line(".")
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepj ".w:netrw_bannercnt
let line2= search('^\.\.\/\%(\s\|$\)','cnW')
if line2 == 0
" call Decho("netrw is putting ./ and ../ into listing")
- keepj put='../'
- keepj put='./'
+ sil! keepj put='../'
+ sil! keepj put='./'
endif
- exe "keepj ".line1
- keepjumps norm! 0
+ exe "sil! keepj ".line1
+ sil! keepj norm! 0
" call Decho("line1=".line1." line2=".line2." line(.)=".line("."))
if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup
@@ -6636,25 +6635,25 @@ fun! s:NetrwRemoteListing()
" call Decho("listcmd<".listcmd."> (using g:netrw_list_cmd)")
if g:netrw_scp_cmd =~ '^pscp'
" call Decho("1: exe silent r! ".shellescape(listcmd.s:path, 1))
- exe "silent r! ".listcmd.shellescape(s:path, 1)
+ exe "sil! keepj r! ".listcmd.shellescape(s:path, 1)
" remove rubbish and adjust listing format of 'pscp' to 'ssh ls -FLa' like
- keepj g/^Listing directory/keepj d
- keepj g/^d[-rwx][-rwx][-rwx]/keepj s+$+/+e
- sil keepj g/^l[-rwx][-rwx][-rwx]/keepj s+$+@+e
+ sil! keepj g/^Listing directory/keepj d
+ sil! keepj g/^d[-rwx][-rwx][-rwx]/keepj s+$+/+e
+ sil! keepj g/^l[-rwx][-rwx][-rwx]/keepj s+$+@+e
call histdel("/",-1)
call histdel("/",-1)
call histdel("/",-1)
if g:netrw_liststyle != s:LONGLIST
- keepj g/^[dlsp-][-rwx][-rwx][-rwx]/keepj s/^.*\s\(\S\+\)$/\1/e
+ sil! keepj g/^[dlsp-][-rwx][-rwx][-rwx]/keepj s/^.*\s\(\S\+\)$/\1/e
call histdel("/",-1)
endif
else
if s:path == ""
" call Decho("2: exe silent r! ".listcmd)
- exe "sil r! ".listcmd
+ exe "sil! keepalt r! ".listcmd
else
" call Decho("3: exe silent r! ".listcmd.' '.shellescape(s:path,1))
- exe "sil r! ".listcmd.' '.shellescape(s:path,1)
+ exe "sil! keepalt r! ".listcmd.' '.shellescape(s:path,1)
" call Decho("listcmd<".listcmd."> path<".s:path.">")
endif
endif
@@ -6662,7 +6661,7 @@ fun! s:NetrwRemoteListing()
" cleanup
if g:netrw_ftp_browse_reject != ""
" call Decho("(cleanup) exe silent! g/".g:netrw_ssh_browse_reject."/keepjumps d")
- exe "sil! g/".g:netrw_ssh_browse_reject."/keepjumps d"
+ exe "sil! g/".g:netrw_ssh_browse_reject."/keepj d"
call histdel("/",-1)
endif
endif
@@ -6673,23 +6672,23 @@ fun! s:NetrwRemoteListing()
if s:method == "ftp"
" cleanup
- exe "keepj ".w:netrw_bannercnt
+ exe "sil! keepj ".w:netrw_bannercnt
while getline('.') =~ g:netrw_ftp_browse_reject
- keepj d
+ sil! keepj d
endwhile
" if there's no ../ listed, then put ./ and ../ in
let line1= line(".")
- keepj 1
- sil keepj call search('^\.\.\/\%(\s\|$\)','W')
+ sil! keepj 1
+ sil! keepj call search('^\.\.\/\%(\s\|$\)','W')
let line2= line(".")
if line2 == 0
- exe 'keepj '.w:netrw_bannercnt."put='./'"
+ exe 'sil! keepj '.w:netrw_bannercnt."put='./'"
if b:netrw_curdir != '/'
- exe 'keepj '.w:netrw_bannercnt."put='../'"
+ exe 'sil! keepj '.w:netrw_bannercnt."put='../'"
endif
endif
- exe "keepj ".line1
- keepjumps norm! 0
+ exe "sil! keepj ".line1
+ sil! keepj norm! 0
endif
if search('^\d\{2}-\d\{2}-\d\{2}\s','n') " M$ ftp site cleanup
@@ -6796,7 +6795,7 @@ fun! s:NetrwRemoteRmFile(path,rmfile,all)
if path =~ '^\a\+://'
let path= substitute(path,'^\a\+://[^/]\+/','','')
endif
- silent! keepjumps .,$d
+ sil! keepj .,$d
call s:NetrwRemoteFtpCmd(path,"delete ".'"'.a:rmfile.'"')
else
" call Decho("case ssh: g:netrw_rm_cmd<".g:netrw_rm_cmd.">")
@@ -7868,8 +7867,10 @@ fun! s:GetTempfile(fname)
if a:fname != ""
if a:fname =~ '\.[^./]\+$'
" call Decho("using fname<".a:fname.">'s suffix")
- if a:fname =~ '.tar.gz' || a:fname =~ '.tar.bz2'
+ if a:fname =~ '\.tar\.gz$' || a:fname =~ '\.tar\.bz2$' || a:fname =~ '\.tar\.xz$'
let suffix = ".tar".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
+ elseif a:fname =~ '.txz$'
+ let suffix = ".txz".substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
else
let suffix = substitute(a:fname,'^.*\(\.[^./]\+\)$','\1','e')
endif
@@ -8023,7 +8024,9 @@ fun! s:NetrwEnew(...)
call s:NetrwOptionRestore("w:")
" call Decho("generate a buffer with keepjumps keepalt enew!")
+ let netrw_keepdiff= &l:diff
keepj keepalt enew!
+ let &l:diff= netrw_keepdiff
" call Decho("bufnr($)=".bufnr("$"))
call s:NetrwOptionSave("w:")
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 153cd7fb3..7c4a95442 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt* For Vim version 7.3c. Last change: 2010 Jul 20
+*map.txt* For Vim version 7.3c. Last change: 2010 Jul 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -1266,6 +1266,8 @@ the 'path' option: >
: return split(globpath(&path, a:A), "\n")
:endfun
<
+This example does not work for file names with spaces!
+
Range handling *E177* *E178* *:command-range*
*:command-count*
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 52df67c8f..193138bb9 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt* For Vim version 7.3c. Last change: 2010 May 14
+*pi_netrw.txt* For Vim version 7.3c. Last change: 2010 Jul 27
-----------------------------------------------------
NETRW REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -318,15 +318,24 @@ settings are described below, in |netrw-browser-options|, and in
*b:netrw_lastfile* last file Network-read/written retained on a
per-buffer basis (supports plain :Nw )
+ *g:netrw_bufsettings* the settings that netrw buffers have
+ (default) noma nomod nonu nowrap ro nobl
+
*g:netrw_chgwin* specifies a window number where file edits will take
place. (also see |netrw-C|)
(default) not defined
- *g:Netrw_funcref* specifies a function to be called when netrw edits
- a file. The file is first edited, and then the
- function reference (|Funcref|) is called.
+ *g:Netrw_funcref* specifies a function (or functions) to be called when
+ netrw edits a file. The file is first edited, and
+ then the function reference (|Funcref|) is called.
+ This variable may also hold a |List| of Funcrefs.
(default) not defined
-
+>
+ Example: place in .vimrc; affects all file opening
+ fun! MyFuncRef()
+ endfun
+ let g:Netrw_funcref= function("MyFuncRef")
+<
*g:netrw_ftp* if it doesn't exist, use default ftp
=0 use default ftp (uid password)
=1 use alternate ftp method (user uid password)
@@ -456,7 +465,7 @@ browsed remote directories, for example.
On the other hand, thanks go to Jan M. for pointing out the many
vulnerabilities that netrw (and vim itself) had had in handling "crafted"
filenames. The |shellescape()| and |fnameescape()| functions were written in
-response by Bram Moolenaar to handle this sort of problems, and netrw has
+response by Bram Moolenaar to handle these sort of problems, and netrw has
been modified to use them. Still, my advice is, if the "filename" looks like
a vim command that you aren't comfortable with having executed, don't open it.
@@ -589,7 +598,7 @@ password.
PASSWORD *netrw-passwd*
The script attempts to get passwords for ftp invisibly using |inputsecret()|,
-a built-in Vim function. See |NetUserPass()| for how to change the password
+a built-in Vim function. See |netrw-uidpass| for how to change the password
after one has set it.
Unfortunately there doesn't appear to be a way for netrw to feed a password to
@@ -778,8 +787,10 @@ variables listed below, and may be modified by the user.
The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
specify the external program to use handle the ftp protocol. They may
-include command line options (such as -p for passive mode).
+include command line options (such as -p for passive mode). Example: >
+ let g:netrw_ftp_cmd= "ftp -p"
+<
Browsing is supported by using the |g:netrw_list_cmd|; the substring
"HOSTNAME" will be changed via substitution with whatever the current request
is for a hostname.
@@ -803,7 +814,7 @@ temporary file:
get filename tempfile >
---------------------------------------------------------------------
<
-The |g:netrw_ftpmode| and g:netrw_extracmd are optional.
+The |g:netrw_ftpmode| and |g:netrw_extracmd| are optional.
Netrw then executes the lines above by use of a filter:
>
@@ -2544,13 +2555,13 @@ Associated setting variables: |g:netrw_chgwin|
(Vit Gottwald) How to generate public/private key and save
public key it on server: >
- http://www.tartarus.org/~simon/puttydoc/Chapter8.html#pubkey-gettingready
- 8.3 Getting ready for public key authentication
+ http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
+ (8.3 Getting ready for public key authentication)
<
How to use a private key with 'pscp': >
- http://www.tartarus.org/~simon/puttydoc/Chapter5.html
- 5.2.4 Using public key authentication with PSCP
+ http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
+ (5.2.4 Using public key authentication with PSCP)
<
(Ben Schmidt) I find the ssh included with cwRsync is
brilliant, and install cwRsync or cwRsyncServer on most
@@ -2695,9 +2706,25 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
12. History *netrw-history* {{{1
+ v139: May 14, 2010 * when viewing remote directory listings and
+ changing listing style, going to tree listing
+ mode was issuing two rather useless messages
+ about the buffer name. They have now been
+ silenced.
+ * (Jean Johner) with "behave mswin", clicking
+ on a filename in wide mode opened a new file
+ with a missing first letter
+ * (Britton Kerin) wanted netrw listings to be
+ buflisted; the |g:netrw_bufsettings| option
+ permits that.
+ * (John Orr) pointed out that the intended maparg
+ test for gx was actually testing for g rather
+ than gx. Fixed.
+ Jun 18, 2010 * (Jan Steffens) added support for xz compression
+ Jun 23, 2010 * vimdiff dir1 dir2 now works
v138: May 01, 2010 * added the bomb setting to the Save-Set-Restore
option handling (for Tony M)
- * (Bram Moolenaar) netrw optionally sets cursorline
+ May 14, 2010 * (Bram Moolenaar) netrw optionally sets cursorline
(and sometimes cursorcolumn) for its display.
This option setting was leaking through with
remote file handling.
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 1759b72ff..e2d51634c 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt* For Vim version 7.3c. Last change: 2010 Jul 26
+*todo.txt* For Vim version 7.3c. Last change: 2010 Jul 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,17 +30,29 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
+Problem with concealends in v50 of tex.vim? (Charles Campbell, 2010 Jul 26)
+Fixed by patch from Vince?
+
+Conceal problem: CTRL-L draws differently than individual line. (Benjamin
+Fritz, 2010 Jul 27)
+
Access to free memory with :redir command. (Dominique Pelle, 2010 Jul 25)
-Easier way to reproduce in later message.
+Easier way to reproduce in later message. (2010 Jul 26)
+call get_lval() again in var_redir_stop().
Patch for VMS. Zoltan Arpadffy, 2010 Jul 26.
-Patch for :find completion. (Nazri Ramliy)
-But I prefer to keep term.h and include/term.h Nazri will work on it.
+Patch for :find completion. (Nazri Ramliy, 2010 Jul 27, and leak fix)
-Move more common code from if_python.c and if_python3.c to if_py_both.h
+Windows 7: "Open with..." menu starts Vim without a file.
-Problem with concealends in v50 of tex.vim? (Charles Campbell, 2010 Jul 26)
+Windows 7: installing Vim again doesn't find the previously installed Vim.
+
+ftplugin/mupad.vim should not source AppendMatchGroup.vim, it should use an
+autoload function.
+Same for indent/GenericIndent.vim
+
+Move more common code from if_python.c and if_python3.c to if_py_both.h
Add filetype completion to user commands. (Christian Brabandt, 2010 Jul 26)
But call it "filetype" instead of "syntax".
diff --git a/runtime/indent/haml.vim b/runtime/indent/haml.vim
index 079bd0513..58c030720 100644
--- a/runtime/indent/haml.vim
+++ b/runtime/indent/haml.vim
@@ -1,7 +1,7 @@
" Vim indent file
" Language: Haml
" Maintainer: Tim Pope <vimNOSPAM@tpope.org>
-" Last Change: 2008 Sep 11
+" Last Change: 2010 May 21
if exists("b:did_indent")
finish
diff --git a/runtime/plugin/netrwPlugin.vim b/runtime/plugin/netrwPlugin.vim
index f96896495..25a42629c 100644
--- a/runtime/plugin/netrwPlugin.vim
+++ b/runtime/plugin/netrwPlugin.vim
@@ -1,6 +1,6 @@
" netrwPlugin.vim: Handles file transfer and remote directory listing across a network
" PLUGIN SECTION
-" Date: Aug 10, 2008
+" Date: Jul 27, 2010
" Maintainer: Charles E Campbell, Jr <NdrOchip@ScampbellPfamily.AbizM-NOSPAM>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2008 Charles E. Campbell, Jr. {{{1
@@ -20,7 +20,7 @@
if &cp || exists("g:loaded_netrwPlugin")
finish
endif
-let g:loaded_netrwPlugin = "v138"
+let g:loaded_netrwPlugin = "v139"
if v:version < 702
echohl WarningMsg | echo "***netrw*** you need vim version 7.2 for this version of netrw" | echohl None
finish
@@ -81,7 +81,7 @@ com! -nargs=0 NetrwSettings call netrwSettings#NetrwSettings()
com! -bang NetrwClean call netrw#NetrwClean(<bang>0)
" Maps:
-if !exists("g:netrw_nogx") && maparg('g','n') == ""
+if !exists("g:netrw_nogx") && maparg('gx','n') == ""
if !hasmapto('<Plug>NetrwBrowseX')
nmap <unique> gx <Plug>NetrwBrowseX
endif