diff options
author | Bram Moolenaar <Bram@vim.org> | 2010-07-27 22:50:36 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2010-07-27 22:50:36 +0200 |
commit | 5ac3b1aae2bdcf9f02ac0ebf97836ae3c709c2dc (patch) | |
tree | a9bf2d2349c0c88932c501acd9bba854321aaad8 /runtime/autoload | |
parent | 8765a4ac3a9dfb994ad7051183353ead25cfbb64 (diff) | |
download | vim-git-5ac3b1aae2bdcf9f02ac0ebf97836ae3c709c2dc.tar.gz |
Updated runtime files. New netrw plugin version.
Diffstat (limited to 'runtime/autoload')
-rw-r--r-- | runtime/autoload/netrw.vim | 231 |
1 files changed, 117 insertions, 114 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:") |