summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-08-01 21:58:57 +0000
committerBram Moolenaar <Bram@vim.org>2005-08-01 21:58:57 +0000
commit83bab71b3cc435eb5551167d02949dbfc90c1bcd (patch)
treee12d80384e911a80d7221b233023dd1fce35a7ee
parentd314b2519b8e0488ca5997e57061d9666a33b384 (diff)
downloadvim-83bab71b3cc435eb5551167d02949dbfc90c1bcd.zip
updated for version 7.0122
-rw-r--r--runtime/doc/eval.txt4
-rw-r--r--runtime/doc/insert.txt12
-rw-r--r--runtime/doc/options.txt10
-rw-r--r--runtime/doc/pi_netrw.txt263
-rw-r--r--runtime/doc/tags22
-rw-r--r--runtime/plugin/netrw.vim475
-rw-r--r--src/misc2.c2
-rw-r--r--src/version.h4
8 files changed, 482 insertions, 310 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index be0b0ec3b..b7896be3e 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 7.0aa. Last change: 2005 Jul 30
+*eval.txt* For Vim version 7.0aa. Last change: 2005 Aug 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -3460,7 +3460,7 @@ printf({fmt}, {expr1} ...) *printf()*
automatically to fit the conversion specifier. Any other
argument type results in an error message.
- *E766* *767*
+ *E766* *E767*
The number of {exprN} arguments must exactly match the number
of "%" items. If there are not sufficient or too many
arguments an error is given. Up to 18 arguments can be used.
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 8389fe5a3..087a0bfdb 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1,4 +1,4 @@
-*insert.txt* For Vim version 7.0aa. Last change: 2005 Jul 29
+*insert.txt* For Vim version 7.0aa. Last change: 2005 Aug 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -614,12 +614,12 @@ Completing whole lines *compl-whole-line*
*i_CTRL-X_CTRL-L*
CTRL-X CTRL-L Search backwards for a line that starts with the
- same characters as in the current line before the
- cursor. Indent is ignored. The found line is
+ same characters as those in the current line before
+ the cursor. Indent is ignored. The matching line is
inserted in front of the cursor.
- The 'complete' option is used to decide in which
- buffers a match is searched for. But only loaded
- buffers are used.
+ The 'complete' option is used to decide which buffers
+ are searched for a match. Only loaded buffers are
+ used.
CTRL-L or
CTRL-P Search backwards for next matching line. This line
replaces the previous matching line.
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index b15d7c40f..3ad65d181 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt* For Vim version 7.0aa. Last change: 2005 Jul 30
+*options.txt* For Vim version 7.0aa. Last change: 2005 Aug 01
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2176,10 +2176,10 @@ A jump table for the options with a short description can be found at |Q_op|.
- A directory starting with "./" (or ".\" for MS-DOS et al.) means to
put the swap file relative to where the edited file is. The leading
"." is replaced with the path name of the edited file.
- - For Unix and Win32, if a directory ends in two path separators, the
- swap file name will be built from the complete path to the file
- with all path separators substituted to percent '%' signs. This will
- ensure file name uniqueness in the preserve directory.
+ - For Unix and Win32, if a directory ends in two path separators "//"
+ or "\\", the swap file name will be built from the complete path to
+ the file with all path separators substituted to percent '%' signs.
+ This will ensure file name uniqueness in the preserve directory.
- Spaces after the comma are ignored, other spaces are considered part
of the directory name. To have a space at the start of a directory
name, precede it with a backslash.
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index 3d48b7728..f1144a5f5 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -1,4 +1,4 @@
-*pi_netrw.txt* For Vim version 6.3. Last change: Oct 08, 2004
+*pi_netrw.txt* For Vim version 6.3. Last change: Jul 09, 2005
VIM REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -10,17 +10,48 @@
==============================================================================
0. Contents *netrw-contents*
-1. Netrw Reference.....................................|netrw-ref|
-2. Network-Oriented File Transfer......................|netrw-xfer|
-3. Activation..........................................|netrw-activate|
-4. Transparent File Transfer...........................|netrw-transparent|
-5. Ex Commands.........................................|netrw-ex|
-6. Variables and Options...............................|netrw-var|
-7. Directory Browser...................................|netrw-browse|
-8. Problems and Fixes..................................|netrw-problems|
-9. Debugging...........................................|netrw-debug|
-10. History.............................................|netrw-history|
-11. Credits.............................................|netrw-credits|
+1. Netrw Reference......................................|netrw-ref|
+2. 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 Browser....................................|netrw-browse| {{{1
+ Maps...............................................|netrw-maps|
+ Exploring..........................................|netrw-explore-cmds|
+ Quick Reference Commands Table.....................|netrw-browse-cmds|
+ Netrw Browser Variables............................|netrw-browse-var|
+ Introduction To Directory Browsing.................|netrw-browse-intro|
+ Directory Exploring Commands.......................|netrw-explore|
+ Refreshing The Listing.............................|netrw-ctrl-l|
+ Going Up...........................................|netrw--|
+ Browsing...........................................|netrw-cr|
+ Long Vs Short Listing..............................|netrw-i|
+ Making A New Directory.............................|netrw-d|
+ Deleting Files Or Directories......................|netrw-delete|
+ Renaming Files Or Directories......................|netrw-move|
+ Hiding Files Or Directories........................|g:netrw-a|
+ Edit File Or Directory Hiding List.................|netrw-h|
+ Browsing With A Horizontally Split Window..........|netrw-o|
+ Preview Window.....................................|netrw-p|
+ Selecting Sorting Style............................|netrw-s|
+ Editing The Sorting Sequence.......................|netrw-S|
+ Reversing Sorting Order............................|netrw-r|
+ Changing To A Predecessor Directory................|netrw-u|
+ Changing To A Successor Directory..................|netrw-U|
+ Browsing With A Vertically Split Window............|netrw-v|
+ Customizing Browsing With A User Function..........|netrw-x|
+ Making The Browsing Directory The Current Directory|netrw-c|
+ Bookmarking A Directory............................|netrw-b|
+ Changing To A Bookmarked Directory.................|netrw-B|
+ Listing Bookmarks And History......................|netrw-q|
+ Improving Directory Browsing.......................|netrw-list-hack| }}}1
+8. Problems and Fixes...................................|netrw-problems|
+9. Debugging............................................|netrw-debug|
+10. History..............................................|netrw-history|
+11. Credits..............................................|netrw-credits|
The functionality mentioned here is done via using |standard-plugin|
techniques. This plugin is only available if
@@ -177,16 +208,16 @@ by setting a variable (ex. scp uses the variable g:netrw_scp_cmd,
which is defaulted to "scp -q").
Ftp, an old protocol, seems to be blessed by numerous implementations.
-Unfortunately, some implementations are noisy (i.e., add junk to the end
+Unfortunately, some implementations are noisy (ie., add junk to the end
of the file). Thus, concerned users may decide to write a NetReadFixup()
function that will clean up after reading with their ftp. Some Unix systems
-(i.e., FreeBSD) provide a utility called "fetch" which uses the ftp protocol
+(ie., FreeBSD) provide a utility called "fetch" which uses the ftp protocol
but is not noisy and more convenient, actually, for <netrw.vim> to use.
Consequently, if "fetch" is executable, it will be used to do reads for
ftp://... (and http://...) . See |netrw-var| for more about this.
For rcp, scp, sftp, and http, one may use network-oriented file transfers
-transparently; i.e.
+transparently; ie.
>
vim rcp://[user@]machine/path
vim scp://[user@]machine/path
@@ -198,7 +229,7 @@ that file. Your ftp must be able to use the <.netrc> file on its own, however.
vim ftp://[user@]machine[[:#]portnumber]/path
<
However, ftp will often need to query the user for the userid and password.
-The latter will be done "silently"; i.e. asterisks will show up instead of
+The latter will be done "silently"; ie. asterisks will show up instead of
the actually-typed-in password. Netrw will retain the userid and password
for subsequent read/writes from the most recent transfer so subsequent
transfers (read/write) to or from that machine will take place without
@@ -482,7 +513,7 @@ To handle the SSL certificate dialog for untrusted servers, one may pull
down the certificate and place it into /usr/ssl/cert.pem. This operation
renders the server treatment as "trusted".
- *netrw-fixup*
+ *netrw-fixup* *netreadfixup*
If your ftp for whatever reason generates unwanted lines (such as AUTH
messages) you may write a NetReadFixup(tmpfile) function:
>
@@ -521,30 +552,38 @@ from <netrw.vim> itself:
==============================================================================
7. Directory Browser *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
- ?..........Help....................................|netrw-help|
- <cr>.......Browsing................................|netrw-cr|
- <del>......Deleting Files or Directories...........|netrw-delete|
- -..........Going Up................................|netrw--|
- a..........Hiding Files or Directories.............|netrw-a|
- b..........Bookmarking a Directory.................|netrw-b|
- B..........Changing to a Bookmarked Directory......|netrw-B|
- 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|
- i..........Long Listing............................|netrw-i|
- <c-l>......Refreshing the Listing..................|netrw-ctrl-l|
- o..........Browsing with a Horizontal Split........|netrw-o|
- p..........Preview Window..........................|netrw-p|
- q..........Listing Bookmarks and History...........|netrw-q|
- r..........Reversing Sorting Order.................|netrw-r|
- R..........Renaming Files or Directories...........|netrw-R|
- s..........Selecting Sorting Style.................|netrw-s|
- S..........Editing the Sorting Sequence............|netrw-S|
- u..........Changing to a Predecessor Directory.....|netrw-u|
- U..........Changing to a Successor Directory.......|netrw-U|
- v..........Browsing with a Vertical Split..........|netrw-v|
- x..........Customizing Browsing....................|netrw-x|
+
+MAPS *netrw-maps*
+ ?................Help.......................................|netrw-help|
+ <cr>.............Browsing...................................|netrw-cr|
+ <del>............Deleting Files or Directories..............|netrw-delete|
+ -................Going Up...................................|netrw--|
+ a................Hiding Files or Directories................|netrw-a|
+ b................Bookmarking a Directory....................|netrw-b|
+ B................Changing to a Bookmarked Directory.........|netrw-B|
+ 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|
+ i................Long Listing...............................|netrw-i|
+ <c-l>............Refreshing the Listing.....................|netrw-ctrl-l|
+ o................Browsing with a Horizontal Split...........|netrw-o|
+ p................Preview Window.............................|netrw-p|
+ q................Listing Bookmarks and History..............|netrw-q|
+ r................Reversing Sorting Order....................|netrw-r|
+ R................Renaming Files or Directories..............|netrw-R|
+ s................Selecting Sorting Style....................|netrw-s|
+ S................Editing the Sorting Sequence...............|netrw-S|
+ u................Changing to a Predecessor Directory........|netrw-u|
+ U................Changing to a Successor Directory..........|netrw-U|
+ v................Browsing with a Vertical Split.............|netrw-v|
+ x................Customizing Browsing.......................|netrw-x|
+
+ COMMANDS *netrw-explore-cmds*
+ :Explore[!] [dir].Explore directory of current file........|netrw-explore|
+ :Sexplore[!] [dir].Split & Explore directory of current file|netrw-explore|
+ :Hexplore[!] [dir].Horizontal Split & Explore...............|netrw-explore|
+ :Vexplore[!] [dir].Vertical Split & Explore.................|netrw-explore|
QUICK REFERENCE COMMANDS TABLE *netrw-browse-cmds*
>
@@ -581,51 +620,103 @@ NETRW BROWSER VARIABLES *netrw-browse-var*
< g:netrw_alto change from above splitting to
below splitting by setting this
variable (see |netrw-o|)
+ default: =0
+
g:netrw_altv change from left splitting to
right splitting by setting this
variable (see |netrw-v|)
+ default: =0
+
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
- remove such embedded messages.
+ remove such embedded messages. By
+ default its value is:
+ '^total\s\+\d\+$\|
+ ^Trying\s\+\d\+.*$\|
+ ^KERBEROS_V\d rejected\|
+ ^Security extensions not\|
+ No such file\|
+ : connect to address [0-9a-fA-F:]*
+ : No route to host$'
+
+ g:netrw_ssh_browse_reject ssh can sometimes produce unwanted
+ lines/messages/banners/and whatnot
+ that one doesn't want masquerading
+ as "directories" and "files". Use
+ this pattern to remove such embedded
+ messages. By default its value is:
+ '^total\s\+\d\+$'
+
g:netrw_keepdir =1 (default) keep current directory
immune from the browsing directory.
=0 keep the current directory the
same as the browsing directory.
The browsing directory is contained in
b:netrw_curdir
+
g:netrw_list_cmd command for listing remote directories
+ default: (if ssh is executable)
+ "ssh HOSTNAME ls -FLa"
+
g:netrw_longlist if =1, then long listing will be default
+
g:netrw_ftp_list_cmd options for passing along to ftp for
directory listing. Defaults:
unix or g:netrw_cygwin set: : "ls -lF"
otherwise "dir"
+
g:netrw_list_hide comma separated list of patterns for
hiding files
+ default: ""
+
g:netrw_local_mkdir command for making a local directory
+ default: "ssh HOSTNAME mkdir"
+
g:netrw_local_rmdir remove directory command (rmdir)
- g:netrw_local_rename rename file/directory command
- unix-default: rm win32-default: ren
+ default: "rmdir"
+
g:netrw_maxfilenamelen =32 by default, selected so as to make
long listings fit on 80 column displays.
If your screen is wider, and you have
file/directory names longer than 32 bytes,
you may set this option to keep listings
columnar.
+
g:netrw_mkdir_cmd command for making a remote directory
+ default: "ssh HOSTNAME mkdir"
+
g:netrw_rm_cmd command for removing files
+ default: "ssh HOSTNAME rm"
+
g:netrw_rmdir_cmd command for removing directories
+ default: "ssh HOSTNAME rmdir"
+
g:netrw_rmf_cmd command for removing softlinks
+ default: "ssh HOSTNAME rm -f"
+
g:netrw_hide if true, the hiding list is used
+ default: =0
+
g:netrw_sort_by sort by "name", "time", or "size"
+ default: "name"
+
g:netrw_sort_direction sorting direction: "normal" or "reverse"
+ default: "normal"
+
g:netrw_sort_sequence when sorting by name, first sort by the
comma-separated pattern sequence
+ default: '[\/]$,*,\.bak$,\.o$,\.h$,
+ \.info$,\.swp$,\.obj$'
+
g:netrw_timefmt specify format string to strftime() (%c)
+ default: "%c"
+
g:netrw_winsize specify initial size of new o/v windows
+ default: ""
-INTRODUCTION TO DIRECTORY BROWSING *file-explorer*
+INTRODUCTION TO DIRECTORY BROWSING *netrw-browse-intro*
Netrw supports the browsing of directories on the local system and on remote
hosts, including generating listing directories, entering directories, editing
@@ -647,6 +738,31 @@ trailing slash and it will be interpreted as a request to list a directory:
If you'd like to avoid entering the password in for directory listings, scp,
ssh interaction, etc, see |netrw-list-hack|.
+
+DIRECTORY EXPLORING COMMANDS *netrw-explore*
+
+ :Explore[!] [dir].Explore directory of current file
+ :Sexplore[!] [dir].Split & Explore directory of current file
+ :Hexplore[!] [dir].Horizontal Split & Explore
+ :Vexplore[!] [dir].Vertical Split & Explore
+
+The Explore command will open the local-directory browser on the current
+file's directory (or on directory [dir] if specified). The window
+will be split only if the file has been modified, otherwise the
+browsing window will take over that window. Normally the splitting is
+taken horizontally; the optional ! will use vertical splitting.
+
+Sexplore will always split the window before invoking the local-directory
+browser. As with Explore, the splitting is normally done horizontally,
+but with the optional ! the splitting will be done vertically.
+
+Hexplore does an Explore with |belowright| horizontal splitting; the
+optional ! does the Explore with |aboveleft| horizontal splitting.
+
+Vexplore does an Explore with |leftabove| vertical splitting; the optiona
+! does an Explore with |topleft| vertical splitting.
+
+
REFRESHING THE LISTING *netrw-ctrl-l*
To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
@@ -677,6 +793,7 @@ Hitting the <cr> (the return key) will select the file or directory.
Directories will themselves be listed, and files will be opened using the
protocol given in the original read request.
+
LONG VS SHORT LISTING *netrw-i*
The short listing format gives just the files' and directories' names.
@@ -694,6 +811,7 @@ new directory's name. A bare <CR> at that point will abort the making of the
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/removing files and directories involves moving the cursor to the
@@ -740,15 +858,22 @@ One may rename a block of files and directories by selecting them with
the V (|linewise-visual|).
-HIDING FILES OR DIRECTORIES *netrw-a* *g:netrw_list_hide*
+HIDING FILES OR DIRECTORIES *g:netrw-a* *g:netrw_list_hide*
Netrw's browsing facility allows one to use the hiding list in one of
three ways: ignore it, hide files which match, and show only those files
-which match. The g:netrw_list_hide variable holds a comma delimited list
-of patterns (ex. \.obj) which specify the hiding list. (also see |netrw-h|)
+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 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" key to show all files,
+hide matching files, or to show only the matching files.
-EDIT FILE OR DIRECTORY HIDING LIST *netrw-h*
+
+EDIT FILE OR DIRECTORY HIDING LIST *netrw-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
@@ -756,7 +881,7 @@ delimited by commas. Files and/or directories satisfying these patterns will
either be hidden (ie. not shown) or be the only ones displayed (see |netrw-a|).
-BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o*
+BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz*
Normally one enters a file or directory using the <cr>. However, the "o" map
allows one to open a new window to hold the new directory listing or file. A
@@ -770,20 +895,21 @@ with the new window and cursor at the bottom, have
in your <.vimrc>.
-PREVIEW WINDOW
+
+PREVIEW WINDOW *netrw-p* *netrw-preview*
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.
-SELECTING SORTING STYLE *netrw-s*
+SELECTING SORTING STYLE *netrw-s* *netrw-sort*
One may select the sorting style by name, time, or (file) size. The
"s" map allows one to circulate among the three choices; the directory
listing will automatically be refreshed to reflect the selected style.
-EDITING THE SORTING SEQUENCE *netrw-S*
+EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence*
When "Sorted by" is name, one may specify priority via the sorting
sequence (g:netrw_sort_sequence). The sorting sequence typically
@@ -798,13 +924,13 @@ the g:netrw_sort_sequence variable (either manually or in your <.vimrc>)
or by using the "S" map.
-REVERSING SORTING ORDER *netrw-r*
+REVERSING SORTING ORDER *netrw-r* *netrw-reverse*
One may toggle between normal and reverse sorting order by pressing the
"r" key.
-CHANGING TO A PREDECESSOR DIRECTORY *netrw-u*
+CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir*
Every time you change to a new directory (new for the current session),
netrw will save the directory in a recently-visited directory history
@@ -813,7 +939,7 @@ list (unless g:netrw_dirhistmax is zero; by default, its ten). With the
the opposite, see |netrw-U|.
-CHANGING TO A SUCCESSOR DIRECTORY *netrw-U*
+CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir*
With the "U" map, one can change to a later directory (successor).
This map is the opposite of the "u" map. (see |netrw-u|) Use the
@@ -835,7 +961,7 @@ with the new window and cursor at the right, have
in your <.vimrc>.
-CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x*
+CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x* *netrw-handler*
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. Presumably
@@ -886,13 +1012,13 @@ Any count may be used to reference any of the bookmarks. See |netrw-b|
for how to bookmark a directory and |netrw-q| for how to list them.
-LISTING BOOKMARKS AND HISTORY *netrw-q*
+LISTING BOOKMARKS AND HISTORY *netrw-q* *netrw-listbookmark*
Pressing "q" will list the bookmarked directories and directory traversal
history (query). (see |netrw-b|, |netrw-B|, |netrw-u|, and |netrw-U|)
-IMPROVING DIRECTORY BROWSING *netrw-list-hack*
+IMPROVING DIRECTORY BROWSING *netrw-listhack*
Especially with the remote directory browser, constantly entering the password
is tedious.
@@ -1017,6 +1143,23 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
10. History *netrw-history*
+ v56: * LocalBrowse now saves autochdir setting, unsets it, and
+ restores it before returning.
+ * using vim's rename() instead of system + local_rename variable
+ v55: * -bar used with :Explore :Sexplore etc to allow multiple
+ commands to be separated by |s
+ * browser listings now use the "nowrap" option
+ * browser: some unuseful error messages now suppressed
+ v54: * For backwards compatibility, Explore and Sexplore have been
+ implemented. In addition, Hexplore and Vexplore commands
+ are available, too.
+ * <amatch> used instead of <afile> in the transparency
+ support (BufReadCmd, FileReadCmd, FileWriteCmd)
+ * ***netrw*** prepended to various error messages netrw may emit
+ * g:netrw_port used instead of b:netrw_port for scp
+ * any leading [:#] is removed from port numbers
+ v53: * backslashes as well as slashes placed in various patterns
+ (ex. g:netrw_sort_sequence) to better support Windows
v52: * nonumber'ing now set for browsing buffers
* when the hiding list hid all files, error messages ensued. Fixed
* when browsing, swf is set, but directory is not set, when netrw
@@ -1120,4 +1263,4 @@ which is loaded automatically at startup (assuming :set nocp).
Doug Claar -- modifications to test for success with ftp operation
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:ft=help:norl:fdm=marker
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 580a6f171..20ed1bf82 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4864,7 +4864,6 @@ fcs_reason-variable eval.txt /*fcs_reason-variable*
feature-list eval.txt /*feature-list*
fetch pi_netrw.txt /*fetch*
file-browser-5.2 version5.txt /*file-browser-5.2*
-file-explorer pi_netrw.txt /*file-explorer*
file-formats editing.txt /*file-formats*
file-pattern autocmd.txt /*file-pattern*
file-read insert.txt /*file-read*
@@ -4980,6 +4979,7 @@ g'a motion.txt /*g'a*
g, motion.txt /*g,*
g0 motion.txt /*g0*
g8 various.txt /*g8*
+g:netrw-a pi_netrw.txt /*g:netrw-a*
g:netrw_list_cmd pi_netrw.txt /*g:netrw_list_cmd*
g:netrw_list_hide pi_netrw.txt /*g:netrw_list_hide*
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
@@ -5162,7 +5162,6 @@ hebrew hebrew.txt /*hebrew*
hebrew.txt hebrew.txt /*hebrew.txt*
help various.txt /*help*
help-context help.txt /*help-context*
-help-tags tags 1
help-translated various.txt /*help-translated*
help-xterm-window various.txt /*help-xterm-window*
help.txt help.txt /*help.txt*
@@ -5723,6 +5722,7 @@ netbeans-run netbeans.txt /*netbeans-run*
netbeans-setup netbeans.txt /*netbeans-setup*
netbeans-support netbeans.txt /*netbeans-support*
netbeans.txt netbeans.txt /*netbeans.txt*
+netreadfixup pi_netrw.txt /*netreadfixup*
netrw pi_netrw.txt /*netrw*
netrw-- pi_netrw.txt /*netrw--*
netrw-B pi_netrw.txt /*netrw-B*
@@ -5730,13 +5730,13 @@ netrw-D pi_netrw.txt /*netrw-D*
netrw-R pi_netrw.txt /*netrw-R*
netrw-S pi_netrw.txt /*netrw-S*
netrw-U pi_netrw.txt /*netrw-U*
-netrw-a pi_netrw.txt /*netrw-a*
netrw-activate pi_netrw.txt /*netrw-activate*
netrw-b pi_netrw.txt /*netrw-b*
netrw-bookmark pi_netrw.txt /*netrw-bookmark*
netrw-bookmarks pi_netrw.txt /*netrw-bookmarks*
netrw-browse pi_netrw.txt /*netrw-browse*
netrw-browse-cmds pi_netrw.txt /*netrw-browse-cmds*
+netrw-browse-intro pi_netrw.txt /*netrw-browse-intro*
netrw-browse-var pi_netrw.txt /*netrw-browse-var*
netrw-c pi_netrw.txt /*netrw-c*
netrw-cadaver pi_netrw.txt /*netrw-cadaver*
@@ -5749,24 +5749,34 @@ netrw-d pi_netrw.txt /*netrw-d*
netrw-debug pi_netrw.txt /*netrw-debug*
netrw-delete pi_netrw.txt /*netrw-delete*
netrw-dir pi_netrw.txt /*netrw-dir*
+netrw-downdir pi_netrw.txt /*netrw-downdir*
+netrw-edithide pi_netrw.txt /*netrw-edithide*
netrw-ex pi_netrw.txt /*netrw-ex*
+netrw-explore pi_netrw.txt /*netrw-explore*
+netrw-explore-cmds pi_netrw.txt /*netrw-explore-cmds*
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-history pi_netrw.txt /*netrw-history*
+netrw-horiz pi_netrw.txt /*netrw-horiz*
netrw-i pi_netrw.txt /*netrw-i*
netrw-list pi_netrw.txt /*netrw-list*
-netrw-list-hack pi_netrw.txt /*netrw-list-hack*
+netrw-listbookmark pi_netrw.txt /*netrw-listbookmark*
+netrw-listhack pi_netrw.txt /*netrw-listhack*
+netrw-maps pi_netrw.txt /*netrw-maps*
netrw-move pi_netrw.txt /*netrw-move*
netrw-netrc pi_netrw.txt /*netrw-netrc*
netrw-nread pi_netrw.txt /*netrw-nread*
netrw-nwrite pi_netrw.txt /*netrw-nwrite*
netrw-o pi_netrw.txt /*netrw-o*
netrw-options pi_netrw.txt /*netrw-options*
+netrw-p pi_netrw.txt /*netrw-p*
netrw-passwd pi_netrw.txt /*netrw-passwd*
netrw-path pi_netrw.txt /*netrw-path*
+netrw-preview pi_netrw.txt /*netrw-preview*
netrw-problems pi_netrw.txt /*netrw-problems*
netrw-protocol pi_netrw.txt /*netrw-protocol*
netrw-q pi_netrw.txt /*netrw-q*
@@ -5774,10 +5784,14 @@ netrw-r pi_netrw.txt /*netrw-r*
netrw-read pi_netrw.txt /*netrw-read*
netrw-ref pi_netrw.txt /*netrw-ref*
netrw-rename pi_netrw.txt /*netrw-rename*
+netrw-reverse pi_netrw.txt /*netrw-reverse*
netrw-s pi_netrw.txt /*netrw-s*
+netrw-sort pi_netrw.txt /*netrw-sort*
+netrw-sortsequence pi_netrw.txt /*netrw-sortsequence*
netrw-transparent pi_netrw.txt /*netrw-transparent*
netrw-u pi_netrw.txt /*netrw-u*
netrw-uidpass pi_netrw.txt /*netrw-uidpass*
+netrw-updir pi_netrw.txt /*netrw-updir*
netrw-urls pi_netrw.txt /*netrw-urls*
netrw-v pi_netrw.txt /*netrw-v*
netrw-var pi_netrw.txt /*netrw-var*
diff --git a/runtime/plugin/netrw.vim b/runtime/plugin/netrw.vim
index f1da4b072..52220120a 100644
--- a/runtime/plugin/netrw.vim
+++ b/runtime/plugin/netrw.vim
@@ -1,7 +1,7 @@
" netrw.vim: Handles file transfer and remote directory listing across a network
-" last change: Dec 29, 2004
+" Last Change: Aug 01, 2005
" Maintainer: Charles E Campbell, Jr <drchipNOSPAM at campbellfamily dot biz>
-" Version: 54
+" Version: 56
" License: Vim License (see vim's :help license)
"
" But be doers of the Word, and not only hearers, deluding your own selves
@@ -10,13 +10,13 @@
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
" ---------------------------------------------------------------------
-" Prevent Reloading: {{{1
+" Load Once: {{{1
if exists("g:loaded_netrw") || &cp
finish
endif
-let g:loaded_netrw = "v54"
-let s:save_cpo = &cpo
+let g:loaded_netrw = "v56"
let loaded_explorer = 1
+let s:keepcpo = &cpo
set cpo&vim
" ---------------------------------------------------------------------
@@ -43,7 +43,7 @@ if !exists("g:netrw_list_cmd")
" provide a default listing command
let g:netrw_list_cmd= "ssh HOSTNAME ls -FLa"
else
-" call Decho("ssh is not executable, can't do remote directory exploring")
+" call Decho("ssh is not executable, can't do remote directory exploring with ssh")
let g:netrw_list_cmd= ""
endif
endif
@@ -100,15 +100,6 @@ endif
if !exists("g:netrw_local_rmdir")
let g:netrw_local_rmdir= "rmdir"
endif
-if !exists("g:netrw_local_rename")
- if g:netrw_cygwin
- let g:netrw_local_rename= "mv"
- elseif has("win32") || has("win95") || has("win64") || has("win16")
- let g:netrw_local_rename= "rename"
- elseif has("unix")
- let g:netrw_local_rename= "mv"
- endif
-endif
if !exists("g:netrw_local_mkdir")
let g:netrw_local_mkdir= "mkdir"
endif
@@ -216,30 +207,36 @@ endif
if version >= 600
augroup FileExplorer
au!
- au BufEnter * call <SID>LocalBrowse(expand("<afile>"))
+ au BufEnter * call <SID>LocalBrowse(expand("<amatch>"))
augroup END
" Network Handler: {{{2
augroup Network
au!
if has("win32") || has("win95") || has("win64") || has("win16")
- au BufReadCmd file://* exe "silent doau BufReadPre ".expand("<afile>")|exe 'e '.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
+ au BufReadCmd file://* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e '.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
else
- au BufReadCmd file:///* exe "silent doau BufReadPre ".expand("<afile>")|exe 'e /'.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
- au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".expand("<afile>")|exe 'e /'.substitute(expand("<afile>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<afile>")
+ au BufReadCmd file:///* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au BufReadCmd file://localhost/* exe "silent doau BufReadPre ".expand("<amatch>")|exe 'e /'.substitute(expand("<amatch>"),"file:/*","","")|exe "silent doau BufReadPost ".expand("<amatch>")
endif
- au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread 0r ".expand("<afile>")|exe "silent doau BufReadPost ".expand("<afile>")
- au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<afile>")|exe "Nread " .expand("<afile>")|exe "silent doau FileReadPost ".expand("<afile>")
- au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<afile>")|exe "Nwrite " .expand("<afile>")|exe "silent doau BufWritePost ".expand("<afile>")
- au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<afile>")|exe "'[,']Nwrite " .expand("<afile>")|exe "silent doau FileWritePost ".expand("<afile>")
+ au BufReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread 0r ".expand("<amatch>")|exe "silent doau BufReadPost ".expand("<amatch>")
+ au FileReadCmd ftp://*,rcp://*,scp://*,http://*,dav://*,rsync://*,sftp://* exe "silent doau BufReadPre ".expand("<amatch>")|exe "Nread " .expand("<amatch>")|exe "silent doau FileReadPost ".expand("<amatch>")
+ au BufWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe "Nwrite " .expand("<amatch>")|exe "silent doau BufWritePost ".expand("<amatch>")
+ au FileWriteCmd ftp://*,rcp://*,scp://*,dav://*,rsync://*,sftp://* exe "silent doau BufWritePre ".expand("<amatch>")|exe "'[,']Nwrite " .expand("<amatch>")|exe "silent doau FileWritePost ".expand("<amatch>")
augroup END
endif
" ------------------------------------------------------------------------
-" Commands: :Nread, :Nwrite, and :NetUserPass {{{1
-com! -nargs=* Nread call <SID>NetSavePosn()<bar>call <SID>NetRead(<f-args>)<bar>call <SID>NetRestorePosn()
-com! -range=% -nargs=* Nwrite call <SID>NetSavePosn()<bar><line1>,<line2>call <SID>NetWrite(<f-args>)<bar>call <SID>NetRestorePosn()
+" Commands: :Nread, :Nwrite, :NetUserPass {{{1
+com! -nargs=* Nread call s:NetSavePosn()<bar>call s:NetRead(<f-args>)<bar>call s:NetRestorePosn()
+com! -range=% -nargs=* Nwrite call s:NetSavePosn()<bar><line1>,<line2>call s:NetWrite(<f-args>)<bar>call s:NetRestorePosn()
com! -nargs=* NetUserPass call NetUserPass(<f-args>)
+" Commands: :Explore, :Sexplore, Hexplore, Vexplore {{{1
+com! -nargs=? -bar -bang Explore call s:Explore(0,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang Sexplore call s:Explore(1,0+<bang>0,<q-args>)
+com! -nargs=? -bar -bang Hexplore call s:Explore(1,2+<bang>0,<q-args>)
+com! -nargs=? -bar -bang Vexplore call s:Explore(1,4+<bang>0,<q-args>)
+
" ------------------------------------------------------------------------
" NetSavePosn: saves position of cursor on screen {{{1
fun! s:NetSavePosn()
@@ -352,7 +349,7 @@ fun! s:NetRead(...)
let ichoice = ichoice + 1
if ichoice > a:0
if !exists("g:netrw_quiet")
- echoerr "Unbalanced string in filename '". wholechoice ."'"
+ echoerr "***netrw*** Unbalanced string in filename '". wholechoice ."'"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
" call Dret("NetRead")
@@ -436,10 +433,10 @@ fun! s:NetRead(...)
exe g:netrw_silentxfer."%!".g:netrw_ftp_cmd." -i ".g:netrw_machine
endif
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
- if getline(1) !~ "^$" && !exists("g:netrw_quiet")
+ if getline(1) !~ "^$" && !exists("g:netrw_quiet") && getline(1) !~ '^Trying '
let debugkeep= &debug
set debug=msg
- echoerr getline(1)
+ echoerr "***netrw*** ".getline(1)
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
let &debug= debugkeep
endif
@@ -485,7 +482,7 @@ fun! s:NetRead(...)
if getline(1) !~ "^$"
" call Decho("error<".getline(1).">")
if !exists("g:netrw_quiet")
- echoerr getline(1)
+ echoerr "***netrw*** ".getline(1)
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
endif
@@ -518,7 +515,7 @@ fun! s:NetRead(...)
" call Decho("read via http (method #5)")
if g:netrw_http_cmd == ""
if !exists("g:netrw_quiet")
- echoerr "neither wget nor fetch command is available"
+ echoerr "***netrw*** neither wget nor fetch command is available"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
exit
@@ -596,7 +593,7 @@ fun! s:NetRead(...)
elseif b:netrw_method == 8 " read with fetch
if g:netrw_fetch_cmd == ""
if !exists("g:netrw_quiet")
- echoerr "fetch command not available"
+ echoerr "***netrw*** fetch command not available"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
exit
@@ -678,17 +675,23 @@ fun! s:NetGetFile(readcmd, fname, method)
if a:readcmd[0] == '0'
" get file into buffer
+
" record remote filename
- let rfile= bufname("%")
-" call Decho("edit remotefile<".rfile.">")
+ let rfile= bufname(".")
+" call Decho("remotefile<".rfile.">")
+" call Dredir("ls!","starting buffer list")
+
" rename the current buffer to the temp file (ie. fname)
- exe "keepalt file ".fname
+ keepalt exe "file ".fname
+" call Dredir("ls!","after renaming current buffer to <".fname.">")
+
" edit temporary file
e
+" call Dredir("ls!","after editing temporary file")
+
" rename buffer back to remote filename
- exe "keepalt file ".rfile
- " wipe out the buffer with the temp file name
- exe "bwipe ".fname
+ keepalt exe "file ".rfile
+" call Dredir("ls!","renaming buffer back to remote filename<".rfile.">")
let line1 = 1
let line2 = line("$")
@@ -712,6 +715,8 @@ fun! s:NetGetFile(readcmd, fname, method)
if exists("*NetReadFixup")
" call Decho("calling NetReadFixup(method<".a:method."> line1=".line1." line2=".line2.")")
call NetReadFixup(a:method, line1, line2)
+" else " Decho
+" call Decho("NetReadFixup() not called, doesn't exist")
endif
" update the Buffers menu
@@ -787,7 +792,7 @@ fun! s:NetWrite(...) range
let ichoice = ichoice + 1
if choice > a:0
if !exists("g:netrw_quiet")
- echoerr "Unbalanced string in filename '". wholechoice ."'"
+ echoerr "***netrw*** Unbalanced string in filename '". wholechoice ."'"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
" call Dret("NetWrite")
@@ -858,7 +863,7 @@ fun! s:NetWrite(...) range
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
if getline(1) !~ "^$"
if !exists("g:netrw_quiet")
- echoerr getline(1)
+ echoerr "***netrw*** ".getline(1)
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let mod=1
@@ -898,7 +903,7 @@ fun! s:NetWrite(...) range
" If the result of the ftp operation isn't blank, show an error message (tnx to Doug Claar)
if getline(1) !~ "^$"
if !exists("g:netrw_quiet")
- echoerr getline(1)
+ echoerr "***netrw*** ".getline(1)
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let mod=1
@@ -927,7 +932,7 @@ fun! s:NetWrite(...) range
" http: NetWrite Method #5
elseif b:netrw_method == 5
if !exists("g:netrw_quiet")
- echoerr "***warning*** currently <netrw.vim> does not support writing using http:"
+ echoerr "***netrw*** currently <netrw.vim> does not support writing using http:"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
@@ -1010,8 +1015,10 @@ fun! s:NetWrite(...) range
" call Dret("NetWrite")
endfun
-" ------------------------------------------------------------------------
-" Browsing Support For Remote Directories And Files: {{{1
+" ===========================================
+" 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
@@ -1040,7 +1047,7 @@ fun! <SID>NetBrowse(dirname)
endif
" make this buffer modifiable
- setlocal ma
+ setlocal ma nonu nowrap
" analyze a:dirname and g:netrw_list_cmd
let dirpat = '^\(\w\{-}\)://\(\w\+@\)\=\([^/]\+\)/\(.*\)$'
@@ -1048,7 +1055,7 @@ fun! <SID>NetBrowse(dirname)
" call Decho("dirpat<".dirpat.">")
if dirname !~ dirpat
if !exists("g:netrw_quiet")
- echoerr "NetBrowse: I don't understand your dirname<".dirname.">"
+ echoerr "***netrw*** netrw doesn't understand your dirname<".dirname.">"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
" call Dret("NetBrowse : badly formatted dirname<".dirname.">")
@@ -1080,7 +1087,7 @@ fun! <SID>NetBrowse(dirname)
" optionally sort by time (-t) or by size (-S)
if listcmd == "dir" && g:netrw_sort_by =~ "^[ts]"
- echoerr "***warning*** windows' ftp doesn't support time/size sorts (get cygwin, set g:netrw_cygwin)"
+ echoerr "***netrw*** windows' ftp doesn't support time/size sorts (get cygwin, set g:netrw_cygwin)"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
else
if g:netrw_sort_by =~ "^t"
@@ -1185,7 +1192,7 @@ fun! <SID>NetBrowse(dirname)
exe 'nnoremap <buffer> <silent> R :exe "norm! 0"<bar>call <SID>NetBrowseRename("'.user.machine.'","'.path.'")<cr>'
exe 'vnoremap <buffer> <silent> R :call <SID>NetBrowseRename("'.user.machine.'","'.path.'")<cr>'
nnoremap <buffer> ? :he netrw-browse-cmds<cr>
- setlocal ma nonu
+ setlocal ma nonu nowrap
" Set up the banner
" call Decho("set up the banner: sortby<".g:netrw_sort_by."> method<".method.">")
@@ -1251,9 +1258,9 @@ fun! <SID>NetBrowse(dirname)
keepjumps norm! 0
" more cleanup
- exe 'keepjumps silent '.s:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
- exe "keepjumps silent ".s:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#'
- exe "keepjumps silent ".s:netrw_bannercnt.',$g/ -> /s# -> .*$#/#'
+ exe 'keepjumps silent! '.s:netrw_bannercnt.',$s/^\(\%(\S\+\s\+\)\{7}\S\+\)\s\+\(\S.*\)$/\2/e'
+ exe "keepjumps silent! ".s:netrw_bannercnt.',$g/ -> /s# -> .*/$#/#e'
+ exe "keepjumps silent! ".s:netrw_bannercnt.',$g/ -> /s# -> .*$#/#e'
endif
else
@@ -1307,7 +1314,11 @@ fun! <SID>NetBrowse(dirname)
if line("$") >= s:netrw_bannercnt
if g:netrw_sort_by =~ "^n"
call s:SetSort()
- exe 'keepjumps silent '.s:netrw_bannercnt.',$call s:NetSort()'
+ if v:version < 700
+ exe 'keepjumps silent '.s:netrw_bannercnt.',$call s:NetSort()'
+ else
+ exe 'keepjumps silent '.s:netrw_bannercnt.',$sort'
+ endif
exe 'keepjumps silent '.s:netrw_bannercnt.',$s/^\d\{3}\///e'
endif
if g:netrw_longlist
@@ -1459,7 +1470,7 @@ fun! <SID>NetBrowseRm(usrhost,path) range
" call Decho("returned=".ret." errcode=".v:shell_error)
if v:shell_error != 0 && !exists("g:netrw_quiet")
- echoerr "unable to remove directory<".rmfile."> -- is it empty?"
+ echoerr "***netrw*** unable to remove directory<".rmfile."> -- is it empty?"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
endif
@@ -1669,14 +1680,14 @@ fun! NetBrowseFtpCmd(path,cmd)
" cleanup for Windows
if has("win32") || has("win95") || has("win64") || has("win16")
- keepjumps silent! %s/\r$//
+ keepjumps silent!! %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/$/@/
+ keepjumps silent! g/d\%([-r][-w][-x]\)\{3}/s@$@/@
+ keepjumps silent! g/l\%([-r][-w][-x]\)\{3}/s/$/@/
if !g:netrw_longlist
- exe "keepjumps silent ".curline.',$s/^\%(\S\+\s\+\)\{8}//'
+ exe "keepjumps silent! ".curline.',$s/^\%(\S\+\s\+\)\{8}//e'
endif
endif
@@ -1782,7 +1793,7 @@ fun! <SID>NetLongList(mode)
endfun
" ---------------------------------------------------------------------
-" NetSaveWordPosn: used by the "s" command in both remote and local
+" NetSaveWordPosn: used by the "s" command in both remote and local {{{2
" browsing. Along with NetRestoreWordPosn(), it keeps the cursor on
" the same word even though the sorting has changed its order of appearance.
fun! s:NetSaveWordPosn()
@@ -1792,7 +1803,7 @@ fun! s:NetSaveWordPosn()
endfun
" ---------------------------------------------------------------------
-" NetRestoreWordPosn: used by the "s" command; see NetSaveWordPosn() above
+" NetRestoreWordPosn: used by the "s" command; see NetSaveWordPosn() above {{{2
fun! s:NetRestoreWordPosn()
" call Dfunc("NetRestoreWordPosn()")
silent! call search(s:netrw_saveword,'w')
@@ -1800,7 +1811,7 @@ fun! s:NetRestoreWordPosn()
endfun
" ---------------------------------------------------------------------
-" NetMakeDir: this function makes a directory (both local and remote)
+" NetMakeDir: this function makes a directory (both local and remote) {{{2
fun! <SID>NetMakeDir(usrhost)
" call Dfunc("NetMakeDir(usrhost<".a:usrhost.">)")
@@ -1825,7 +1836,7 @@ fun! <SID>NetMakeDir(usrhost)
" call Decho("fullnewdir<".fullnewdir.">")
if isdirectory(fullnewdir)
if !exists("g:netrw_quiet")
- echoerr "***warning*** <".newdirname."> is already a directory!"
+ echoerr "***netrw*** <".newdirname."> is already a directory!"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
" call Dret("NetMakeDir : directory<".newdirname."> exists previously")
@@ -1833,14 +1844,25 @@ fun! <SID>NetMakeDir(usrhost)
endif
if filereadable(fullnewdir)
if !exists("g:netrw_quiet")
- echoerr "***warning*** <".newdirname."> is already a file!"
+ echoerr "***netrw*** <".newdirname."> is already a file!"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
" call Dret("NetMakeDir : file<".newdirname."> exists previously")
return
endif
-" call Decho("exe silent! !".g:netrw_local_mkdir.' "'.fullnewdir.'"')
- exe "silent! !".g:netrw_local_mkdir.' "'.fullnewdir.'"'
+
+ " requested new local directory is neither a pre-existing file or
+ " directory, so make it!
+ if exists("*mkdir")
+ call mkdir(fullnewdir,"p")
+ else
+ let netrw_origdir= s:NetGetcwd(1)
+ exe 'cd '.b:netrw_curdir
+" call Decho("netrw_origdir<".netrw_origdir."> b:netrw_curdir<".b:netrw_curdir.">")
+" call Decho("exe silent! !".g:netrw_local_mkdir.' "'.newdirname.'"')
+ exe "silent! !".g:netrw_local_mkdir.' "'.newdirname.'"'
+ if g:netrw_keepdir | exe 'keepjumps cd '.netrw_origdir | endif
+ endif
if v:shell_error == 0
" refresh listing
@@ -1852,7 +1874,7 @@ fun! <SID>NetMakeDir(usrhost)
exe "norm! ".hline."G0z\<CR>"
exe linenum
elseif !exists("g:netrw_quiet")
- echoerr "***warning*** unable to make directory<".newdirname.">"
+ echoerr "***netrw*** unable to make directory<".newdirname.">"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
redraw!
@@ -1872,7 +1894,7 @@ fun! <SID>NetMakeDir(usrhost)
exe "norm! ".hline."G0z\<CR>"
exe linenum
elseif !exists("g:netrw_quiet")
- echoerr "***warning*** unable to make directory<".newdirname.">"
+ echoerr "***netrw*** unable to make directory<".newdirname.">"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
redraw!
@@ -1882,7 +1904,7 @@ fun! <SID>NetMakeDir(usrhost)
endfun
" ---------------------------------------------------------------------
-" NetBookmarkDir:
+" NetBookmarkDir: {{{2
" 0: bookmark the current directory
" 1: change to the bookmarked directory
fun! <SID>NetBookmarkDir(chg,curdir)
@@ -1974,8 +1996,9 @@ fun! <SID>NetBookmarkDir(chg,curdir)
" call Dret("NetBookmarkDir")
endfun
-" ---------------------------------------------------------------------
-" Browsing Support For Local Directories And Files: {{{1
+" ==========================================
+" Local Directory Browsing Support: {{{1
+" ==========================================
" ---------------------------------------------------------------------
" LocalBrowse: supports local file/directory browsing {{{2
@@ -1995,107 +2018,43 @@ fun! <SID>LocalBrowse(dirname)
if v:version < 603
if !exists("g:netrw_quiet")
- echoerr "vim version<".v:version."> too old for browsing with netrw"
+ echoerr "***netrw*** vim version<".v:version."> too old for browsing with netrw"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
" call Dret("LocalBrowse : vim version<".v:version."> too old")
return
endif
+ " record autochdir setting and then insure its unset (tnx to David Fishburn)
+ let keep_autochdir= &autochdir
+ set noautochdir
+
" record and change current directory
- let netrw_origdir= s:NetGetcwd(1)
- try
- cd -
- let netrw_altdir= s:NetGetcwd(1)
- cd -
- catch
- let netrw_altdir= ''
- endtry
- exe 'cd '.escape(substitute(a:dirname,'\\','/','ge'),s:netrw_cd_escape)
-" call Decho("dirname<".a:dirname."> buf#".bufnr("%")." winnr=".winnr())
+ let b:netrw_curdir= substitute(a:dirname,'\\','/','ge')
+ if b:netrw_curdir =~ '[/\\]$'
+ let b:netrw_curdir= substitute(b:netrw_curdir,'[/\\]$','','e')
+ endif
+" call Decho("b:netrw_curdir<".b:netrw_curdir.">")
+ " make netrw's idea of the current directory vim's if the user wishes
+ if g:netrw_keepdir
+" call Decho("change directory: cd ".b:netrw_curdir)
+ exe 'cd '.b:netrw_curdir
+ endif
+
+ " change the name of the buffer to reflect the b:netrw_curdir
+ exe 'silent file '.escape(b:netrw_curdir,s:netrw_cd_escape)
" make this buffer modifiable
setlocal ma
- " disable 'autochdir', it breaks things
- set noautochdir
-
" ---------------------------
" Perform Directory Listing:
-" call Decho("Perform directory listing...")
- " set up new buffer and map
- " dirname : current working directory, no escapes, has trailing /
- " dirnamens : dirname, but with no trailing slash
- " dirnamenr : buffer number containing dirnamens
- " dirnamebuf: buffer's idea of dirname, with all \ -> /
- let dirname = s:NetGetcwd(0)
- let dirnamens = substitute(dirname,'[\/]$','','e')
- let dirnamenr = bufnr(dirnamens.'$')
- let dirnamebuf = substitute(bufname(dirnamenr),'\\','/','ge')
-" call Decho("dirnamenr= bufnr(".dirnamens.")=".dirnamenr." bufname(".dirnamenr.")=".bufname(dirnamenr))
-
- if dirnamenr != 0 && dirnamebuf != dirnamens
- " try keeping the trailing slash
- let dirnamenr = bufnr(dirname.'$')
-" call Decho("dirnamenr= bufnr(".dirname.")=".dirnamenr." bufname(".dirnamenr.")=".bufname(dirnamenr)." (retry with /)")
- endif
-
- if dirnamenr != -1
- " buffer already exists (hidden), so switch to it!
-" call Decho("buffer already exists: dirnamenr=".dirnamenr." dirname<".dirname."> pre-exists")
-" call Dredir("ls!")
- exe "b ".dirnamenr
- exe 'silent! cd '.escape(dirname,s:netrw_cd_escape)
-" call Decho("changed directory to<".dirname.">")
- if a:dirname != "." && line("$") >= 5 && exists("b:netrw_curdir")
- if b:netrw_curdir == dirname
-" call Dret("LocalBrowse : buffer already exists with info, #".dirnamenr)
- if g:netrw_keepdir
- if netrw_altdir != ''
- exe 'keepjumps cd '.netrw_altdir
- endif
- exe 'keepjumps cd '.netrw_origdir
- endif
- return
- endif
- endif
-" call Decho("buffer already exists, but needs re-listing (buf#".dirnamenr.")")
-" call Decho("buffer name<".bufname("%")."> dirname<".dirname.">")
- setlocal ma
- keepjumps %d
- let curdir= substitute(substitute(expand("%"),'\\','/','ge'),'[^/]$','&/','e')
- if curdir != dirname
- " set standard browser options on buffer
- setlocal bt=nofile bh=hide nobl noswf
- exe 'silent file '.escape(dirname,s:netrw_cd_escape)
-" call Decho("errmsg1<".v:errmsg.">")
-" call Decho("renamed buffer to<".escape(dirname,s:netrw_cd_escape).">")
-" call Decho("yielding actual bufname<".bufname("%").">")
- endif
- else
-" call Decho("generate new buffer named<".escape(dirname,' #').">")
- silent! enew!
- " set standard browser options on buffer
- setlocal bt=nofile bh=hide nobl noswf nonu
- exe 'silent file '.substitute(escape(dirname,s:netrw_cd_escape),'[\/]$','','e')
-" call Decho("errmsg2<".v:errmsg.">")
-" call Decho("renamed buffer to<".substitute(escape(dirname,s:netrw_cd_escape),'[\/]$','','e').">")
-" call Decho("yielding actual bufname<".bufname("%").">")
- endif
- exe "setlocal ts=".g:netrw_maxfilenamelen
-
- if bufname("#") == "" && bufnr("#") != -1
- " the file command produces a lot of [No File] buffers
-" call Decho("wiping out nofile buffer#".bufnr("#"))
- exe bufnr("#")."bwipe"
- endif
" save current directory on directory history list
- call <SID>NetBookmarkDir(3,s:NetGetcwd(0))
+ call <SID>NetBookmarkDir(3,b:netrw_curdir)
" set up all the maps
" call Decho("Setting up local browser maps")
- let b:netrw_curdir= s:NetGetcwd(1)
nnoremap <buffer> <silent> <cr> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,<SID>NetGetWord()))<cr>
nnoremap <buffer> <silent> <c-l> :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'./'))<cr>
nnoremap <buffer> <silent> - :exe "norm! 0"<bar>call <SID>LocalBrowse(<SID>LocalBrowseChgDir(b:netrw_curdir,'../'))<cr>
@@ -2131,7 +2090,7 @@ fun! <SID>LocalBrowse(dirname)
keepjumps put ='\" ============================================================================'
keepjumps 1d
keepjumps put ='\" Directory Listing (netrw '.g:loaded_netrw.')'
- keepjumps put ='\" '.dirname
+ keepjumps put ='\" '.b:netrw_curdir
let s:netrw_bannercnt= 3
let sortby= g:netrw_sort_by
@@ -2171,7 +2130,7 @@ fun! <SID>LocalBrowse(dirname)
" call Decho("bannercnt=".s:netrw_bannercnt)
" generate the requested directory listing
- call LocalBrowseList(dirname)
+ call LocalBrowseList()
" manipulate the directory listing (hide, sort)
setlocal ft=netrwlist
@@ -2182,10 +2141,18 @@ fun! <SID>LocalBrowse(dirname)
if line("$") >= s:netrw_bannercnt
if g:netrw_sort_by =~ "^n"
call s:SetSort()
- exe 'keepjumps silent '.s:netrw_bannercnt.',$call s:NetSort()'
+ if v:version < 700
+ exe 'keepjumps silent '.s:netrw_bannercnt.',$call s:NetSort()'
+ else
+ exe 'keepjumps silent '.s:netrw_bannercnt.',$sort'
+ endif
exe 'keepjumps silent '.s:netrw_bannercnt.',$s/^\d\{3}\///e'
else
- exe 'keepjumps silent '.s:netrw_bannercnt.',$call s:NetSort()'
+ if v:version < 700
+ exe 'keepjumps silent '.s:netrw_bannercnt.',$call s:NetSort()'
+ else
+ exe 'keepjumps silent '.s:netrw_bannercnt.',$sort'
+ endif
exe 'keepjumps silent '.s:netrw_bannercnt.',$s/^\d\{-}\///e'
endif
endif
@@ -2193,30 +2160,25 @@ fun! <SID>LocalBrowse(dirname)
exe s:netrw_bannercnt
setlocal noma nomod nonu
- if g:netrw_keepdir
- if netrw_altdir != ''
- exe 'keepjumps cd '.netrw_altdir
- endif
- exe 'keepjumps cd '.netrw_origdir
- endif
+ let &autochdir= keep_autochdir
" call Dret("LocalBrowse : file<".expand("%:p")."> bufname<".bufname("%").">")
endfun
" ---------------------------------------------------------------------
" LocalBrowseList: does the job of "ls" for local directories {{{2
-fun! LocalBrowseList(dirname)
-" call Dfunc("LocalBrowseList(dirname<".a:dirname.">)")
+fun! LocalBrowseList()
+" call Dfunc("LocalBrowseList() b:netrw_curdir<".b:netrw_curdir.">")
" get the list of files contained in the current directory
- let dirname = escape(a:dirname,s:netrw_glob_escape)
- let dirnamelen = strlen(a:dirname)
- let filelist = glob(dirname."*")
+ let dirname = escape(b:netrw_curdir,s:netrw_glob_escape)
+ let dirnamelen = strlen(b:netrw_curdir)
+ let filelist = glob(dirname."/*")
" call Decho("glob(dirname<".dirname.">,*)=".filelist)
if filelist != ""
let filelist= filelist."\n"
endif
- let filelist= filelist.glob(dirname.".*")
+ let filelist= filelist.glob(dirname."/.*")
" call Decho("glob(dirname<".dirname.">,.*)=".glob(dirname.".*"))
" if the directory name includes a "$", and possibly other characters,
@@ -2226,13 +2188,13 @@ fun! LocalBrowseList(dirname)
if filelist == ""
let filelist= dirname."."
else
- let filelist= filelist."\n".a:dirname."."
+ let filelist= filelist."\n".b:netrw_curdir."."
endif
" call Decho("filelist<".filelist.">")
endif
if filelist !~ '[\\/]\.\.[\\/]\=\(\n\|$\)'
" call Decho("forcibly tacking on ..")
- let filelist= filelist."\n".a:dirname.".."
+ let filelist= filelist."\n".b:netrw_curdir.".."
" call Decho("filelist<".filelist.">")
endif
let filelist= substitute(filelist,'\n\{2,}','\n','ge')
@@ -2243,41 +2205,47 @@ fun! LocalBrowseList(dirname)
while filelist != ""
if filelist =~ '\n'
- let file = substitute(filelist,'\n.*$','','e')
+ let filename = substitute(filelist,'\n.*$','','e')
let filelist = substitute(filelist,'^.\{-}\n\(.*\)$','\1','e')
else
- let file = filelist
+ let filename = filelist
let filelist = ""
endif
- let pfile= file
- if isdirectory(file)
- let pfile= file."/"
+ let pfile= filename
+ if isdirectory(filename)
+ let pfile= filename."/"
endif
+ let pfile= substitute(pfile,'^/','','e')
if pfile =~ '//$'
let pfile= substitute(pfile,'//$','/','e')
endif
let pfile= strpart(pfile,dirnamelen)
+" call Decho(" ")
+" call Decho("filename<".filename.">")
+" call Decho("pfile <".pfile.">")
+
if g:netrw_longlist
- let sz = getfsize(file)
+ let sz = getfsize(filename)
let fsz = strpart(" ",1,15-strlen(sz)).sz
- let pfile= pfile."\t".fsz." ".strftime(g:netrw_timefmt,getftime(file))
+ let pfile= pfile."\t".fsz." ".strftime(g:netrw_timefmt,getftime(filename))
+" call Decho("sz=".sz." fsz=".fsz)
endif
if g:netrw_sort_by =~ "^t"
" sort by time (handles time up to 1 quintillion seconds, US)
-" call Decho("getftime(".file.")=".getftime(file))
- let t = getftime(file)
+" call Decho("getftime(".filename.")=".getftime(filename))
+ let t = getftime(filename)
let ft = strpart("000000000000000000",1,18-strlen(t)).t
-" call Decho("exe keepjumps put ='".ft.'/'.file."'")
+" call Decho("exe keepjumps put ='".ft.'/'.filename."'")
let ftpfile= ft.'/'.pfile
keepjumps put=ftpfile
elseif g:netrw_sort_by =~ "^s"
" sort by size (handles file sizes up to 1 quintillion bytes, US)
-" call Decho("getfsize(".file.")=".getfsize(file))
- let sz = getfsize(file)
+" call Decho("getfsize(".filename.")=".getfsize(filename))
+ let sz = getfsize(filename)
let fsz = strpart("000000000000000000",1,18-strlen(sz)).sz
-" call Decho("exe keepjumps put ='".fsz.'/'.file."'")
+" call Decho("exe keepjumps put ='".fsz.'/'.filename."'")
let fszpfile= fsz.'/'.pfile
keepjumps put =fszpfile
@@ -2287,6 +2255,7 @@ fun! LocalBrowseList(dirname)
keepjumps put=pfile
endif
endwhile
+ setlocal ts=32
" call Dret("LocalBrowseList")
endfun
@@ -2305,6 +2274,8 @@ fun! <SID>LocalBrowseChgDir(dirname,newdir,...)
" is removing the "/". Bad idea, so I have to put it back.
let dirname= dirname.'/'
" call Decho("adjusting dirname<".dirname.">")
+ setlocal ma
+ %d
endif
if newdir !~ '[\/]$'
@@ -2313,24 +2284,28 @@ fun! <SID>LocalBrowseChgDir(dirname,newdir,...)
" call Decho("handling a file: dirname<".dirname.">")
" this lets NetBrowseX avoid the edit
if a:0 < 1
- exe "e ".escape(dirname,s:netrw_cd_escape)
+" call Decho("dirname<".dirname."> netrw_cd_escape<".s:netrw_cd_escape.">")
+" call Decho("about to edit<".escape(dirname,s:netrw_cd_escape).">")
+ exe "e! ".escape(dirname,s:netrw_cd_escape)
endif
elseif newdir == './'
" refresh the directory list
" call Decho("refresh directory listing")
- setlocal ma
- %d
elseif newdir == '../'
" go up one directory
let dirname= substitute(dirname,'^\(.*/\)\([^/]\+[\/]$\)','\1','e')
" call Decho("go up one dir: dirname<".dirname.">")
+ setlocal ma
+ %d
else
" go down one directory
let dirname= dirname.newdir
" call Decho("go down one dir: dirname<".dirname."> newdir<".newdir.">")
+ setlocal ma
+ %d
endif
" call Dret("LocalBrowseChgDir <".dirname.">")
@@ -2364,7 +2339,7 @@ fun! <SID>LocalBrowseRm(path) range
endif
norm! 0
- let rmfile= a:path.curword
+ let rmfile= a:path."/".curword
" call Decho("rmfile<".rmfile.">")
if rmfile !~ '^"' && (rmfile =~ '@$' || rmfile !~ '[\/]$')
@@ -2417,11 +2392,11 @@ fun! <SID>LocalBrowseRm(path) range
" call Decho("3rd attempt to remove directory<".rmfile.">")
call system("rm ".rmfile)
if v:shell_error != 0 && !exists("g:netrw_quiet")
- echoerr "unable to remove directory<".rmfile."> -- is it empty?"
+ echoerr "***netrw*** unable to remove directory<".rmfile."> -- is it empty?"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
elseif !exists("g:netrw_quiet")
- echoerr "unable to remove directory<".rmfile."> -- is it empty?"
+ echoerr "***netrw*** unable to remove directory<".rmfile."> -- is it empty?"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
endif
@@ -2475,8 +2450,8 @@ fun! <SID>LocalBrowseRename(path) range
let newname= input("Moving ".oldname." to : ",substitute(oldname,'/*$','','e'))
call inputrestore()
- let ret= system(g:netrw_local_rename.' "'.oldname.'" "'.newname.'"')
-" call Decho("executing system(".g:netrw_local_rename." ".oldname." ".newname)
+ let ret= rename(oldname,newname)
+" call Decho("renaming <".oldname."> to <".newname.">")
let ctr= ctr + 1
endwhile
@@ -2497,17 +2472,55 @@ fun! <SID>LocalPreview(path) range
if !isdirectory(a:path)
exe "pedit ".a:path
elseif !exists("g:netrw_quiet")
- echoerr "sorry, cannot preview a directory such as <".a:path.">"
+ echoerr "***netrw*** sorry, cannot preview a directory such as <".a:path.">"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
elseif !exists("g:netrw_quiet")
- echoerr "sorry, to preview your vim needs the quickfix feature compiled in"
+ echoerr "***netrw*** sorry, to preview your vim needs the quickfix feature compiled in"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
" call Dret("LocalPreview")
endfun
" ---------------------------------------------------------------------
+" Explore: launch the local browser in the directory of the current file {{{2
+" dosplit==0: the window will be split iff the current file has
+" been modified
+" dosplit==1: the window will be split before running the local
+" browser
+fun! s:Explore(dosplit,style,...)
+" call Dfunc("Explore(dosplit=".a:dosplit." style=".a:style.")")
+
+ " if dosplit or file has been modified
+ if a:dosplit || &modified
+ if a:style == 0 " Explore, Sexplore
+ exe g:netrw_winsize."wincmd s"
+ elseif a:style == 1 "Explore!, Sexplore!
+ exe g:netrw_winsize."wincmd v"
+ elseif a:style == 2 " Hexplore
+ exe "bel ".g:netrw_winsize."wincmd s"
+ elseif a:style == 3 " Hexplore!
+ exe "abo ".g:netrw_winsize."wincmd s"
+ elseif a:style == 4 " Vexplore
+ exe "lefta ".g:netrw_winsize."wincmd v"
+ elseif a:style == 5 " Vexplore!
+ exe "rightb ".g:netrw_winsize."wincmd v"
+ endif
+ endif
+ norm! 0
+
+ if a:1 == ""
+ let newdir= substitute(expand("%:p"),'^\(.*\)[/\\][^/\\]*$','\1','e')
+ else
+ let newdir= a:1
+ endif
+" call Decho("newdir<".newdir.">")
+ call s:LocalBrowse(newdir)
+
+" call Dret("Explore")
+endfun
+
+" ---------------------------------------------------------------------
" NetGetcwd: get the current directory. {{{2
" Change backslashes to forward slashes, if any.
" If doesc is true, escape certain troublesome characters
@@ -2559,7 +2572,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
let mipf = '^\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)\s\+\(\S\+\)$'
let mf = '^\(\S\+\)\s\+\(\S\+\)$'
let ftpurm = '^ftp://\(\([^/@]\{-}\)@\)\=\([^/#:]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
- let rcpurm = '^rcp://\(\([^/@]\{-}\)@\)\=\([^/]\{-}\)/\(.*\)$'
+ let rcpurm = '^rcp://\%(\([^/@]\{-}\)@\)\=\([^/]\{-}\)/\(.*\)$'
let rcphf = '^\(\(\h\w*\)@\)\=\(\h\w*\):\([^@]\+\)$'
let scpurm = '^scp://\([^/]\{-}\)\([#:]\d\+\)\=/\(.*\)$'
let httpurm = '^http://\([^/]\{-}\)\(/.*\)\=$'
@@ -2573,10 +2586,10 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
" rcp://user@hostname/...path-to-file
if match(a:choice,rcpurm) == 0
" call Decho("rcp://...")
- let b:netrw_method = 1
- let userid = substitute(a:choice,rcpurm,'\2',"")
- let g:netrw_machine= substitute(a:choice,rcpurm,'\3',"")
- let b:netrw_fname = substitute(a:choice,rcpurm,'\4',"")
+ let b:netrw_method = 1
+ let userid = substitute(a:choice,rcpurm,'\1',"")
+ let g:netrw_machine = substitute(a:choice,rcpurm,'\2',"")
+ let b:netrw_fname = substitute(a:choice,rcpurm,'\3',"")
if userid != ""
let g:netrw_uid= userid
endif
@@ -2585,9 +2598,9 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
elseif match(a:choice,scpurm) == 0
" call Decho("scp://...")
let b:netrw_method = 4
- let g:netrw_machine= substitute(a:choice,scpurm,'\1',"")
- let g:netrw_port = substitute(a:choice,scpurm,'\2',"")
- let b:netrw_fname = substitute(a:choice,scpurm,'\3',"")
+ let g:netrw_machine = substitute(a:choice,scpurm,'\1',"")
+ let g:netrw_port = substitute(a:choice,scpurm,'\2',"")
+ let b:netrw_fname = substitute(a:choice,scpurm,'\3',"")
" http://user@hostname/...path-to-file
elseif match(a:choice,httpurm) == 0
@@ -2699,7 +2712,7 @@ fun! s:NetMethod(choice) " globals: method machine id passwd fname
else
if !exists("g:netrw_quiet")
- echoerr "***error*** cannot determine method"
+ echoerr "***netrw*** cannot determine method"
call inputsave()|call input("Press <cr> to continue")|call inputrestore()
endif
let b:netrw_method = -1
@@ -2840,9 +2853,10 @@ endif
" ---------------------------------------------------------------------
" NetSort: Piet Delport's BISort2() function, modified to take a range {{{1
-fun! <SID>NetSort() range
-" call Dfunc("NetSort()")
-
+if v:version < 700
+ fun! <SID>NetSort() range
+" " call Dfunc("NetSort()")
+
let i = a:firstline + 1
while i <= a:lastline
" find insertion point via binary search
@@ -2850,36 +2864,37 @@ fun! <SID>NetSort() range
let lo = a:firstline
let hi = i
while lo < hi
- let mid = (lo + hi) / 2
- let mid_val = getline(mid)
- if g:netrw_sort_direction =~ '^n'
- " normal sorting order
- if i_val < mid_val
- let hi = mid
- else
- let lo = mid + 1
- if i_val == mid_val | break | endif
- endif
+ let mid = (lo + hi) / 2
+ let mid_val = getline(mid)
+ if g:netrw_sort_direction =~ '^n'
+ " normal sorting order
+ if i_val < mid_val
+ let hi = mid
else
- " reverse sorting order
- if i_val > mid_val
- let hi = mid
- else
- let lo = mid + 1
- if i_val == mid_val | break | endif
- endif
+ let lo = mid + 1
+ if i_val == mid_val | break | endif
endif
+ else
+ " reverse sorting order
+ if i_val > mid_val
+ let hi = mid
+ else
+ let lo = mid + 1
+ if i_val == mid_val | break | endif
+ endif
+ endif
endwhile
" do insert
if lo < i
- exe 'keepjumps '.i.'d_'
- keepjumps call append(lo - 1, i_val)
+ exe 'keepjumps '.i.'d_'
+ keepjumps call append(lo - 1, i_val)
endif
let i = i + 1
endwhile
-
-" call Dret("NetSort")
-endfun
+
+" " call Dret("NetSort")
+ endfun
+endif
" ---------------------------------------------------------------------
" SetSort: sets up the sort based on the g:netrw_sort_sequence {{{1
@@ -2938,8 +2953,8 @@ fun! <SID>SetSort()
" call Dret("SetSort")
endfun
+let &cpo= s:keepcpo
+unlet s:keepcpo
" ------------------------------------------------------------------------
-" Restore {{{1
-let &cpo= s:save_cpo
-unlet s:save_cpo
+" Modelines: {{{1
" vim:ts=8 fdm=marker
diff --git a/src/misc2.c b/src/misc2.c
index d677b1b4c..93b3bbe56 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1384,7 +1384,7 @@ vim_strncpy(to, from, len)
/*
* Isolate one part of a string option where parts are separated with
* "sep_chars".
- * The part is copied into buf[maxlen].
+ * The part is copied into "buf[maxlen]".
* "*option" is advanced to the next part.
* The length is returned.
*/
diff --git a/src/version.h b/src/version.h
index cd5bf8b54..2c5193ec2 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 (2005 Jul 31)"
-#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 31, compiled "
+#define VIM_VERSION_LONG "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 1)"
+#define VIM_VERSION_LONG_DATE "VIM - Vi IMproved 7.0aa ALPHA (2005 Aug 1, compiled "