summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvimboss <devnull@localhost>2006-02-01 21:51:12 +0000
committervimboss <devnull@localhost>2006-02-01 21:51:12 +0000
commit797f69919206d6ae2783e0fcb46f7afa16d0a2e7 (patch)
treeff6cda8c2a6fd2ea026f1f182195752feb5f7dac
parent9fb1201ad7cbd7861c95549109b69f3ed74e3a10 (diff)
downloadvim-797f69919206d6ae2783e0fcb46f7afa16d0a2e7.tar.gz
updated for version 7.0191
-rw-r--r--runtime/autoload/netrw.vim373
-rw-r--r--runtime/autoload/netrwSettings.vim18
-rw-r--r--runtime/doc/autocmd.txt8
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--runtime/doc/options.txt8
-rw-r--r--runtime/doc/pi_netrw.txt262
-rw-r--r--runtime/doc/tags18
-rw-r--r--src/proto/eval.pro2
-rw-r--r--src/version.h4
9 files changed, 503 insertions, 194 deletions
diff --git a/runtime/autoload/netrw.vim b/runtime/autoload/netrw.vim
index bd3e28e2..3a184a14 100644
--- a/runtime/autoload/netrw.vim
+++ b/runtime/autoload/netrw.vim
@@ -1,7 +1,7 @@
" netrw.vim: Handles file transfer and remote directory listing across a network
" AUTOLOAD PORTION
-" Date: Nov 28, 2005
-" Version: 76
+" Date: Jan 30, 2006
+" Version: 78
" 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
@@ -23,7 +23,7 @@
if &cp || exists("g:loaded_netrw")
finish
endif
-let g:loaded_netrw = "v76"
+let g:loaded_netrw = "v78"
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
@@ -32,8 +32,12 @@ let s:keepcpo= &cpo
set cpo&vim
" call Decho("doing autoload/netrw.vim")
+" ======================
+" Netrw Variables: {{{1
+" ======================
+
" ---------------------------------------------------------------------
-" Default values for netrw's global protocol variables {{{1
+" Default values for netrw's global protocol variables {{{2
if !exists("g:netrw_dav_cmd")
let g:netrw_dav_cmd = "cadaver"
endif
@@ -84,14 +88,17 @@ if has("win32") || has("win95") || has("win64") || has("win16")
endif
" ---------------------------------------------------------------------
-" Default values for netrw's global variables {{{1
-" Default values - a-c ---------- {{{2
+" Default values for netrw's global variables {{{2
+" Default values - a-c ---------- {{{3
if !exists("g:netrw_alto")
let g:netrw_alto= 0
endif
if !exists("g:netrw_altv")
let g:netrw_altv= 0
endif
+if !exists("g:netrw_browse_split")
+ let g:netrw_browse_split= 0
+endif
if !exists("g:netrw_cygwin")
if has("win32") || has("win95") || has("win64") || has("win16")
if &shell == "bash"
@@ -103,7 +110,7 @@ if !exists("g:netrw_cygwin")
let g:netrw_cygwin= 0
endif
endif
-" Default values - d-f ---------- {{{2
+" Default values - d-f ---------- {{{3
if !exists("g:NETRW_DIRHIST_CNT")
let g:NETRW_DIRHIST_CNT= 0
endif
@@ -123,7 +130,7 @@ endif
if !exists("g:netrw_ftpmode")
let g:netrw_ftpmode= "binary"
endif
-" Default values - h-lh ---------- {{{2
+" Default values - h-lh ---------- {{{3
if !exists("g:netrw_hide")
let g:netrw_hide= 1
endif
@@ -142,7 +149,7 @@ endif
if !exists("g:netrw_list_hide")
let g:netrw_list_hide= ""
endif
-" Default values - lh-lz ---------- {{{2
+" Default values - lh-lz ---------- {{{3
if !exists("g:netrw_local_mkdir")
let g:netrw_local_mkdir= "mkdir"
endif
@@ -159,7 +166,7 @@ endif
if g:netrw_longlist == 1
let g:netrw_list_cmd= g:netrw_list_cmd." -l"
endif
-" Default values - m-r ---------- {{{2
+" Default values - m-r ---------- {{{3
if !exists("g:netrw_maxfilenamelen")
let g:netrw_maxfilenamelen= 32
endif
@@ -178,7 +185,7 @@ endif
if !exists("g:netrw_rmf_cmd")
let g:netrw_rmf_cmd = g:netrw_ssh_cmd." HOSTNAME rm -f"
endif
-" Default values - s ---------- {{{2
+" Default values - s ---------- {{{3
if exists("g:netrw_silent") && g:netrw_silent != 0
let g:netrw_silentxfer= "silent "
else
@@ -198,7 +205,7 @@ endif
if !exists("g:netrw_ssh_browse_reject")
let g:netrw_ssh_browse_reject='^total\s\+\d\+$'
endif
-" Default values - t-w ---------- {{{2
+" Default values - t-w ---------- {{{3
if !exists("g:netrw_timefmt")
let g:netrw_timefmt= "%c"
endif
@@ -209,7 +216,7 @@ if !exists("g:netrw_winsize")
let g:netrw_winsize= ""
endif
" ---------------------------------------------------------------------
-" Default values for netrw's script variables: {{{1
+" Default values for netrw's script variables: {{{2
if !exists("s:netrw_cd_escape")
if has("win32") || has("win95") || has("win64") || has("win16")
let s:netrw_cd_escape="#% "
@@ -230,8 +237,12 @@ endif
" files read by network transfer aren't appropriately highlighted.
"let g:decho_bufenter = 1 "Decho
+" ==============================
+" Netrw Utility Functions: {{{1
+" ==============================
+
" ------------------------------------------------------------------------
-" NetSavePosn: saves position of cursor on screen {{{1
+" NetSavePosn: saves position of cursor on screen {{{2
fun! netrw#NetSavePosn()
" call Dfunc("NetSavePosn()")
" Save current line and column
@@ -248,7 +259,7 @@ fun! netrw#NetSavePosn()
endfun
" ------------------------------------------------------------------------
-" NetRestorePosn: restores the cursor and file position as saved by NetSavePosn() {{{1
+" NetRestorePosn: restores the cursor and file position as saved by NetSavePosn() {{{2
fun! netrw#NetRestorePosn()
" call Dfunc("NetRestorePosn() winnr=".w:netrw_winnr." line=".w:netrw_line." col=".w:netrw_col." hline=".w:netrw_hline)
let eikeep= &ei
@@ -275,15 +286,19 @@ fun! netrw#NetRestorePosn()
" call Dret("NetRestorePosn")
endfun
+" ===============================
+" Netrw Transfer Functions: {{{1
+" ===============================
+
" ------------------------------------------------------------------------
-" NetRead: responsible for reading a file over the net {{{1
+" NetRead: responsible for reading a file over the net {{{2
fun! netrw#NetRead(...)
" call Dfunc("NetRead(a:1<".a:1.">)")
" save options
call s:NetOptionSave()
- " Special Exception: if a file is named "0r", then
+ " Special Exception: if a file is named "0r", then {{{3
" "0r" will be used to read the
" following files instead of "r"
if a:0 == 0
@@ -297,7 +312,7 @@ fun! netrw#NetRead(...)
let ichoice = 1
endif
- " get name of a temporary file and set up shell-quoting character
+ " get name of a temporary file and set up shell-quoting character {{{3
let tmpfile= tempname()
let tmpfile= substitute(tmpfile,'\','/','ge')
if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
@@ -377,7 +392,7 @@ fun! netrw#NetRead(...)
let tmpfile = fnamemodify(tmpfile,':t')
endif
- " Determine method of read (ftp, rcp, etc)
+ " Determine method of read (ftp, rcp, etc) {{{3
call s:NetMethod(choice)
" Check if NetBrowse() should be handling this request
@@ -389,21 +404,21 @@ fun! netrw#NetRead(...)
endif
" use filename's suffix for the temporary file
- if b:netrw_fname =~ '\.[^./]\+'
- let suffix = substitute(b:netrw_fname,'^.*\(\.[^./]\+\)','\1','e')
+ if b:netrw_fname =~ '\.[^./]\+$'
+ let suffix = substitute(b:netrw_fname,'^.*\(\.[^./]\+\)$','\1','e')
let tmpfile= substitute(tmpfile,"$",suffix,'e')
-" call Decho("chgd tmpfile<".tmpfile."> (added ".suffix." suffix)")
+" call Decho("chgd tmpfile<".tmpfile."> (added ".suffix." suffix) netrw_fname<".b:netrw_fname.">")
endif
" ============
- " Perform Read
- " ============
+ " Perform Protocol-Based Read {{{3
+ " ===========================
if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
echo "(netrw) Processing your read request..."
endif
".........................................
- " rcp: NetRead Method #1
+ " rcp: NetRead Method #1 {{{3
if b:netrw_method == 1 " read with rcp
" call Decho("read via rcp (method #1)")
" ER: noting done with g:netrw_uid yet?
@@ -430,7 +445,7 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- " ftp + <.netrc>: NetRead Method #2
+ " ftp + <.netrc>: NetRead Method #2 {{{3
elseif b:netrw_method == 2 " read with ftp + <.netrc>
" call Decho("read via ftp+.netrc (method #2)")
let netrw_fname= b:netrw_fname
@@ -460,7 +475,7 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- " ftp + machine,id,passwd,filename: NetRead Method #3
+ " ftp + machine,id,passwd,filename: NetRead Method #3 {{{3
elseif b:netrw_method == 3 " read with ftp + machine, id, passwd, and fname
" Construct execution string (four lines) which will be passed through filter
" call Decho("read via ftp+mipf (method #3)")
@@ -512,7 +527,7 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- " scp: NetRead Method #4
+ " scp: NetRead Method #4 {{{3
elseif b:netrw_method == 4 " read with scp
" call Decho("read via scp (method #4)")
if exists("g:netrw_port") && g:netrw_port != ""
@@ -522,17 +537,18 @@ fun! netrw#NetRead(...)
endif
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile)
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".cygtmpfile
+" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".cygtmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".cygtmpfile
else
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile)
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')." ".tmpfile
+" call Decho("executing: !".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".tmpfile)
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."' ".tmpfile
endif
let result = s:NetGetFile(readcmd, tmpfile, b:netrw_method)
let b:netrw_lastfile = choice
".........................................
- elseif b:netrw_method == 5 " read with http (wget)
+ " http: NetRead Method #5 (wget) {{{3
+ elseif b:netrw_method == 5
" call Decho("read via http (method #5)")
if g:netrw_http_cmd == ""
if !exists("g:netrw_quiet")
@@ -564,8 +580,8 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- " cadaver: NetRead Method #6
- elseif b:netrw_method == 6 " read with cadaver
+ " cadaver: NetRead Method #6 {{{3
+ elseif b:netrw_method == 6
" call Decho("read via cadaver (method #6)")
" Construct execution string (four lines) which will be passed through filter
@@ -596,8 +612,8 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- " rsync: NetRead Method #7
- elseif b:netrw_method == 7 " read with rsync
+ " rsync: NetRead Method #7 {{{3
+ elseif b:netrw_method == 7
" call Decho("read via rsync (method #7)")
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
@@ -611,9 +627,9 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- " fetch: NetRead Method #8
+ " fetch: NetRead Method #8 {{{3
" fetch://[user@]host[:http]/path
- elseif b:netrw_method == 8 " read with fetch
+ elseif b:netrw_method == 8
if g:netrw_fetch_cmd == ""
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** fetch command not available" | echohl None
@@ -640,8 +656,8 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- " sftp: NetRead Method #9
- elseif b:netrw_method == 9 " read with sftp
+ " sftp: NetRead Method #9 {{{3
+ elseif b:netrw_method == 9
" call Decho("read via sftp (method #4)")
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
@@ -656,12 +672,13 @@ fun! netrw#NetRead(...)
let b:netrw_lastfile = choice
".........................................
- else " Complain
+ " Complain {{{3
+ else
echo "***warning*** unable to comply with your request<" . choice . ">"
endif
endwhile
- " cleanup
+ " cleanup {{{3
" call Decho("cleanup")
if exists("b:netrw_method")
unlet b:netrw_method
@@ -673,7 +690,7 @@ fun! netrw#NetRead(...)
endfun
" ------------------------------------------------------------------------
-" NetGetFile: Function to read temporary file "tfile" with command "readcmd". {{{1
+" NetGetFile: Function to read temporary file "tfile" with command "readcmd". {{{2
fun! s:NetGetFile(readcmd, tfile, method)
" call Dfunc("NetGetFile(readcmd<".a:readcmd.">,tfile<".a:tfile."> method<".a:method.">)")
@@ -715,13 +732,14 @@ fun! s:NetGetFile(readcmd, tfile, method)
elseif rfile =~ '\.tar$'
call tar#Browse(tfile)
else
+" call Decho("edit temporary file")
e
endif
" rename buffer back to remote filename
- keepalt exe "file ".rfile
+ keepalt exe "file ".escape(rfile,' ')
filetype detect
-" call Dredir("ls!","renamed buffer back to remote filename<".rfile.">")
+" call Dredir("ls!","renamed buffer back to remote filename<".rfile."> : expand(%)<".expand("%").">")
let line1 = 1
let line2 = line("$")
@@ -764,7 +782,7 @@ fun! s:NetGetFile(readcmd, tfile, method)
endfun
" ------------------------------------------------------------------------
-" NetWrite: responsible for writing a file over the net {{{1
+" NetWrite: responsible for writing a file over the net {{{2
fun! netrw#NetWrite(...) range
" call Dfunc("NetWrite(a:0=".a:0.")")
@@ -772,7 +790,7 @@ fun! netrw#NetWrite(...) range
let mod= 0
call s:NetOptionSave()
- " Get Temporary Filename
+ " Get Temporary Filename {{{3
let tmpfile= tempname()
if !isdirectory(substitute(tmpfile,'[^/]\+$','','e'))
echohl Error | echo "***netrw*** your ".substitute(tmpfile,'[^/]\+$','','e')." directory is missing!"
@@ -800,6 +818,7 @@ fun! netrw#NetWrite(...) range
while ichoice <= a:0
+ " Process arguments: {{{3
" attempt to repeat with previous host-file-etc
if exists("b:netrw_lastfile") && a:0 == 0
" call Decho("using b:netrw_lastfile<" . b:netrw_lastfile . ">")
@@ -860,19 +879,19 @@ fun! netrw#NetWrite(...) range
let tmpfile = fnamemodify(tmpfile,':t')
endif
- " Determine method of read (ftp, rcp, etc)
+ " Determine method of read (ftp, rcp, etc) {{{3
call s:NetMethod(choice)
" =============
- " Perform Write
- " =============
+ " Perform Protocol-Based Write {{{3
+ " ============================
if exists("g:netrw_silent") && g:netrw_silent == 0 && &ch >= 1
echo "(netrw) Processing your write request..."
endif
".........................................
- " rcp: NetWrite Method #1
- if b:netrw_method == 1 " write with rcp
+ " rcp: NetWrite Method #1 {{{3
+ if b:netrw_method == 1
" call Decho("write via rcp (method #1)")
if s:netrw_has_nt_rcp == 1
if exists("g:netrw_uid") && ( g:netrw_uid != "" )
@@ -892,8 +911,8 @@ fun! netrw#NetWrite(...) range
let b:netrw_lastfile = choice
".........................................
- " ftp + <.netrc>: NetWrite Method #2
- elseif b:netrw_method == 2 " write with ftp + <.netrc>
+ " ftp + <.netrc>: NetWrite Method #2 {{{3
+ elseif b:netrw_method == 2
let netrw_fname = b:netrw_fname
new
setlocal ff=unix
@@ -920,8 +939,8 @@ fun! netrw#NetWrite(...) range
let b:netrw_lastfile = choice
".........................................
- " ftp + machine, id, passwd, filename: NetWrite Method #3
- elseif b:netrw_method == 3 " write with ftp + machine, id, passwd, and fname
+ " ftp + machine, id, passwd, filename: NetWrite Method #3 {{{3
+ elseif b:netrw_method == 3
let netrw_fname= b:netrw_fname
new
setlocal ff=unix
@@ -964,8 +983,8 @@ fun! netrw#NetWrite(...) range
bd!
".........................................
- " scp: NetWrite Method #4
- elseif b:netrw_method == 4 " write with scp
+ " scp: NetWrite Method #4 {{{3
+ elseif b:netrw_method == 4
if exists("g:netrw_port") && g:netrw_port != ""
let useport= " -P ".g:netrw_port
else
@@ -973,16 +992,16 @@ fun! netrw#NetWrite(...) range
endif
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".cygtmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'"
else
-" call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
- exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&')
+" call Decho("executing: !".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'")
+ exe g:netrw_silentxfer."!".g:netrw_scp_cmd.useport." ".tmpfile." '".g:netrw_machine.":".escape(b:netrw_fname,' ?&')."'"
endif
let b:netrw_lastfile = choice
".........................................
- " http: NetWrite Method #5
+ " http: NetWrite Method #5 {{{3
elseif b:netrw_method == 5
if !exists("g:netrw_quiet")
echohl Error | echo "***netrw*** currently <netrw.vim> does not support writing using http:" | echohl None
@@ -990,8 +1009,8 @@ fun! netrw#NetWrite(...) range
endif
".........................................
- " dav: NetWrite Method #6
- elseif b:netrw_method == 6 " write with cadaver
+ " dav: NetWrite Method #6 (cadaver) {{{3
+ elseif b:netrw_method == 6
" call Decho("write via cadaver (method #6)")
" Construct execution string (four lines) which will be passed through filter
@@ -1020,8 +1039,8 @@ fun! netrw#NetWrite(...) range
let b:netrw_lastfile = choice
".........................................
- " rsync: NetWrite Method #7
- elseif b:netrw_method == 7 " write with rsync
+ " rsync: NetWrite Method #7 {{{3
+ elseif b:netrw_method == 7
if g:netrw_cygwin == 1
let cygtmpfile=substitute(tmpfile,'^\(\a\):','/cygdrive/\1/','e')
" call Decho("executing: !".g:netrw_rsync_cmd." ".cygtmpfile." ".g:netrw_machine.":".escape(b:netrw_fname,' ?&'))
@@ -1033,8 +1052,8 @@ fun! netrw#NetWrite(...) range
let b:netrw_lastfile = choice
".........................................
- " scp: NetWrite Method #9
- elseif b:netrw_method == 9 " write with sftp
+ " sftp: NetWrite Method #9 {{{3
+ elseif b:netrw_method == 9
let netrw_fname= b:netrw_fname
if exists("g:netrw_uid") && ( g:netrw_uid != "" )
let uid_machine = g:netrw_uid .'@'. g:netrw_machine
@@ -1051,12 +1070,13 @@ fun! netrw#NetWrite(...) range
let b:netrw_lastfile= choice
".........................................
- else " Complain
+ " Complain {{{3
+ else
echo "***warning*** unable to comply with your request<" . choice . ">"
endif
endwhile
- " cleanup
+ " cleanup {{{3
" call Decho("cleanup")
let result=delete(tmpfile)
call s:NetOptionRestore()
@@ -1072,6 +1092,7 @@ endfun
" Remote Directory Browsing Support: {{{1
" ===========================================
+" ---------------------------------------------------------------------
" NetBrowse: This function uses the command in g:netrw_list_cmd to get a list {{{2
" of the contents of a remote directory. It is assumed that the
" g:netrw_list_cmd has a string, HOSTNAME, that needs to be substituted
@@ -1235,10 +1256,10 @@ fun! s:NetBrowse(dirname)
" call Decho("exe file ".escape(bufname,s:netrw_cd_escape))
exe 'file '.escape(bufname,s:netrw_cd_escape)
" call Decho("renaming file to bufname<".bufname.">")
- setlocal bh=hide bt=nofile nobl nonu
+ setlocal bh=hide bt=nofile nobl nonu noswf
" save current directory on directory history list
- call <SID>NetBookmarkDir(3,expand("%"))
+ call s:NetBookmarkDir(3,expand("%"))
" set up buffer-local mappings
" call Decho("set up buffer-local mappings")
@@ -1256,6 +1277,7 @@ fun! s:NetBrowse(dirname)
nnoremap <buffer> <silent> i :call <SID>NetLongList(0)<cr>
nnoremap <buffer> <silent> o :call <SID>NetSplit(0)<cr>
nnoremap <buffer> <silent> O :call <SID>NetObtain()<cr>
+ nnoremap <buffer> <silent> P :call <SID>NetPrevWinOpen(0)<cr>
nnoremap <buffer> <silent> q :<c-u>call <SID>NetBookmarkDir(2,expand("%"))<cr>
nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<cr>
nnoremap <buffer> <silent> s :call <SID>NetSaveWordPosn()<bar>let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))<bar>call <SID>NetRestoreWordPosn()<cr>
@@ -1263,7 +1285,7 @@ fun! s:NetBrowse(dirname)
nnoremap <buffer> <silent> u :<c-u>call <SID>NetBookmarkDir(4,expand("%"))<cr>
nnoremap <buffer> <silent> U :<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
nnoremap <buffer> <silent> v :call <SID>NetSplit(1)<cr>
- nnoremap <buffer> <silent> x :call <SID>NetBrowseX(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()),1)<cr>
+ nnoremap <buffer> <silent> x :call netrw#NetBrowseX(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()),1)<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>'
@@ -1446,6 +1468,13 @@ fun! s:NetBrowseChgDir(dirname,newdir)
if newdir !~ '[\/]$'
" handling a file
let dirname= dirname.newdir
+ if g:netrw_browse_split == 1
+ new
+ wincmd _
+ elseif g:netrw_browse_split == 2
+ rightb vert new
+ wincmd |
+ endif
" call Decho("handling a file: dirname<".dirname.">")
elseif newdir == './'
@@ -1479,7 +1508,7 @@ fun! s:NetBrowseChgDir(dirname,newdir)
endfun
" ---------------------------------------------------------------------
-" NetGetWord: it gets the directory named under the cursor
+" NetGetWord: it gets the directory named under the cursor {{{2
fun! s:NetGetWord()
" call Dfunc("NetGetWord() line#".line("."))
call s:UseBufWinVars()
@@ -1651,7 +1680,7 @@ fun! s:NetBrowseRm(usrhost,path) range
" refresh the directory
let curline= line(".")-1
" call Decho("refresh the directory")
- call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))
+ call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
exe curline
" call Dret("NetBrowseRm")
@@ -1692,7 +1721,7 @@ fun! s:NetBrowseRename(usrhost,path) range
" refresh the directory
let curline= line(".")
- call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),'./'))
+ call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
exe "keepjumps ".curline
" call Dret("NetBrowseRename")
endfun
@@ -1721,29 +1750,29 @@ endfun
" =2 : local and o
" =3 : local and v
fun! s:NetSplit(mode)
-" call Dfunc("NetSplit(mode=".a:mode.")")
+" call Dfunc("NetSplit(mode=".a:mode.") alto=".g:netrw_alto." altv=".g:netrw_altv)
call s:SaveWinVars()
if a:mode == 0
exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"
call s:CopyWinVars()
exe "norm! 0"
- call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))
+ call s:NetBrowse(s:NetBrowseChgDir(expand("%"),s:NetGetWord()))
elseif a:mode ==1
exe (g:netrw_altv? "rightb " : "lefta ").g:netrw_winsize."wincmd v"
call s:CopyWinVars()
exe "norm! 0"
- call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),<SID>NetGetWord()))
+ call s:NetBrowse(s:NetBrowseChgDir(expand("%"),s:NetGetWord()))
elseif a:mode ==2
exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"
call s:CopyWinVars()
exe "norm! 0"
- call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
+ call s:LocalBrowse(s:LocalBrowseChgDir(b:netrw_curdir,s:NetGetWord()))
else
exe (g:netrw_altv? "rightb " : "lefta ").g:netrw_winsize."wincmd v"
call s:CopyWinVars()
exe "norm! 0"
- call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))
+ call s:LocalBrowse(s:LocalBrowseChgDir(b:netrw_curdir,s:NetGetWord()))
endif
" call Dret("NetSplit")
@@ -1752,8 +1781,8 @@ endfun
" ---------------------------------------------------------------------
" NetBrowseX: allows users to write custom functions to operate on {{{2
" files given their extension. Passes 0=local, 1=remote
-fun! s:NetBrowseX(fname,remote)
-" call Dfunc("NetBrowseX(".a:fname." remote=".a:remote.")")
+fun! netrw#NetBrowseX(fname,remote)
+" call Dfunc("NetBrowseX(fname<".a:fname."> remote=".a:remote.")")
" set up the filename
" (lower case the extension, make a local copy of a remote file)
@@ -1764,6 +1793,23 @@ fun! s:NetBrowseX(fname,remote)
let fname= escape(a:fname,"%#")
" call Decho("fname<".fname."> after escape()")
+ " seems kde systems often have gnome-open due to dependencies, even though
+ " gnome-open's subsidiary display tools are largely absent. Kde systems
+ " usually have "kicker" running, though... (tnx Mikolaj Machowski)
+ if !exists("s:haskicker")
+ if has("unix")
+ let v:shell_error=0
+ silent! let s:haskicker= system('ps -e') =~ 'kicker'
+ if v:shell_error
+ let s:haskicker = 0
+ let v:shell_error = 0
+ endif
+ else
+ let s:haskicker= 0
+ endif
+" call Decho("setting s:haskicker=".s:haskicker)
+ endif
+
if a:remote == 1
" create a local copy
let fname= tempname().".".exten
@@ -1783,18 +1829,31 @@ fun! s:NetBrowseX(fname,remote)
endif
" call Decho("redir:".redir.":")
+ if exists("g:netrw_browsex_viewer") && executable(g:netrw_browsex_viewer)
+ if g:netrw_browsex_viewer == '-'
+ call netrwFileHandlers#Init()
+ if exten != "" && exists("*netrwFileHandlers#NFH_".exten)
+" call Decho("let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")')
+ exe "let ret= netrwFileHandlers#NFH_".exten.'("'.fname.'")'
+ endif
+ else
+" call Decho("exe silent !".g:netrw_browsex_viewer." '".escape(fname,'%#')."' ".redir)
+ exe "silent !".g:netrw_browsex_viewer." '".escape(fname,'%#')."'".redir
+ let ret= v:shell_error
+ endif
+
" execute the file handler
- if has("win32") || has("win64")
+ elseif has("win32") || has("win64")
" call Decho('exe silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"')
exe 'silent !start rundll32 url.dll,FileProtocolHandler "'.escape(fname, '%#').'"'
let ret= v:shell_error
- elseif has("unix") && executable("gnome-open")
+ elseif has("unix") && executable("gnome-open") && !s:haskicker
" call Decho("exe silent !gnome-open '".escape(fname,'%#')."' ".redir)
exe "silent !gnome-open '".escape(fname,'%#')."'".redir
let ret= v:shell_error
- elseif has("unix") && executable("kfmclient")
+ elseif has("unix") && executable("kfmclient") && s:haskicker
" call Decho("exe silent !kfmclient exec '".escape(fname,'%#')."' ".redir)
exe "silent !kfmclient exec '".escape(fname,'%#')."' ".redir
let ret= v:shell_error
@@ -1969,7 +2028,7 @@ fun! s:NetHideEdit(islocal)
if a:islocal == 0
silent call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
else
- silent call s:NetRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"),a:islocal)
+ silent call s:NetRefresh(s:LocalBrowseChgDir(b:netrw_curdir,"./"),a:islocal)
endif
" call Dret("NetHideEdit")
@@ -1989,7 +2048,7 @@ fun! s:NetSortSequence(mode)
if a:mode == 0
silent call s:NetBrowse(s:NetBrowseChgDir(expand("%"),'./'))
else
- silent call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"))
+ silent call s:LocalBrowse(s:LocalBrowseChgDir(b:netrw_curdir,"./"))
endif
" call Dret("NetSortSequence")
@@ -2025,9 +2084,9 @@ fun! s:NetLongList(mode)
" refresh the listing
if a:mode == 0
- silent call <SID>NetBrowse(<SID>NetBrowseChgDir(expand("%"),"./"))
+ silent call s:NetBrowse(s:NetBrowseChgDir(expand("%"),"./"))
else
- silent call s:LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,"./"))
+ silent call s:LocalBrowse(s:LocalBrowseChgDir(b:netrw_curdir,"./"))
endif
" keep cursor on the filename
@@ -2434,6 +2493,82 @@ fun! s:NetObtain()
" call Dret("NetObtain")
endfun
+" ---------------------------------------------------------------------
+" NetPrevWinOpen: opoen file/directory in previous window. {{{2
+" If there's only one window, then the window will first be split.
+fun! s:NetPrevWinOpen(islocal)
+" call Dfunc("NetPrevWinOpen(islocal=".a:islocal.")")
+
+ " get last window number and the word currently under the cursor
+ let lastwinnr = winnr("$")
+ let curword = s:NetGetWord()
+ let curdir = b:netrw_curdir
+" call Decho("lastwinnr=".lastwinnr." curword<".curword.">")
+
+ let didsplit = 0
+ if lastwinnr == 1
+ " if only one window, open a new one first
+" call Decho("only one window, so open a new one (g:netrw_alto=".g:netrw_alto.")")
+ exe (g:netrw_alto? "bel " : "abo ").g:netrw_winsize."wincmd s"
+ let didsplit = 1
+
+ else
+ wincmd p
+ " if the previous window's buffer has been changed (is modified),
+ " and it doesn't appear in any other extant window, then ask the
+ " user if s/he wants to abandon modifications therein.
+ let bnr = winbufnr(0)
+ let bnrcnt = 0
+ if &mod
+ windo if winbufnr(0) == bnr | let bnrcnt=bnrcnt+1 | endif
+" call Decho("bnr=".bnr." bnrcnt=".bnrcnt)
+ if bnrcnt == 1
+ let bufname= bufname(winbufnr(winnr()))
+ let choice= confirm("Save modified file<".bufname.">?","&Yes\n&No\n&Cancel")
+
+ if choice == 1
+ " Yes -- write file & then browse
+ let v:errmsg= ""
+ silent w
+ if v:errmsg != ""
+ echohl Error | echo "***netrw*** "unable to write <".bufname.">!" | echohl None
+ call inputsave()|call input("Press <cr> to continue")|call inputrestore()
+ if didsplit
+ q
+ else
+ wincmd p
+ endif
+" call Dret("NetPrevWinOpen : unable to write <".bufname.">")
+ return
+ endif
+
+ elseif choice == 2
+ " No -- don't worry about changed file, just browse anyway
+ set nomod
+ echohl WarningMsg | echo "***netrw*** ".bufname." changes abandoned" | echohl None
+
+ else
+ " Cancel -- don't do this
+ if didsplit
+ q
+ else
+ wincmd p
+ endif
+" call Dret("NetPrevWinOpen : cancelled")
+ return
+ endif
+ endif
+ endif
+ endif
+
+ if a:islocal
+ call s:LocalBrowse(s:LocalBrowseChgDir(curdir,curword))
+ else
+ call s:NetBrowse(s:NetBrowseChgDir(expand("%"),curword))
+ endif
+" call Dret("NetPrevWinOpen")
+endfun
+
" ==========================================
" Local Directory Browsing Support: {{{1
" ==========================================
@@ -2445,7 +2580,7 @@ fun! s:LocalBrowse(dirname)
" the BufEnter event causes triggering when attempts to write to
" the DBG buffer are made.
if isdirectory(a:dirname)
- call netrw#DirBrowse(a:dirname)
+ silent! call netrw#DirBrowse(a:dirname)
endif
" not a directory, ignore it
endfun
@@ -2462,6 +2597,7 @@ fun! netrw#DirBrowse(dirname)
" call Dret("DirBrowse")
return
endif
+
call s:NetOptionSave()
if v:version < 603
@@ -2550,10 +2686,13 @@ fun! netrw#DirBrowse(dirname)
endif
" change the name of the buffer to reflect the b:netrw_curdir
+ " Hmm. When another vim is open to the same directory, I get
+ " a "Press ENTER" ... ok, setting "noswf" avoids it.
+" call Decho('exe silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape))
exe 'silent! file '.escape(b:netrw_curdir,s:netrw_cd_escape)
" make this buffer not-a-file, modifiable, not line-numbered, etc
- setlocal bh=hide bt=nofile nobl ma nonu
+ setlocal bh=hide bt=nofile nobl ma nonu noswf
keepalt silent! %d
" ---------------------------
@@ -2563,7 +2702,7 @@ fun! netrw#DirBrowse(dirname)
endif
" save current directory on directory history list
- call <SID>NetBookmarkDir(3,b:netrw_curdir)
+ call s:NetBookmarkDir(3,b:netrw_curdir)
" set up all the maps
" call Decho("Setting up local browser maps")
@@ -2584,6 +2723,7 @@ fun! netrw#DirBrowse(dirname)
nnoremap <buffer> <silent> o :call <SID>NetSplit(2)<cr>
nnoremap <buffer> <silent> O :call <SID>LocalObtain()<cr>
nnoremap <buffer> <silent> p :call <SID>LocalPreview(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),1))<cr>
+ nnoremap <buffer> <silent> P :call <SID>NetPrevWinOpen(1)<cr>
nnoremap <buffer> <silent> q :<c-u>call <SID>NetBookmarkDir(2,b:netrw_curdir)<cr>
nnoremap <buffer> <silent> r :let g:netrw_sort_direction= (g:netrw_sort_direction =~ 'n')? 'r' : 'n'<bar>exe "norm! 0"<bar>call <SID>NetRefresh(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'),1)<cr>
nnoremap <buffer> <silent> s :call <SID>NetSaveWordPosn()<bar>let g:netrw_sort_by= (g:netrw_sort_by =~ 'n')? 'time' : (g:netrw_sort_by =~ 't')? 'size' : 'name'<bar>exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<bar>call <SID>NetRestoreWordPosn()<cr>
@@ -2591,7 +2731,7 @@ fun! netrw#DirBrowse(dirname)
nnoremap <buffer> <silent> u :<c-u>call <SID>NetBookmarkDir(4,expand("%"))<cr>
nnoremap <buffer> <silent> U :<c-u>call <SID>NetBookmarkDir(5,expand("%"))<cr>
nnoremap <buffer> <silent> v :call <SID>NetSplit(3)<cr>
- nnoremap <buffer> <silent> x :call <SID>NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)"<cr>
+ nnoremap <buffer> <silent> x :call netrw#NetBrowseX(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord(),0),0)"<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>
@@ -2784,7 +2924,7 @@ fun! s:LocalBrowseList()
let ft = strpart("000000000000000000",1,18-strlen(t)).t
" call Decho("exe keepjumps put ='".ft.'/'.filename."'")
let ftpfile= ft.'/'.pfile
- keepjumps put=ftpfile
+ keepjumps silent! put=ftpfile
elseif g:netrw_sort_by =~ "^s"
" sort by size (handles file sizes up to 1 quintillion bytes, US)
@@ -2793,12 +2933,12 @@ fun! s:LocalBrowseList()
let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz
" call Decho("exe keepjumps put ='".fsz.'/'.filename."'")
let fszpfile= fsz.'/'.pfile
- keepjumps put =fszpfile
+ keepjumps silent! put =fszpfile
else
" sort by name
" call Decho("exe keepjumps put ='".pfile."'")
- keepjumps put=pfile
+ keepjumps silent! put=pfile
endif
endwhile
@@ -2833,6 +2973,13 @@ fun! s:LocalBrowseChgDir(dirname,newdir,...)
if a:0 < 1
" call Decho("dirname<".dirname."> netrw_cd_escape<".s:netrw_cd_escape.">")
" call Decho("about to edit<".escape(dirname,s:netrw_cd_escape).">")
+ if g:netrw_browse_split == 1
+ new
+ wincmd _
+ elseif g:netrw_browse_split == 2
+ rightb vert new
+ wincmd |
+ endif
exe "e! ".escape(dirname,s:netrw_cd_escape)
set ma nomod
endif
@@ -3063,7 +3210,7 @@ fun! netrw#Explore(indx,dosplit,style,...)
" if dosplit or file has been modified
if a:dosplit || &modified
- call <SID>SaveWinVars()
+ call s:SaveWinVars()
if a:style == 0 " Explore, Sexplore
exe g:netrw_winsize."wincmd s"
@@ -3275,7 +3422,7 @@ fun! s:NetGetcwd(doesc)
endfun
" ---------------------------------------------------------------------
-" NetMethod: determine method of transfer {{{1
+" NetMethod: determine method of transfer {{{2
" method == 1: rcp
" 2: ftp + <.netrc>
" 3: ftp + machine, id, password, and [path]filename
@@ -3475,7 +3622,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
endfun
" ------------------------------------------------------------------------
-" NetUserPass: set username and password for subsequent ftp transfer {{{1
+" NetUserPass: set username and password for subsequent ftp transfer {{{2
" Usage: :call NetUserPass() -- will prompt for userid and password
" :call NetUserPass("uid") -- will prompt for password
" :call NetUserPass("uid","password") -- sets global userid and password
@@ -3506,7 +3653,7 @@ fun! NetUserPass(...)
endfun
" ------------------------------------------------------------------------
-" NetOptionSave: save options and set to "standard" form {{{1
+" NetOptionSave: save options and set to "standard" form {{{2
fun! s:NetOptionSave()
" call Dfunc("NetOptionSave()")
if !exists("w:netoptionsave")
@@ -3550,7 +3697,7 @@ fun! s:NetOptionSave()
endfun
" ------------------------------------------------------------------------
-" NetOptionRestore: restore options {{{1
+" NetOptionRestore: restore options {{{2
fun! s:NetOptionRestore()
" call Dfunc("NetOptionRestore()")
if !exists("w:netoptionsave")
@@ -3591,7 +3738,7 @@ fun! s:NetOptionRestore()
endfun
" ------------------------------------------------------------------------
-" NetReadFixup: this sort of function is typically written by the user {{{1
+" NetReadFixup: this sort of function is typically written by the user {{{2
" to handle extra junk that their system's ftp dumps
" into the transfer. This function is provided as an
" example and as a fix for a Windows 95 problem: in my
@@ -3609,7 +3756,7 @@ if has("win95") && exists("g:netrw_win95ftp") && g:netrw_win95ftp
endif
" ---------------------------------------------------------------------
-" NetSort: Piet Delport's BISort2() function, modified to take a range {{{1
+" NetSort: Piet Delport's BISort2() function, modified to take a range {{{2
if v:version < 700
fun! s:NetSort() range
" " call Dfunc("NetSort()")
@@ -3654,7 +3801,7 @@ if v:version < 700
endif
" ---------------------------------------------------------------------
-" SetSort: sets up the sort based on the g:netrw_sort_sequence {{{1
+" SetSort: sets up the sort based on the g:netrw_sort_sequence {{{2
" What this function does is to compute a priority for the patterns
" in the g:netrw_sort_sequence. It applies a substitute to any
" "files" that satisfy each pattern, putting the priority / in
@@ -3711,7 +3858,7 @@ fun! s:SetSort()
endfun
" ---------------------------------------------------------------------
-" SaveWinVars: (used by Explore()) {{{1
+" SaveWinVars: (used by Explore()) {{{2
fun! s:SaveWinVars()
" call Dfunc("SaveWinVars()")
if exists("w:netrw_bannercnt") |let s:bannercnt = w:netrw_bannercnt |endif
@@ -3727,7 +3874,7 @@ fun! s:SaveWinVars()
endfun
" ---------------------------------------------------------------------
-" CopyWinVars: (used by Explore()) {{{1
+" CopyWinVars: (used by Explore()) {{{2
fun! s:CopyWinVars()
" call Dfunc("CopyWinVars()")
if exists("s:bannercnt") |let w:netrw_bannercnt = s:bannercnt |unlet s:bannercnt |endif
@@ -3743,7 +3890,7 @@ fun! s:CopyWinVars()
endfun
" ---------------------------------------------------------------------
-" SetBufWinVars: (used by NetBrowse() and LocalBrowse()) {{{1
+" SetBufWinVars: (used by NetBrowse() and LocalBrowse()) {{{2
" To allow separate windows to have their own activities, such as
" Explore **/pattern, several variables have been made window-oriented.
" However, when the user splits a browser window (ex: ctrl-w s), these
@@ -3765,7 +3912,7 @@ fun! s:SetBufWinVars()
endfun
" ---------------------------------------------------------------------
-" UseBufWinVars: (used by NetBrowse() and LocalBrowse() {{{1
+" UseBufWinVars: (used by NetBrowse() and LocalBrowse() {{{2
" Matching function to BufferWinVars()
fun! s:UseBufWinVars()
" call Dfunc("UseBufWinVars()")
@@ -3783,7 +3930,7 @@ fun! s:UseBufWinVars()
endfun
" ---------------------------------------------------------------------
-" RFC2396: converts %xx into characters
+" RFC2396: converts %xx into characters {{{2
fun! netrw#RFC2396(fname)
" call Dfunc("RFC2396(fname<".a:fname.">)")
let fname = escape(substitute(a:fname,'%\(\x\x\)','\=nr2char("0x".submatch(1))','ge')," \t")
@@ -3792,7 +3939,7 @@ fun! netrw#RFC2396(fname)
endfun
" ------------------------------------------------------------------------
-" Settings Restoration: {{{1
+" Settings Restoration: {{{2
let &cpo= s:keepcpo
unlet s:keepcpo
diff --git a/runtime/autoload/netrwSettings.vim b/runtime/autoload/netrwSettings.vim
index 368af553..73cfd18f 100644
--- a/runtime/autoload/netrwSettings.vim
+++ b/runtime/autoload/netrwSettings.vim
@@ -1,7 +1,7 @@
" netrwSettings.vim: makes netrw settings simpler
-" Date: Oct 12, 2005
+" Date: Jan 26, 2006
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
-" Version: 4
+" Version: 6a ASTRO-ONLY
" 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
@@ -19,7 +19,7 @@
if exists("g:loaded_netrwSettings") || &cp
finish
endif
-let g:loaded_netrwSettings = "v4"
+let g:loaded_netrwSettings = "v6a"
" ---------------------------------------------------------------------
" NetrwSettings: {{{1
@@ -56,10 +56,10 @@ fun! netrwSettings#NetrwSettings()
let g:netrw_ignorenetrc= 0
endif
- put ='+ ---------------------------------------------'
- put ='+ NetrwSettings: (by Charles E. Campbell, Jr.)'
+ put ='+ --------------------------------------------'
+ put ='+ NetrwSettings: by Charles E. Campbell, Jr.'
put ='+ Press ? with cursor atop any line for help '
- put ='+ ---------------------------------------------'
+ put ='+ --------------------------------------------'
let s:netrw_settings_stop= line(".")
put =''
@@ -89,6 +89,12 @@ fun! netrwSettings#NetrwSettings()
put ='+ Netrw Browser Control'
put = 'let g:netrw_alto = '.g:netrw_alto
put = 'let g:netrw_altv = '.g:netrw_altv
+ put = 'let g:netrw_browse_split = '.g:netrw_browse_split
+ if exists("g:netrw_browsex_viewer")
+ put = 'let g:netrw_browsex_viewer = '.g:netrw_browsex_viewer
+ else
+ put = 'let g:netrw_browsex_viewer = (not defined)'
+ endif
put = 'let g:netrw_dirhistmax = '.g:netrw_dirhistmax
put = 'let g:netrw_ftp_browse_reject = '.g:netrw_ftp_browse_reject
put = 'let g:netrw_ftp_list_cmd = '.g:netrw_ftp_list_cmd
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index e83309a8..8735b5ca 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt* For Vim version 7.0aa. Last change: 2006 Jan 08
+*autocmd.txt* For Vim version 7.0aa. Last change: 2006 Feb 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -273,6 +273,7 @@ Name triggered by ~
|FileChangedRO| before making the first change to a read-only file
|FuncUndefined| a user function is used but it isn't defined
+|SpellFileMissing| a spell file is used but it can't be found
|FocusGained| Vim got input focus
|FocusLost| Vim lost input focus
@@ -643,6 +644,11 @@ RemoteReply When a reply from a Vim that functions as
*SessionLoadPost*
SessionLoadPost After loading the session file created using
the |:mksession| command.
+ *SpellFileMissing*
+SpellFileMissing When trying to load a spell checking file and
+ it can't be found. <amatch> is the language,
+ 'encoding' also matters. See
+ |spell-SpellFileMissing|.
*StdinReadPost*
StdinReadPost After reading from the stdin into the buffer,
before executing the modelines. Only used
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index d119e127..b8539f43 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0aa. Last change: 2006 Jan 29
+*eval.txt* For Vim version 7.0aa. Last change: 2006 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2371,7 +2371,7 @@ filter({expr}, {string}) *filter()*
The operation is done in-place. If you want a List or
Dictionary to remain unmodified make a copy first: >
- :let l = filter(copy(mylist), '& =~ "KEEP"')
+ :let l = filter(copy(mylist), 'v:val =~ "KEEP"')
< Returns {expr}, the List or Dictionary that was filtered.
When an error is encountered while evaluating {string} no
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index df29077b..8f0e3908 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.0aa. Last change: 2006 Jan 29
+*options.txt* For Vim version 7.0aa. Last change: 2006 Jan 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5092,6 +5092,7 @@ A jump table for the options with a short description can be found at |Q_op|.
menu.vim GUI menus |menu.vim|
plugin/ plugin scripts |write-plugin|
print/ files for printing |postscript-print-encoding|
+ spell/ spell checking files |spell|
syntax/ syntax files |mysyntaxfile|
tutor/ files for vimtutor |tutor|
@@ -5727,7 +5728,7 @@ A jump table for the options with a short description can be found at |Q_op|.
'shiftwidth'. 'tabstop' or 'softtabstop' is used in other places. A
<BS> will delete a 'shiftwidth' worth of space at the start of the
line.
- When off a <Tab> always inserts blanks according to 'tabstop' or
+ When off, a <Tab> always inserts blanks according to 'tabstop' or
'softtabstop'. 'shiftwidth' is only used for shifting text left or
right |shift-left-right|.
What gets inserted (a Tab or spaces) depends on the 'expandtab'
@@ -5836,7 +5837,8 @@ A jump table for the options with a short description can be found at |Q_op|.
After this option has been set successfully, Vim will source the files
"spell/LANG.vim" in 'runtimepath'. "LANG" is the value of 'spelllang'
- up to the first comma, dot or underscore. See |set-spc-auto|.
+ up to the first comma, dot or underscore.
+ Also see |set-spc-auto|.
*'spellsuggest'* *'sps'*
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index a7ee1e22..86593e6c 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt* For Vim version 7.0. Last change: Nov 28, 2005
+*pi_netrw.txt* For Vim version 7.0. Last change: Jan 27, 2006
VIM REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -10,7 +10,8 @@
==============================================================================
0. Contents *netrw-contents*
-1. Netrw Reference......................................|netrw-ref|
+1. Starting With Netrw.................................|netrw-start|
+2. Netrw Reference......................................|netrw-ref|
CONTROLLING EXTERNAL APPLICTIONS...................|netrw-externapp|
READING............................................|netrw-read|
WRITING............................................|netrw-write|
@@ -18,14 +19,14 @@
CHANGING THE USERID AND PASSWORD...................|netrw-chgup|
VARIABLES..........................................|netrw-variables|
PATHS..............................................|netrw-path|
-2. Network-Oriented File Transfer.......................|netrw-xfer|
+3. Network-Oriented File Transfer.......................|netrw-xfer|
NETRC..............................................|netrw-netrc|
PASSWORD...........................................|netrw-passwd|
-3. Activation...........................................|netrw-activate|
-4. Transparent File Transfer............................|netrw-transparent|
-5. Ex Commands..........................................|netrw-ex|
-6. Variables and Options................................|netrw-var|
-7. Directory Browsing...................................|netrw-browse| {{{1
+4. Activation...........................................|netrw-activate|
+5. Transparent File Transfer............................|netrw-transparent|
+6. Ex Commands..........................................|netrw-ex|
+7. Variables and Options................................|netrw-var|
+8. Directory Browsing...................................|netrw-browse| {{{1
Maps...............................................|netrw-maps|
Exploring..........................................|netrw-explore-cmds|
Quick Reference Commands Table.....................|netrw-browse-cmds|
@@ -41,7 +42,7 @@
Deleting Files Or Directories......................|netrw-delete|
Renaming Files Or Directories......................|netrw-move|
Hiding Files Or Directories........................|netrw-a|
- Edit File Or Directory Hiding List.................|netrw-h|
+ Edit File Or Directory Hiding List.................|netrw-ctrl-h|
Browsing With A Horizontally Split Window..........|netrw-o|
Preview Window.....................................|netrw-p|
Selecting Sorting Style............................|netrw-s|
@@ -56,19 +57,19 @@
Changing To A Bookmarked Directory.................|netrw-B| |netrw-NB|
Listing Bookmarks And History......................|netrw-q|
Improving Directory Browsing.......................|netrw-listhack| }}}1
-8. Problems and Fixes...................................|netrw-problems|
-9. Debugging............................................|netrw-debug|
-10. History..............................................|netrw-history|
-11. Credits..............................................|netrw-credits|
+9. Problems and Fixes...................................|netrw-problems|
+10. Debugging............................................|netrw-debug|
+11. History..............................................|netrw-history|
+12. Credits..............................................|netrw-credits|
The Netrw plugin is generally sourced automatically as it is a
|standard-plugin|. That said, to make use of netrw, one must
have plugins available which can be done with the following
-two lines in your <.vimrc>:
+two lines in your <.vimrc>: >
set nocp " 'compatible' is not set
filetype plugin on " plugins are enabled
-
+<
You can avoid loading this plugin by setting the "loaded_netrw" variable
in your <.vimrc> file: >
@@ -77,14 +78,66 @@ in your <.vimrc> file: >
{Vi does not have any of this}
==============================================================================
-1. Netrw Reference *netrw-ref*
+1. Starting With Netrw *netrw-start*
+
+Netrw makes reading, writing, and browsing over a network connection easy!
+First, make sure that you have plugins enabled, so you'll need to have at
+least the following in your <.vimrc>: (or see |netrw-activate|) >
+
+ set nocp " 'compatible' is not set
+ filetype plugin on " plugins are enabled
+<
+(see |'cp'| and |:filetype-plugin-on|)
+
+Netrw supports "transparent" editing of files on other machines using urls
+(see |netrw-transparent|). As an example of this, let's assume you have an
+account on some other machine; try >
+
+ vim scp://hostname/path/to/file
+<
+if you have an ssh connection. Want to make ssh/scp easier to use? Check
+out |netrw-listhack|!
+
+What if you have ftp, not ssh/scp? That's easy, too; try >
+
+ vim ftp://hostname/path/to/file
+<
+Want to make ftp simpler to use? See if your ftp supports a file called
+<.netrc> -- typically it goes in your home directory, has read/write
+permissions for only the user to read (ie. not group, world, other, etc),
+and has lines resembling >
+
+ machine HOSTNAME login USERID password "PASSWORD"
+ machine HOSTNAME login USERID password "PASSWORD"
+ ...
+ default login USERID password "PASSWORD"
+<
+How about browsing -- ie. you just want to look around before editing a
+file. For browsing on your current host, just "edit" a directory: >
+
+ vim .
+ vim /home/userid/path
+<
+For browsing on a remote host, "edit" a directory (but make sure that
+the directory name is followed by a "/"): >
+
+ vim scp://hostname/
+ vim ftp://hostname/path/to/dir/
+<
+See |netrw-browse| for more!
+
+There's more protocols supported than scp and ftp, too: see the next
+section, |netrw-externapp|.
+
+==============================================================================
+2. Netrw Reference *netrw-ref*
CONTROLLING EXTERNAL APPLICTIONS *netrw-externapp*
Protocol Variable Default Value
-------- ---------------- -------------
dav: *g:netrw_dav_cmd* = "cadaver"
- fetch: *g:netrw_fetch_cmd* = "fetch -o"
+ fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
ftp: *g:netrw_ftp_cmd* = "ftp"
http: *g:netrw_http_cmd* = "fetch -o" if fetch is available
http: g:netrw_http_cmd = "wget -q -O" If wget is available
@@ -191,7 +244,7 @@ file using root-relative paths, use the full path:
<
==============================================================================
-2. Network-Oriented File Transfer *netrw-xfer*
+3. Network-Oriented File Transfer *netrw-xfer*
Network-oriented file transfer under Vim is implemented by a VimL-based script
(<netrw.vim>) using plugin techniques. It currently supports both reading and
@@ -337,7 +390,7 @@ However, |netrw-listhack| can help with this problem.
==============================================================================
-3. Activation *netrw-activate*
+4. Activation *netrw-activate*
Network-oriented file transfers are available by default whenever
|'nocompatible'| mode is enabled. The <netrw.vim> file resides in your
@@ -351,7 +404,7 @@ up vim. I suggest that, at a minimum, you have at least the following in your
<
==============================================================================
-4. Transparent File Transfer *netrw-transparent*
+5. Transparent File Transfer *netrw-transparent*
Transparent file transfers occur whenever a regular file read or write
(invoked via an |:autocmd| for |BufReadCmd| or |BufWriteCmd| events) is made.
@@ -365,7 +418,7 @@ See |netrw-activate| for more on how to encourage your vim to use plugins
such as netrw.
==============================================================================
-5. Ex Commands *netrw-ex*
+6. Ex Commands *netrw-ex*
The usual read/write commands are supported. There are also a couple of
additional commands available.
@@ -403,7 +456,7 @@ additional commands available.
==============================================================================
-6. Variables and Options *netrw-options* *netrw-var*
+7. Variables and Options *netrw-options* *netrw-var*
The script <netrw.vim> uses several variables which can affect <netrw.vim>'s
behavior. These variables typically may be set in the user's <.vimrc> file:
@@ -476,10 +529,10 @@ variables listed below, and may be modified by the user.
transformed however they wish
by NetReadFixup()
g:netrw_dav_cmd variable ="cadaver"
- g:netrw_fetch_cmd variable ="fetch -o"
+ g:netrw_fetch_cmd variable ="fetch -o" if fetch is available
g:netrw_ftp_cmd variable ="ftp"
- g:netrw_http_cmd variable ="fetch -o" else if fetch is executable
- g:netrw_http_cmd variable ="wget -O" if wget is executable
+ g:netrw_http_cmd variable ="fetch -o" if fetch is available
+ g:netrw_http_cmd variable ="wget -O" else if wget is available
g:netrw_list_cmd variable ="ssh HOSTNAME ls -Fa"
g:netrw_rcp_cmd variable ="rcp"
g:netrw_rsync_cmd variable ="rsync -a"
@@ -488,9 +541,10 @@ variables listed below, and may be modified by the user.
-------------------------------------------------------------------------
<
*netrw-ftp*
-The first two options both help with certain ftp's that give trouble
-otherwise. In order to best understand how to use these options if ftp is
-giving you troubles, a bit of discussion follows on how netrw does ftp reads.
+The first two options (netrw_ftp and NetReadFixup) both help with certain
+ftp's that give trouble otherwise. In order to best understand how to use
+these options if ftp is giving you troubles, a bit of discussion follows on
+how netrw does ftp reads.
The g:netrw_..._cmd variables specify the external program to use handle the
associated protocol (rcp, ftp, etc), plus any options.
@@ -572,7 +626,7 @@ itself:
>
==============================================================================
-7. Directory Browsing *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
+8. Directory Browsing *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
MAPS *netrw-maps*
?................Help.......................................|netrw-help|
@@ -585,7 +639,7 @@ MAPS *netrw-maps*
c................Make Browsing Directory The Current Dir....|netrw-c|
d................Make A New Directory.......................|netrw-d|
D................Deleting Files or Directories..............|netrw-D|
- <c-h>............Edit File/Directory Hiding List............|netrw-h|
+ <c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h|
i................Long Listing...............................|netrw-i|
<c-l>............Refreshing the Listing.....................|netrw-ctrl-l|
o................Browsing with a Horizontal Split...........|netrw-o|
@@ -615,27 +669,38 @@ QUICK REFERENCE COMMANDS TABLE *netrw-browse-cmds*
Command Explanation
------- -----------
< ? Causes Netrw to issue help
- <cr> Netrw will enter the directory or read the file
- <del> Netrw will attempt to remove the file/directory
- d Make a directory
- D Netrw will attempt to remove the file(s)/directory(ies)
- R Netrw will attempt to rename the file(s)/directory(ies)
- - Makes Netrw go up one directory
- a Toggles between normal display,
- hiding (suppress display of files matching g:netrw_list_hide)
- showing (display only files which match g:netrw_list_hide)
- c Make current browsing directory the current directory
- <c-h> Edit file hiding list
- i Toggles between long and short listing
- <c-l> Causes Netrw to refresh the directory listing
+ <cr> Netrw will enter the directory or read the file |netrw-cr|
+ <del> Netrw will attempt to remove the file/directory |netrw-del|
+ - Makes Netrw go up one directory |netrw--|
+ a Toggles between normal display, |netrw-a|
+ hiding (suppress display of files matching g:netrw_list_hide)
+ showing (display only files which match g:netrw_list_hide)
+ b bookmark current directory; use Nb if compact listing
+ in use |netrw-b|
+ B go to previous bookmarked directory; use Nb if compact
+ listing is in use |netrw-B|
+ c Make current browsing directory the current directory |netrw-c|
+ d Make a directory |netrw-d|
+ D Netrw will attempt to remove the file(s)/directory(ies) |netrw-D|
+ <c-h> Edit file hiding list |netrw-ctrl-h|
+ i Toggles between long and short listing |netrw-i|
+ <c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l|
+ Nb Same as b, but always available |netrw-Nb|
+ NB Same as B, but always available |netrw-NB|
o Enter the file/directory under the cursor in a new browser
- window. A horizontal split is used.
- p Preview the file
- r Reverse sorting order
- s Select sorting style: by name, time, or file size
+ window. A horizontal split is used. |netrw-o|
+ O Obtain a file specified by cursor |netrw-O|
+ p Preview the file |netrw-p|
+ P Browse in the previously used window |netrw-P|
+ r Reverse sorting order |netrw-r|
+ R Rename the designed file(s)/directory(ies) |netrw-R|
+ s Select sorting style: by name, time, or file size |netrw-s|
+ S Specify suffix priority for name-sorting |netrw-S|
+ u Change to recently-visited directory |netrw-u|
+ U Change to subsequently-visited directory |netrw-U|
v Enter the file/directory under the cursor in a new browser
- window. A vertical split is used.
- x Apply a function to a file.
+ window. A vertical split is used. |netrw-v|
+ x Apply a function to a file. (special browsers) |netrw-x|
NETRW BROWSER VARIABLES *netrw-browse-var*
>
@@ -650,6 +715,19 @@ NETRW BROWSER VARIABLES *netrw-browse-var*
by setting this variable (see |netrw-v|)
default: =0
+ *g:netrw_browse_split* when browsing, <cr> will open the file by:
+ =0: re-using the same window
+ =1: horizontally splitting the window first
+ =2: vertically splitting the window first
+ *g:netrw_browsex_viewer* specify user's preference for a viewer: >
+ "kfmclient exec"
+ "gnome-open"
+< If >
+ "-"
+< is used, then netrwFileHandler() will look for
+ a script/function to handle the given
+ extension. (see |netrw_filehandler|).
+<
*g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
that can show up as "directories" and "files"
in the listing. This pattern is used to
@@ -866,6 +944,11 @@ protocol given in the original read request.
or more spaces embedded in it, or any trailing spaces, then you'll need to
use the "thin" format to select it.
+The |g:netrw_browse_split| option, which is zero by default, may be used to
+cause the opening of files to be done in a new window. The splitting will
+be done horizontally if the option is one and vertically if the option is
+two.
+
OBTAINING A FILE *netrw-O*
@@ -921,7 +1004,7 @@ directory. Attempts to make a local directory that already exists (as either
a file or a directory) will be detected, reported on, and ignored.
-DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D*
+DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del*
Deleting/removing files and directories involves moving the cursor to the
file/directory to be deleted and pressing "D". Directories must be empty
@@ -971,7 +1054,7 @@ ways: ignore it, hide files which match, and show only those files which
match. The "a" map allows the user to cycle about these three ways.
The g:netrw_list_hide variable holds a comma delimited list of patterns (ex.
-\.obj) which specify the hiding list. (also see |netrw-h|) To set the hiding
+\.obj) which specify the hiding list. (also see |netrw-ctrl-h|) To set the hiding
list, use the <c-h> map. As an example, to hide files which begin with a ".",
one may use the <c-h> map to set the hiding list to '^\..*' (or one may put
let g:netrw_list_hide= '^\..*' in one's <.vimrc>). One may then use the "a"
@@ -979,7 +1062,7 @@ key to show all files, hide matching files, or to show only the matching
files.
-EDIT FILE OR DIRECTORY HIDING LIST *netrw-h* *netrw-edithide*
+EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide*
The "<ctrl-h>" map brings up a requestor allowing the user to change the
file/directory hiding list. The hiding list consists of one or more patterns
@@ -1009,6 +1092,20 @@ One may use a preview window (currently only for local browsing) by using the
"p" key when the cursor is atop the desired filename to be previewed.
+PREVIOUS WINDOW *netrw-P* *netrw-prvwin*
+
+To edit a file or directory in the previously used window (see :he |CTRL-W_P|),
+press a "P". If there's only one window, then the one window will be
+horizontally split (above/below splitting is controlled by |g:netrw_alto|,
+and its initial size is controlled by |g:netrw_winsize|).
+
+If there's more than one window, the previous window will be re-used on
+the selected file/directory. If the previous window's associated buffer
+has been modified, and there's only one window with that buffer, then
+the user will be asked if s/he wishes to save the buffer first (yes,
+no, or cancel).
+
+
SELECTING SORTING STYLE *netrw-s* *netrw-sort*
One may select the sorting style by name, time, or (file) size. The "s" map
@@ -1068,15 +1165,30 @@ window and cursor at the right, have
in your <.vimrc>.
-CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x* *netrw-handler*
+CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x* *netrw-handler* *gx*
-One may "enter" a file with a special handler, thereby firing up a browser or
-other application, for example, on a file by hitting the "x" key. The special
-handler varies:
+Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
+best seen with a special handler (ie. a tool provided with your computer).
+Netrw allows one to invoke such special handlers by: >
+
+ * when Exploring, hit the "x" key
+ * when editing, hit gx with the cursor atop the special filename
+<
+Netrw determines which special handler by the following method:
+
+ * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
+ view files. Examples of useful settings (place into your <.vimrc>): >
+
+ :let g:netrw_browsex_viewer= "kfmclient exec"
+< or >
+ :let g:netrw_browsex_viewer= "gnome-open"
+<
+ If g:netrw_browsex_viewer == '-', then netrwFileHandler() will be
+ invoked first (see |netrw_filehandler|).
* for Windows 32 or 64, the url and FileProtocolHandler dlls are used.
- * for KDE (with kfmclient): kfmclient is used.
* for Gnome (with gnome-open): gnome-open is used.
+ * for KDE (with kfmclient): kfmclient is used.
* otherwise the netrwFileHandler plugin is used.
The file's suffix is used by these various approaches to determine an
@@ -1084,6 +1196,7 @@ appropriate application to use to "handle" these files. Such things as
OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
*.eps) can be handled.
+ *netrw_filehandler*
The netrwFileHandler applies a user-defined function to a file, based on its
extension. Of course, the handler function must exist for it to be called!
>
@@ -1093,10 +1206,12 @@ extension. Of course, the handler function must exist for it to be called!
See the <plugin/netrwFileHandlers.vim> for an example of how to handle an html
file with mozilla.
-One may write custom netrwFileHandlers; please look at the
-plugin/netrwFileHandlers.vim script for examples. If its likely to be
-generally useful, please feel free to forward a copy to me for future
-inclusion in the distribution.
+One may write custom netrwFileHandlers; please look at the >
+
+ plugin/netrwFileHandlers.vim
+
+script for examples. If its likely to be generally useful, please feel free
+to forward a copy to me for future inclusion in the distribution.
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* *netrw-curdir*
@@ -1168,7 +1283,7 @@ help on what each of the variables do.
==============================================================================
-8. Problems and Fixes *netrw-problems*
+9. Problems and Fixes *netrw-problems*
(This section is likely to grow as I get feedback)
(also see |netrw-debug|)
@@ -1233,7 +1348,7 @@ help on what each of the variables do.
==============================================================================
-9. Debugging *netrw-debug*
+10. Debugging *netrw-debug*
The <netrw.vim> script is typically available as:
>
@@ -1282,8 +1397,23 @@ which is loaded automatically at startup (assuming :set nocp).
NdrOchip at ScampbellPfamily.AbizM - NOSPAM
==============================================================================
-10. History *netrw-history*
-
+11. History *netrw-history* {{{1
+
+ v78: * progress has been made on allowing spaces inside directory
+ names for remote work (reading, writing, browsing). (scp)
+ v77: * Mikolaj Machowski fixed a bug in a substitute command
+ * g:netrw_browsex_viewer implemented
+ * Mikolaj Machowski pointed out that gnome-open is often
+ executable under KDE systems, although it is effectively
+ not functional. NetBrowseX now looks for "kicker" as
+ a running process to determine if KDE is actually the
+ really running.
+ * Explorer's O functionality was inadvertently left out.
+ Netrw now does the same thing, but with the "P" key.
+ * added g:netrw_browse_split option
+ * fixed a bug where the directory contained a "." but
+ the file didn't (was treating the dirname from "."
+ onwards as a suffix)
v76: * "directory is missing" error message now restores echo
highlighting
v75: * file://... now conforms to RFC2396 (thanks to S. Zacchiroli)
@@ -1475,7 +1605,7 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
-11. Credits *netrw-credits*
+11. Credits *netrw-credits* {{{1
Vim editor by Bram Moolenaar (Thanks, Bram!)
dav support by C Campbell
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 76446809..bbb9190d 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -2181,6 +2181,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:lr quickfix.txt /*:lr*
:lrewind quickfix.txt /*:lrewind*
:ls windows.txt /*:ls*
+:lt tagsrch.txt /*:lt*
+:ltag tagsrch.txt /*:ltag*
:lu map.txt /*:lu*
:lunmap map.txt /*:lunmap*
:lw quickfix.txt /*:lw*
@@ -4051,6 +4053,7 @@ Select-mode-mapping visual.txt /*Select-mode-mapping*
Session starting.txt /*Session*
SessionLoad-variable starting.txt /*SessionLoad-variable*
SessionLoadPost autocmd.txt /*SessionLoadPost*
+SpellFileMissing autocmd.txt /*SpellFileMissing*
StdinReadPost autocmd.txt /*StdinReadPost*
StdinReadPre autocmd.txt /*StdinReadPre*
SwapExists autocmd.txt /*SwapExists*
@@ -4559,6 +4562,7 @@ compl-spelling insert.txt /*compl-spelling*
compl-tag insert.txt /*compl-tag*
compl-vim insert.txt /*compl-vim*
compl-whole-line insert.txt /*compl-whole-line*
+complete-functions insert.txt /*complete-functions*
complete_add() eval.txt /*complete_add()*
complete_check() eval.txt /*complete_check()*
complex-change change.txt /*complex-change*
@@ -5093,6 +5097,7 @@ ft-htmlos-syntax syntax.txt /*ft-htmlos-syntax*
ft-ia64-syntax syntax.txt /*ft-ia64-syntax*
ft-inform-syntax syntax.txt /*ft-inform-syntax*
ft-java-syntax syntax.txt /*ft-java-syntax*
+ft-javascript-omni insert.txt /*ft-javascript-omni*
ft-ksh-syntax syntax.txt /*ft-ksh-syntax*
ft-lace-syntax syntax.txt /*ft-lace-syntax*
ft-lex-syntax syntax.txt /*ft-lex-syntax*
@@ -5183,6 +5188,8 @@ g0 motion.txt /*g0*
g8 various.txt /*g8*
g:netrw_alto pi_netrw.txt /*g:netrw_alto*
g:netrw_altv pi_netrw.txt /*g:netrw_altv*
+g:netrw_browse_split pi_netrw.txt /*g:netrw_browse_split*
+g:netrw_browsex_viewer pi_netrw.txt /*g:netrw_browsex_viewer*
g:netrw_cygwin pi_netrw.txt /*g:netrw_cygwin*
g:netrw_dav_cmd pi_netrw.txt /*g:netrw_dav_cmd*
g:netrw_fetch_cmd pi_netrw.txt /*g:netrw_fetch_cmd*
@@ -5379,6 +5386,7 @@ gvimrc gui.txt /*gvimrc*
gw change.txt /*gw*
gwgw change.txt /*gwgw*
gww change.txt /*gww*
+gx pi_netrw.txt /*gx*
gzip pi_gzip.txt /*gzip*
gzip-autocmd pi_gzip.txt /*gzip-autocmd*
gzip-example autocmd.txt /*gzip-example*
@@ -5961,6 +5969,7 @@ netrw-D pi_netrw.txt /*netrw-D*
netrw-NB pi_netrw.txt /*netrw-NB*
netrw-Nb pi_netrw.txt /*netrw-Nb*
netrw-O pi_netrw.txt /*netrw-O*
+netrw-P pi_netrw.txt /*netrw-P*
netrw-R pi_netrw.txt /*netrw-R*
netrw-S pi_netrw.txt /*netrw-S*
netrw-U pi_netrw.txt /*netrw-U*
@@ -5979,10 +5988,12 @@ netrw-chgup pi_netrw.txt /*netrw-chgup*
netrw-contents pi_netrw.txt /*netrw-contents*
netrw-cr pi_netrw.txt /*netrw-cr*
netrw-credits pi_netrw.txt /*netrw-credits*
+netrw-ctrl-h pi_netrw.txt /*netrw-ctrl-h*
netrw-ctrl-l pi_netrw.txt /*netrw-ctrl-l*
netrw-curdir pi_netrw.txt /*netrw-curdir*
netrw-d pi_netrw.txt /*netrw-d*
netrw-debug pi_netrw.txt /*netrw-debug*
+netrw-del pi_netrw.txt /*netrw-del*
netrw-delete pi_netrw.txt /*netrw-delete*
netrw-dir pi_netrw.txt /*netrw-dir*
netrw-dirlist pi_netrw.txt /*netrw-dirlist*
@@ -5995,7 +6006,6 @@ netrw-externapp pi_netrw.txt /*netrw-externapp*
netrw-file pi_netrw.txt /*netrw-file*
netrw-fixup pi_netrw.txt /*netrw-fixup*
netrw-ftp pi_netrw.txt /*netrw-ftp*
-netrw-h pi_netrw.txt /*netrw-h*
netrw-handler pi_netrw.txt /*netrw-handler*
netrw-help pi_netrw.txt /*netrw-help*
netrw-hexplore pi_netrw.txt /*netrw-hexplore*
@@ -6026,6 +6036,7 @@ netrw-pexplore pi_netrw.txt /*netrw-pexplore*
netrw-preview pi_netrw.txt /*netrw-preview*
netrw-problems pi_netrw.txt /*netrw-problems*
netrw-protocol pi_netrw.txt /*netrw-protocol*
+netrw-prvwin pi_netrw.txt /*netrw-prvwin*
netrw-q pi_netrw.txt /*netrw-q*
netrw-r pi_netrw.txt /*netrw-r*
netrw-read pi_netrw.txt /*netrw-read*
@@ -6038,6 +6049,7 @@ netrw-sexplore pi_netrw.txt /*netrw-sexplore*
netrw-sort pi_netrw.txt /*netrw-sort*
netrw-sortsequence pi_netrw.txt /*netrw-sortsequence*
netrw-starstar pi_netrw.txt /*netrw-starstar*
+netrw-start pi_netrw.txt /*netrw-start*
netrw-transparent pi_netrw.txt /*netrw-transparent*
netrw-u pi_netrw.txt /*netrw-u*
netrw-uidpass pi_netrw.txt /*netrw-uidpass*
@@ -6051,6 +6063,7 @@ netrw-write pi_netrw.txt /*netrw-write*
netrw-x pi_netrw.txt /*netrw-x*
netrw-xfer pi_netrw.txt /*netrw-xfer*
netrw.vim pi_netrw.txt /*netrw.vim*
+netrw_filehandler pi_netrw.txt /*netrw_filehandler*
netterm-mouse options.txt /*netterm-mouse*
network pi_netrw.txt /*network*
new-5 version5.txt /*new-5*
@@ -6605,6 +6618,7 @@ spell-SOFOTO spell.txt /*spell-SOFOTO*
spell-SUGSWITHDOTS spell.txt /*spell-SUGSWITHDOTS*
spell-SYLLABLE spell.txt /*spell-SYLLABLE*
spell-SYLLABLENUM spell.txt /*spell-SYLLABLENUM*
+spell-SpellFileMissing spell.txt /*spell-SpellFileMissing*
spell-TRY spell.txt /*spell-TRY*
spell-UPP spell.txt /*spell-UPP*
spell-VERSION spell.txt /*spell-VERSION*
@@ -6635,6 +6649,7 @@ spell-wordlist-format spell.txt /*spell-wordlist-format*
spell-yiddish spell.txt /*spell-yiddish*
spell.txt spell.txt /*spell.txt*
spellbadword() eval.txt /*spellbadword()*
+spellfile.vim spell.txt /*spellfile.vim*
spellsuggest() eval.txt /*spellsuggest()*
split() eval.txt /*split()*
splitfind windows.txt /*splitfind*
@@ -6888,6 +6903,7 @@ tag-highlight syntax.txt /*tag-highlight*
tag-matchlist tagsrch.txt /*tag-matchlist*
tag-old-static tagsrch.txt /*tag-old-static*
tag-overloaded version5.txt /*tag-overloaded*
+tag-preview tagsrch.txt /*tag-preview*
tag-priority tagsrch.txt /*tag-priority*
tag-regexp tagsrch.txt /*tag-regexp*
tag-search tagsrch.txt /*tag-search*
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index 83238724..a6490cab 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -46,6 +46,8 @@ void list_unref __ARGS((list_T *l));
dictitem_T *dict_lookup __ARGS((hashitem_T *hi));
int list_append_dict __ARGS((list_T *list, dict_T *dict));
int garbage_collect __ARGS((void));
+list_T *list_alloc __ARGS((void));
+void list_free __ARGS((list_T *l));
dict_T *dict_alloc __ARGS((void));
int dict_add_nr_str __ARGS((dict_T *d, char *key, long nr, char_u *str));
char_u *get_dict_string __ARGS((dict_T *d, char_u *key));
diff --git a/src/version.h b/src/version.h
index e6253189..69e92897 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
#define VIM_VERSION_NODOT "vim70aa"
#define VIM_VERSION_SHORT "7.0aa"
#define VIM_VERSION_MEDIUM "7.0aa ALPHA"
-#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Jan 29)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Jan 29, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 1)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2006 Feb 1, compiled "