0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.0122

This commit is contained in:
Bram Moolenaar 2005-08-01 21:58:57 +00:00
parent d314b2519b
commit 83bab71b3c
8 changed files with 484 additions and 312 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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.

View File

@ -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
g:netrw_timefmt specify format string to strftime() (%c)
g:netrw_winsize specify initial size of new o/v windows
default: '[\/]$,*,\.bak$,\.o$,\.h$,
\.info$,\.swp$,\.obj$'
INTRODUCTION TO DIRECTORY BROWSING *file-explorer*
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 *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

View File

@ -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*

View File

@ -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,16 +2472,54 @@ 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.
@ -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

View File

@ -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.
*/

View File

@ -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 "