summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-09-29 18:26:07 +0000
committerBram Moolenaar <Bram@vim.org>2005-09-29 18:26:07 +0000
commit482aaeb058a3c05235148d22f6c511416da009fb (patch)
treeb9c63e97ec2826bfeea041afe176a04763dbcfa8
parent4463f296d0744915fa25dbd893821833043f9a25 (diff)
updated for version 7.0151v7.0151
-rw-r--r--runtime/autoload/csscomplete.vim11
-rw-r--r--runtime/autoload/netrw.vim357
-rw-r--r--runtime/doc/options.txt25
-rw-r--r--runtime/doc/pi_netrw.txt320
-rw-r--r--runtime/doc/quickfix.txt4
-rw-r--r--runtime/doc/syntax.txt4
-rw-r--r--runtime/doc/tags2
-rw-r--r--runtime/doc/todo.txt12
-rw-r--r--runtime/doc/version7.txt8
-rw-r--r--runtime/plugin/netrwPlugin.vim147
-rw-r--r--runtime/plugin/netrwSettings.vim161
-rw-r--r--runtime/spell/bg/bg_BG.diff4
-rw-r--r--runtime/spell/cy/cy_GB.diff4
-rw-r--r--runtime/spell/de/de_19.diff486
-rw-r--r--runtime/spell/de/de_20.diff487
-rw-r--r--runtime/spell/de/de_AT.diff487
-rw-r--r--runtime/spell/de/de_CH.diff487
-rw-r--r--runtime/spell/de/de_DE.diff487
-rw-r--r--runtime/spell/en.ascii.splbin566695 -> 566674 bytes
-rw-r--r--runtime/spell/en.latin1.splbin568799 -> 568773 bytes
-rw-r--r--runtime/spell/en.utf-8.splbin569230 -> 569204 bytes
-rw-r--r--runtime/spell/en/en_GB.diff16
-rw-r--r--runtime/spell/en/en_NZ.diff30
-rw-r--r--runtime/spell/en/en_US.diff6
-rw-r--r--runtime/spell/es/es_ES.diff60
-rw-r--r--runtime/spell/es/es_MX.diff18
-rw-r--r--runtime/spell/fo/fo_FO.diff4
-rw-r--r--runtime/spell/ku/ku_TR.diff104
-rw-r--r--runtime/spell/lv/lv_LV.diff0
-rw-r--r--runtime/spell/ms/ms_MY.diff8
-rw-r--r--runtime/spell/yi/yi.diff2
-rw-r--r--runtime/spell/yi/yi_tr.diff2
-rw-r--r--src/eval.c26
-rw-r--r--src/ex_cmds2.c8
-rw-r--r--src/ex_docmd.c12
-rw-r--r--src/ex_getln.c10
-rw-r--r--src/globals.h5
-rw-r--r--src/main.c6
-rw-r--r--src/normal.c3
-rw-r--r--src/option.c7
-rw-r--r--src/proto/spell.pro4
-rw-r--r--src/screen.c54
-rw-r--r--src/search.c23
-rw-r--r--src/spell.c308
-rw-r--r--src/testdir/test58.ok8
-rw-r--r--src/testdir/test59.ok8
-rw-r--r--src/ui.c11
-rw-r--r--src/version.h4
-rw-r--r--src/vim.h4
49 files changed, 3715 insertions, 529 deletions
diff --git a/runtime/autoload/csscomplete.vim b/runtime/autoload/csscomplete.vim
index 9461f39b8f..f67445439e 100644
--- a/runtime/autoload/csscomplete.vim
+++ b/runtime/autoload/csscomplete.vim
@@ -1,7 +1,7 @@
" Vim completion script
" Language: CSS 2.1
" Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2005 Sep 23
+" Last Change: 2005 Sep 27
function! csscomplete#CompleteCSS(findstart, base)
if a:findstart
@@ -304,7 +304,14 @@ else
elseif prop == 'z-index'
let values = ["auto"]
else
- return []
+ " If no property match it is possible we are outside of {} and
+ " trying to complete pseudo-(class|element)
+ let element = tolower(matchstr(line, '\zs[a-zA-Z1-6]*\ze:[^:[:space:]]\{-}$'))
+ if ",a,abbr,acronym,address,area,b,base,bdo,big,blockquote,body,br,button,caption,cite,code,col,colgroup,dd,del,dfn,div,dl,dt,em,fieldset,form,head,h1,h2,h3,h4,h5,h6,hr,html,i,img,input,ins,kbd,label,legend,li,link,map,meta,noscript,object,ol,optgroup,option,p,param,pre,q,samp,script,select,small,span,strong,style,sub,sup,table,tbody,td,textarea,tfoot,th,thead,title,tr,tt,ul,var," =~ ','.element.','
+ let values = ["first-child", "link", "visited", "hover", "active", "focus", "lang", "first-line", "first-letter", "before", "after"]
+ else
+ return []
+ endif
endif
" Complete values
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index 10dd28542d..efd528a153 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,28 +1,36 @@
" netrw.vim: Handles file transfer and remote directory listing across a network
" AUTOLOAD PORTION
-" Last Change: Aug 29, 2005
+" Date: Sep 29, 2005
+" Version: 72
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" Copyright: Copyright (C) 1999-2005 Charles E. Campbell, Jr. {{{1
" Permission is hereby granted to use and distribute this code,
" with or without modifications, provided that this copyright
" notice is copied with it. Like anything else that's free,
-" netrw.vim is provided *as is* and comes with no warranty
-" of any kind, either expressed or implied. By using this
-" plugin, you agree that in no event will the copyright
-" holder be liable for any damages resulting from the use
+" netrw.vim, netrwPlugin.vim, and netrwSettings.vim are provided
+" *as is* and comes with no warranty of any kind, either
+" expressed or implied. By using this plugin, you agree that
+" in no event will the copyright holder be liable for any damages
+" resulting from the use of this software.
" of this software.
"
" But be doers of the Word, and not only hearers, deluding your own selves {{{1
" (James 1:22 RSV)
" =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-let s:keepcpo= &cpo
-set cpo&vim
-" call Decho("doing autoload/netrw.vim")
+
+" Exception for &cp: {{{1
+if &cp || exists("g:loaded_netrw")
+ finish
+endif
if v:version < 700
echohl WarningMsg | echo "***netrw*** you need vim version 7.0 or later for version ".g:loaded_netrw." of netrw" | echohl None
finish
endif
+let g:loaded_netrw = "v72"
+let s:keepcpo = &cpo
+set cpo&vim
+" call Decho("doing autoload/netrw.vim")
" ---------------------------------------------------------------------
" Default values for global netrw variables {{{1
@@ -403,12 +411,14 @@ fun! netrw#NetRead(...)
".........................................
" ftp + <.netrc>: NetRead Method #2
elseif b:netrw_method == 2 " read with ftp + <.netrc>
-" call Decho("read via ftp+.netrc (method #2)")
+" call Decho("read via ftp+.netrc (method #2)")
let netrw_fname= b:netrw_fname
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
- exe "put ='"."get ".netrw_fname." ".tmpfile."'"
+" call Decho("filter input: ".getline("."))
+ exe "put ='".'get \"'.netrw_fname.'\" '.tmpfile."'"
+" call Decho("filter input: ".getline("."))
if exists("g:netrw_port") && g:netrw_port != ""
" call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
@@ -438,27 +448,33 @@ fun! netrw#NetRead(...)
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
put ='open '.g:netrw_machine.' '.g:netrw_port
+" call Decho("filter input: ".getline("."))
else
put ='open '.g:netrw_machine
+" call Decho("filter input: ".getline("."))
endif
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
- put =g:netrw_passwd
+" call Decho("filter input: ".getline("."))
+ put ='\"'.g:netrw_passwd.'\"'
+" call Decho("filter input: ".getline("."))
else
- put ='user '.g:netrw_uid.' '.g:netrw_passwd
+ put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
+" call Decho("filter input: ".getline("."))
endif
if exists("g:netrw_ftpmode") && g:netrw_ftpmode != ""
put =g:netrw_ftpmode
+" call Decho("filter input: ".getline("."))
endif
- put ='get '.netrw_fname.' '.tmpfile
+ put ='get \"'.netrw_fname.'\" '.tmpfile
+" call Decho("filter input: ".getline("."))
" perform ftp:
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password
-" call Decho('performing ftp -i -n')
norm! 1Gdd
" call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
@@ -502,7 +518,8 @@ fun! netrw#NetRead(...)
echohl Error | echo "***netrw*** neither wget nor fetch command is available" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
- exit
+" call Dret("NetRead")
+ return
endif
if match(b:netrw_fname,"#") == -1
@@ -581,7 +598,7 @@ fun! netrw#NetRead(...)
echohl Error | echo "***netrw*** fetch command not available" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
- exit
+" call Dret("NetRead")
endif
if exists("g:netrw_option") && g:netrw_option == ":http"
let netrw_option= "http"
@@ -655,7 +672,7 @@ fun! s:NetGetFile(readcmd, fname, method)
endif
else
let fname= a:fname
-" call Decho("(copied) fname<".fname.">")
+" call Decho("fname=a:fname<".fname.">")
endif
if a:readcmd[0] == '0'
@@ -688,8 +705,12 @@ fun! s:NetGetFile(readcmd, fname, method)
exe a:readcmd." ".v:cmdarg." ".fname
let line1 = curline + 1
let line2 = line("$") - lastline + 1
+
else
" not readable
+" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,fname<".a:fname."> method<".a:method.">)")
+ echohl WarningMsg | echo "***netrw*** file <".fname."> not readable"| echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
" call Dret("NetGetFile : fname<".fname."> not readable")
return
endif
@@ -729,7 +750,7 @@ fun! netrw#NetWrite(...) range
if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
echohl Error | echo "***netrw*** your ".substitute(tmpfile,'[^/]\+$','','e')." directory is missing!"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
-" call Dret("NetRead")
+" call Dret("NetWrite")
return
endif
@@ -839,9 +860,9 @@ fun! netrw#NetWrite(...) range
new
setlocal ff=unix
exe "put ='".g:netrw_ftpmode."'"
-" call Decho(" NetWrite: put ='".g:netrw_ftpmode."'")
- exe "put ='"."put ".tmpfile." ".netrw_fname."'"
-" call Decho("put ='"."put ".tmpfile." ".netrw_fname."'")
+" call Decho(" filter input: ".getline("."))
+ exe "put ='"."put ".tmpfile.' \"'.netrw_fname.'\"'."'"
+" call Decho(" filter input: ".getline("."))
if exists("g:netrw_port") && g:netrw_port != ""
" call Decho("executing: %!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port
@@ -868,16 +889,22 @@ fun! netrw#NetWrite(...) range
setlocal ff=unix
if exists("g:netrw_port") && g:netrw_port != ""
put ='open '.g:netrw_machine.' '.g:netrw_port
+" call Decho("filter input: ".getline("."))
else
put ='open '.g:netrw_machine
+" call Decho("filter input: ".getline("."))
endif
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
- put =g:netrw_passwd
+" call Decho("filter input: ".getline("."))
+ put ='\"'.g:netrw_passwd.'\"'
+" call Decho("filter input: ".getline("."))
else
- put ='user '.g:netrw_uid.' '.g:netrw_passwd
+ put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
+" call Decho("filter input: ".getline("."))
endif
- put ='put '.tmpfile.' '.netrw_fname
+ put ='put '.tmpfile.' \"'.netrw_fname.'\"'
+" call Decho("filter input: ".getline("."))
" save choice/id/password for future use
let b:netrw_lastfile = choice
@@ -885,7 +912,6 @@ fun! netrw#NetWrite(...) range
" -i : turns off interactive prompting from ftp
" -n unix : DON'T use <.netrc>, even though it exists
" -n win32: quit being obnoxious about password
-" call Decho('performing ftp -i -n')
norm! 1Gdd
" call Decho("executing: %!".g:netrw_ftp_cmd." -i -n")
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i -n"
@@ -1056,7 +1082,7 @@ fun! s:NetBrowse(dirname)
" analyze a:dirname and g:netrw_list_cmd
let dirpat = '^\(\w\{-}\)://\(\w\+@\)\=\([^/]\+\)/\(.*\)$'
let dirname = substitute(a:dirname,'\\','/','ge')
-" call Decho("dirpat<".dirpat.">")
+" call Decho("dirname<".dirname.">")
if dirname !~ dirpat
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** netrw doesn't understand your dirname<".dirname.">" | echohl None
@@ -1126,9 +1152,9 @@ fun! s:NetBrowse(dirname)
" call Decho("new path<".path.">")
" remote-read the requested file into current buffer
- enew!
+ keepjumps keepalt enew!
set ma
-" call Decho("exe file .method."://".user.machine."/".escape(path,s:netrw_cd_escape))
+" call Decho("exe file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape))
exe "file ".method."://".user.machine."/".escape(path,s:netrw_cd_escape)
exe "silent doau BufReadPre ".fname
silent call netrw#NetRead(method."://".user.machine."/".path)
@@ -1136,7 +1162,7 @@ fun! s:NetBrowse(dirname)
keepjumps 1d
" save certain window-oriented variables into buffer-oriented variables
- call s:BufWinVars()
+ call s:SetBufWinVars()
call s:NetOptionRestore()
setlocal nomod
@@ -1162,7 +1188,7 @@ fun! s:NetBrowse(dirname)
endif
else
" call Decho("generate a new buffer")
- enew!
+ keepjumps keepalt enew!
endif
" rename file to reflect where its from
@@ -1200,7 +1226,7 @@ fun! s:NetBrowse(dirname)
nnoremap <buffer> <silent> U :<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
nnoremap <buffer> <silent> v :call <SID>NetSplit(1)<cr>
nnoremap <buffer> <silent> x :call <SID>NetBrowseX(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()),1)<cr>
- nnoremap <buffer> <silent> <2-leftmouse> :call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
+ nnoremap <buffer> <silent> <2-leftmouse> :call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))<cr>
exe 'nnoremap <buffer> <silent> <del> :call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
exe 'vnoremap <buffer> <silent> <del> :call <SID>NetBrowseRm("'.user.machine.'","'.path.'")<cr>'
exe 'nnoremap <buffer> <silent> d :call <SID>NetMakeDir("'.user.machine.'")<cr>'
@@ -1260,6 +1286,7 @@ fun! s:NetBrowse(dirname)
if g:netrw_ftp_browse_reject != ""
exe "silent! g/".g:netrw_ftp_browse_reject."/keepjumps d"
endif
+ silent! keepjumps %s/\r$//e
" if there's no ../ listed, then put ./ and ../ in
let line1= line(".")
@@ -1274,9 +1301,9 @@ fun! s:NetBrowse(dirname)
keepjumps norm! 0
" more cleanup
- exe 'keepjumps silent! '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
- exe "keepjumps silent! ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
- exe "keepjumps silent! ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
+ exe 'silent! keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
+ exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
+ exe "silent! keepjumps ".w:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
endif
else
@@ -1333,33 +1360,33 @@ fun! s:NetBrowse(dirname)
keepjumps norm! 0
endif
- exe 'keepjumps silent '.w:netrw_bannercnt.',$s/ -> .*$//e'
- exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e'
- exe w:netrw_bannercnt
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$s/ -> .*$//e'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2\t\1/e'
+ exe 'silent keepjumps '.w:netrw_bannercnt
endif
if line("$") >= w:netrw_bannercnt
if g:netrw_sort_by =~ "^n"
call s:SetSort()
if g:netrw_sort_direction =~ 'n'
- exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'
else
- exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'
endif
- exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
endif
if w:netrw_longlist == 1
" shorten the list to keep its width <= winwidth characters
- exe "keepjumps silent ".w:netrw_bannercnt.',$s/\t[-dstrwx]\+/\t/e'
+ exe "silent keepjumps ".w:netrw_bannercnt.',$s/\t[-dstrwx]\+/\t/e'
endif
endif
endif
- " cleanup any windows mess at end-of-line
- keepjumps silent! %s/\r$//e
call s:NetrwWideListing()
if line("$") >= w:netrw_bannercnt
+ " place cursor on the top-left corner of the file listing
exe "keepjumps ".w:netrw_bannercnt
+ norm! 0
endif
call s:NetOptionRestore()
@@ -1449,7 +1476,7 @@ fun! s:NetGetWord()
let s:netrw_skipbrowse= 1
echo 'Pressing "a" also works'
elseif line("$") > w:netrw_bannercnt
- exe w:netrw_bannercnt
+ exe 'silent keepjumps '.w:netrw_bannercnt
endif
elseif w:netrw_longlist == 0
@@ -1690,7 +1717,7 @@ fun! s:NetBrowseX(fname,remote)
" create a local copy
let fname= tempname().".".exten
" call Decho("create a local copy of <".a:fname."> as <".fname.">")
- exe "keepjumps silent bot 1new ".a:fname
+ exe "silent keepjumps bot 1new ".a:fname
set bh=delete
exe "w! ".fname
q
@@ -1765,11 +1792,11 @@ fun! s:NetBrowseFtpCmd(path,cmd)
if w:netrw_method == 2 || w:netrw_method == 5
" ftp + <.netrc>: Method #2
if a:path != ""
- put ='cd '.a:path
-" call Decho("ftp: cd ".a:path)
+ put ='cd \"'.a:path.'\"'
+" call Decho('ftp: '.getline("."))
endif
exe "put ='".a:cmd."'"
-" call Decho("ftp: ".a:cmd)
+" call Decho("ftp: ".getline("."))
" redraw!|call inputsave()|call input("Pausing...")|call inputrestore()
if exists("g:netrw_port") && g:netrw_port != ""
" call Decho("exe ".g:netrw_silentxfer.curline.",$!".g:netrw_ftp_cmd." -i ".g:netrw_machine." ".g:netrw_port)
@@ -1791,13 +1818,13 @@ fun! s:NetBrowseFtpCmd(path,cmd)
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
- put =g:netrw_passwd
+ put ='\"'.g:netrw_passwd.'\"'
else
- put ='user '.g:netrw_uid.' '.g:netrw_passwd
+ put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
endif
if a:path != ""
- put ='cd '.a:path
+ put ='cd \"'.a:path.'\"'
endif
exe "put ='".a:cmd."'"
@@ -1815,14 +1842,14 @@ fun! s:NetBrowseFtpCmd(path,cmd)
" cleanup for Windows
if has("win32") || has("win95") || has("win64") || has("win16")
- keepjumps silent!! %s/\r$//e
+ silent! keepjumps! %s/\r$//e
endif
if a:cmd == "dir"
" infer directory/link based on the file permission string
- keepjumps silent! g/d\%([-r][-w][-x]\)\{3}/s@$@/@
- keepjumps silent! g/l\%([-r][-w][-x]\)\{3}/s/$/@/
+ silent! keepjumps g/d\%([-r][-w][-x]\)\{3}/s@$@/@
+ silent! keepjumps g/l\%([-r][-w][-x]\)\{3}/s/$/@/
if w:netrw_longlist == 0 || w:netrw_longlist == 2
- exe "keepjumps silent! ".curline.',$s/^\%(\S\+\s\+\)\{8}//e'
+ exe "silent! keepjumps ".curline.',$s/^\%(\S\+\s\+\)\{8}//e'
endif
endif
@@ -1860,9 +1887,9 @@ fun! s:NetrwListHide()
" Prune the list by hiding any files which match
" call Decho("pruning <".hide."> listhide<".listhide.">")
if g:netrw_hide == 1
- exe 'keepjumps silent '.w:netrw_bannercnt.',$g~'.hide.'~d'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$g~'.hide.'~d'
elseif g:netrw_hide == 2
- exe 'keepjumps silent '.w:netrw_bannercnt.',$v~'.hide.'~d'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$v~'.hide.'~d'
endif
endwhile
@@ -1996,10 +2023,10 @@ fun! s:NetrwWideListing()
exe "silent keepjumps norm! 0\<c-v>".newcolqty.'j$hx'.w:netrw_bannercnt.'G$p'
endif
exe "silent keepjumps ".newcolstart.','.newcolend.'d'
- exe w:netrw_bannercnt
+ exe 'silent keepjumps '.w:netrw_bannercnt
endwhile
exe "silent keepjumps ".w:netrw_bannercnt.',$s/\s\+$//e'
- set noma nomod
+ setlocal noma nomod
endif
" call Dret("NetrwWideListing")
@@ -2130,9 +2157,12 @@ fun! s:NetBookmarkDir(chg,curdir)
if exists("w:netrw_bannercnt") && line(".") <= w:netrw_bannercnt
" looks like a "b" was pressed while in the banner region
if line("$") > w:netrw_bannercnt
- exe w:netrw_bannercnt
+ exe 'silent keepjumps '.w:netrw_bannercnt
+ endif
+ if &ch > 1
+ " "clear" the message
+ echo ""
endif
- echo ""
" call Dret("NetBookmarkDir - ignoring")
return
endif
@@ -2229,12 +2259,10 @@ endfun
" ---------------------------------------------------------------------
" NetObtain: obtain file under cursor (for remote browsing support) {{{2
fun! s:NetObtain()
- if !exists("s:netrw_users_stl")
- let s:netrw_users_stl= &stl
- endif
let fname= expand("<cWORD>")
- exe 'set stl=%f\ %h%m%r%=Obtaining\ '.escape(fname,' ')
- redraw!
+
+ " NetrwStatusLine support - for obtaining support
+ call s:SetupNetrwStatusLine('%f %h%m%r%=%9*Obtaining '.fname)
" call Dfunc("NetObtain() method=".w:netrw_method)
if exists("w:netrw_method") && w:netrw_method =~ '[235]'
@@ -2277,11 +2305,11 @@ fun! s:NetObtain()
if exists("g:netrw_ftp") && g:netrw_ftp == 1
put =g:netrw_uid
- put =g:netrw_passwd
+ put ='\"'.g:netrw_passwd.'\"'
" call Decho('ftp: g:netrw_uid')
" call Decho('ftp: g:netrw_passwd')
else
- put ='user '.g:netrw_uid.' '.g:netrw_passwd
+ put ='user \"'.g:netrw_uid.'\" \"'.g:netrw_passwd.'\"'
" call Decho('user '.g:netrw_uid.' '.g:netrw_passwd)
endif
@@ -2306,12 +2334,14 @@ fun! s:NetObtain()
" restore
exe "silent! ".endline.",$d"
exe "keepjumps ".curline
- set noma nomod
+ setlocal noma nomod
else
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** this system doesn't support ftp" | echohl None
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
+ let &stl = s:netrw_users_stl
+ let &laststatus = s:netrw_users_ls
" call Dret("NetObtain")
return
endif
@@ -2335,7 +2365,8 @@ fun! s:NetObtain()
endif
" restore status line
- let &stl= s:netrw_users_stl
+ let &stl = s:netrw_users_stl
+ let &laststatus = s:netrw_users_ls
redraw!
" call Dret("NetObtain")
@@ -2404,7 +2435,7 @@ fun! netrw#DirBrowse(dirname)
" get cleared buffer
if bufnum < 0 || !bufexists(bufnum)
- keepalt enew!
+ keepjumps keepalt enew!
" call Decho("enew buffer")
else
exe "keepalt b ".bufnum
@@ -2496,7 +2527,7 @@ fun! netrw#DirBrowse(dirname)
nnoremap <buffer> <silent> U :<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
nnoremap <buffer> <silent> v :call <SID>NetSplit(3)<cr>
nnoremap <buffer> <silent> x :call <SID>NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)"<cr>
- nnoremap <buffer> <silent> <2-leftmouse> :exe "call <SID>LocalRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))"<cr>
+ nnoremap <buffer> <silent> <2-leftmouse> :call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
nnoremap <buffer> <silent> <s-up> :Pexplore<cr>
nnoremap <buffer> <silent> <s-down> :Nexplore<cr>
exe 'nnoremap <buffer> <silent> <del> :call <SID>LocalBrowseRm("'.b:netrw_curdir.'")<cr>'
@@ -2574,19 +2605,19 @@ fun! netrw#DirBrowse(dirname)
call s:SetSort()
if g:netrw_sort_direction =~ 'n'
- exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'
else
- exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'
endif
- exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{3}\///e'
else
if g:netrw_sort_direction =~ 'n'
- exe 'keepjumps silent '.w:netrw_bannercnt.',$sort'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$sort'
else
- exe 'keepjumps silent '.w:netrw_bannercnt.',$sort!'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$sort!'
endif
- exe 'keepjumps silent '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
+ exe 'silent keepjumps '.w:netrw_bannercnt.',$s/^\d\{-}\///e'
endif
endif
@@ -2594,14 +2625,16 @@ fun! netrw#DirBrowse(dirname)
call s:NetrwWideListing()
if exists("w:netrw_bannercnt") && line("$") > w:netrw_bannercnt
- exe w:netrw_bannercnt
+ " place cursor on the top-left corner of the file listing
+ exe 'silent '.w:netrw_bannercnt
+ norm! 0
endif
" record previous current directory
let w:netrw_prvdir= b:netrw_curdir
" save certain window-oriented variables into buffer-oriented variables
- call s:BufWinVars()
+ call s:SetBufWinVars()
call s:NetOptionRestore()
setlocal noma nomod nonu bh=hide nobl
@@ -2701,7 +2734,7 @@ fun! s:LocalBrowseList()
endwhile
" cleanup any windows mess at end-of-line
- keepjumps silent! %s/\r$//e
+ silent! keepjumps %s/\r$//e
setlocal ts=32
" call Dret("LocalBrowseList")
@@ -3032,12 +3065,8 @@ fun! netrw#Explore(indx,dosplit,style,...)
endif
endif
- " NetrwStatusLine support
+ " NetrwStatusLine support - for exploring support
let w:netrw_explore_indx= indx
- if !exists("s:netrw_users_stl")
- let s:netrw_users_stl= &stl
- endif
- set stl=%f\ %h%m%r%=%{NetrwStatusLine()}
" call Decho("explorelist<".join(w:netrw_explore_list,',')."> len=".w:netrw_explore_listlen)
" sanity check
@@ -3050,15 +3079,21 @@ fun! netrw#Explore(indx,dosplit,style,...)
endif
exe "let dirfile= w:netrw_explore_list[".indx."]"
-" call Decho("dirfile<".dirfile."> indx=".indx)
+" call Decho("dirfile=w:netrw_explore_list[indx=".indx."]= <".dirfile.">")
let newdir= substitute(dirfile,'/[^/]*$','','e')
" call Decho("newdir<".newdir.">")
+
" call Decho("calling LocalBrowse(newdir<".newdir.">)")
call s:LocalBrowse(newdir)
- call search(substitute(dirfile,"^.*/","",""),"W")
+ if w:netrw_longlist == 0 || w:netrw_longlist == 1
+ call search('^'.substitute(dirfile,"^.*/","","").'\>',"W")
+ else
+ call search('\<'.substitute(dirfile,"^.*/","","").'\>',"w")
+ endif
let w:netrw_explore_mtchcnt = indx + 1
let w:netrw_explore_bufnr = bufnr(".")
let w:netrw_explore_line = line(".")
+ call s:SetupNetrwStatusLine('%f %h%m%r%=%9*%{NetrwStatusLine()}')
" call Decho("explore: mtchcnt=".w:netrw_explore_mtchcnt." bufnr=".w:netrw_explore_bufnr." line#".w:netrw_explore_line)
else
@@ -3078,12 +3113,73 @@ fun! netrw#Explore(indx,dosplit,style,...)
endfun
" ---------------------------------------------------------------------
+" SetupNetrwStatusLine: {{{2
+fun! s:SetupNetrwStatusLine(statline)
+" call Dfunc("SetupNetrwStatusLine(statline<".a:statline.">)")
+
+ if !exists("s:netrw_setup_statline")
+ let s:netrw_setup_statline= 1
+" call Decho("do first-time status line setup")
+
+ if !exists("s:netrw_users_stl")
+ let s:netrw_users_stl= &stl
+ endif
+ if !exists("s:n