summaryrefslogtreecommitdiffstats
path: root/runtime/doc/pi_netrw.txt
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:09:20 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:09:20 +0000
commit029f72b1a93430b24b88eb3a72c6114d9f149737 (patch)
tree765d5c2041967f9c6fef195fe343d9234a030e90 /runtime/doc/pi_netrw.txt
parentInitial commit. (diff)
downloadvim-029f72b1a93430b24b88eb3a72c6114d9f149737.tar.xz
vim-029f72b1a93430b24b88eb3a72c6114d9f149737.zip
Adding upstream version 2:9.1.0016.upstream/2%9.1.0016
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'runtime/doc/pi_netrw.txt')
-rw-r--r--runtime/doc/pi_netrw.txt4419
1 files changed, 4419 insertions, 0 deletions
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
new file mode 100644
index 0000000..07d70c8
--- /dev/null
+++ b/runtime/doc/pi_netrw.txt
@@ -0,0 +1,4419 @@
+*pi_netrw.txt* For Vim version 9.1. Last change: 2023 May 14
+
+ ------------------------------------------------
+ NETRW REFERENCE MANUAL by Charles E. Campbell
+ ------------------------------------------------
+Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
+ (remove NOSPAM from Campbell's email first)
+
+Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
+ The VIM LICENSE applies to the files in this package, including
+ netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
+ syntax/netrw.vim. Like anything else that's free, netrw.vim and its
+ associated files are provided *as is* and comes with no warranty of
+ any kind, either expressed or implied. No guarantees of
+ merchantability. No guarantees of suitability for any purpose. By
+ using this plugin, you agree that in no event will the copyright
+ holder be liable for any damages resulting from the use of this
+ software. Use at your own risk!
+
+ *netrw*
+ *dav* *ftp* *netrw-file* *rcp* *scp*
+ *davs* *http* *netrw.vim* *rsync* *sftp*
+ *fetch* *network*
+
+==============================================================================
+1. Contents *netrw-contents* {{{1
+
+1. Contents..............................................|netrw-contents|
+2. Starting With Netrw...................................|netrw-start|
+3. Netrw Reference.......................................|netrw-ref|
+ EXTERNAL APPLICATIONS AND PROTOCOLS.................|netrw-externapp|
+ READING.............................................|netrw-read|
+ WRITING.............................................|netrw-write|
+ SOURCING............................................|netrw-source|
+ DIRECTORY LISTING...................................|netrw-dirlist|
+ CHANGING THE USERID AND PASSWORD....................|netrw-chgup|
+ VARIABLES AND SETTINGS..............................|netrw-variables|
+ PATHS...............................................|netrw-path|
+4. Network-Oriented File Transfer........................|netrw-xfer|
+ NETRC...............................................|netrw-netrc|
+ PASSWORD............................................|netrw-passwd|
+5. Activation............................................|netrw-activate|
+6. Transparent Remote File Editing.......................|netrw-transparent|
+7. Ex Commands...........................................|netrw-ex|
+8. Variables and Options.................................|netrw-variables|
+9. Browsing..............................................|netrw-browse|
+ Introduction To Browsing............................|netrw-intro-browse|
+ Quick Reference: Maps...............................|netrw-browse-maps|
+ Quick Reference: Commands...........................|netrw-browse-cmds|
+ Banner Display......................................|netrw-I|
+ Bookmarking A Directory.............................|netrw-mb|
+ Browsing............................................|netrw-cr|
+ Squeezing the Current Tree-Listing Directory........|netrw-s-cr|
+ Browsing With A Horizontally Split Window...........|netrw-o|
+ Browsing With A New Tab.............................|netrw-t|
+ Browsing With A Vertically Split Window.............|netrw-v|
+ Change File Permission..............................|netrw-gp|
+ Change Listing Style.(thin wide long tree)..........|netrw-i|
+ Changing To A Bookmarked Directory..................|netrw-gb|
+ Changing To A Predecessor Directory.................|netrw-u|
+ Changing To A Successor Directory...................|netrw-U|
+ Customizing Browsing With A Special Handler.........|netrw-x|
+ Deleting Bookmarks..................................|netrw-mB|
+ Deleting Files Or Directories.......................|netrw-D|
+ Directory Exploring Commands........................|netrw-explore|
+ Exploring With Stars and Patterns...................|netrw-star|
+ Displaying Information About File...................|netrw-qf|
+ Edit File Or Directory Hiding List..................|netrw-ctrl-h|
+ Editing The Sorting Sequence........................|netrw-S|
+ Forcing treatment as a file or directory............|netrw-gd| |netrw-gf|
+ Going Up............................................|netrw--|
+ Hiding Files Or Directories.........................|netrw-a|
+ Improving Browsing..................................|netrw-ssh-hack|
+ Listing Bookmarks And History.......................|netrw-qb|
+ Making A New Directory..............................|netrw-d|
+ Making The Browsing Directory The Current Directory.|netrw-cd|
+ Marking Files.......................................|netrw-mf|
+ Unmarking Files.....................................|netrw-mF|
+ Marking Files By Location List......................|netrw-qL|
+ Marking Files By QuickFix List......................|netrw-qF|
+ Marking Files By Regular Expression.................|netrw-mr|
+ Marked Files: Arbitrary Shell Command...............|netrw-mx|
+ Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
+ Marked Files: Arbitrary Vim Command.................|netrw-mv|
+ Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
+ Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
+ Marked Files: Compression And Decompression.........|netrw-mz|
+ Marked Files: Copying...............................|netrw-mc|
+ Marked Files: Diff..................................|netrw-md|
+ Marked Files: Editing...............................|netrw-me|
+ Marked Files: Grep..................................|netrw-mg|
+ Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
+ Marked Files: Moving................................|netrw-mm|
+ Marked Files: Printing..............................|netrw-mp|
+ Marked Files: Sourcing..............................|netrw-ms|
+ Marked Files: Setting the Target Directory..........|netrw-mt|
+ Marked Files: Tagging...............................|netrw-mT|
+ Marked Files: Target Directory Using Bookmarks......|netrw-Tb|
+ Marked Files: Target Directory Using History........|netrw-Th|
+ Marked Files: Unmarking.............................|netrw-mu|
+ Netrw Browser Variables.............................|netrw-browser-var|
+ Netrw Browsing And Option Incompatibilities.........|netrw-incompatible|
+ Netrw Settings Window...............................|netrw-settings-window|
+ Obtaining A File....................................|netrw-O|
+ Preview Window......................................|netrw-p|
+ Previous Window.....................................|netrw-P|
+ Refreshing The Listing..............................|netrw-ctrl-l|
+ Reversing Sorting Order.............................|netrw-r|
+ Renaming Files Or Directories.......................|netrw-R|
+ Selecting Sorting Style.............................|netrw-s|
+ Setting Editing Window..............................|netrw-C|
+10. Problems and Fixes....................................|netrw-problems|
+11. Debugging Netrw Itself................................|netrw-debug|
+12. History...............................................|netrw-history|
+13. Todo..................................................|netrw-todo|
+14. Credits...............................................|netrw-credits|
+
+==============================================================================
+2. Starting With Netrw *netrw-start* {{{1
+
+Netrw makes reading files, writing files, browsing over a network, and
+local browsing easy! First, make sure that you have plugins enabled, so
+you'll need to have at least the following in your <.vimrc>:
+(or see |netrw-activate|) >
+
+ set nocp " 'compatible' is not set
+ filetype plugin on " plugins are enabled
+<
+(see |'cp'| and |:filetype-plugin-on|)
+
+Netrw supports "transparent" editing of files on other machines using urls
+(see |netrw-transparent|). As an example of this, let's assume you have an
+account on some other machine; if you can use scp, try: >
+
+ vim scp://hostname/path/to/file
+<
+Want to make ssh/scp easier to use? Check out |netrw-ssh-hack|!
+
+So, what if you have ftp, not ssh/scp? That's easy, too; try >
+
+ vim ftp://hostname/path/to/file
+<
+Want to make ftp simpler to use? See if your ftp supports a file called
+<.netrc> -- typically it goes in your home directory, has read/write
+permissions for only the user to read (ie. not group, world, other, etc),
+and has lines resembling >
+
+ machine HOSTNAME login USERID password "PASSWORD"
+ machine HOSTNAME login USERID password "PASSWORD"
+ ...
+ default login USERID password "PASSWORD"
+<
+Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
+
+ let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
+<
+Netrw will substitute the host's machine name for "MACHINE" from the URL it is
+attempting to open, and so one may specify >
+ userid
+ password
+for each site in a separate file: c:\Users\MyUserName\MachineName.
+
+Now about browsing -- when you just want to look around before editing a
+file. For browsing on your current host, just "edit" a directory: >
+
+ vim .
+ vim /home/userid/path
+<
+For browsing on a remote host, "edit" a directory (but make sure that
+the directory name is followed by a "/"): >
+
+ vim scp://hostname/
+ vim ftp://hostname/path/to/dir/
+<
+See |netrw-browse| for more!
+
+There are more protocols supported by netrw than just scp and ftp, too: see the
+next section, |netrw-externapp|, on how to use these external applications with
+netrw and vim.
+
+PREVENTING LOADING *netrw-noload*
+
+If you want to use plugins, but for some reason don't wish to use netrw, then
+you need to avoid loading both the plugin and the autoload portions of netrw.
+You may do so by placing the following two lines in your <.vimrc>: >
+
+ :let g:loaded_netrw = 1
+ :let g:loaded_netrwPlugin = 1
+<
+
+==============================================================================
+3. Netrw Reference *netrw-ref* {{{1
+
+ Netrw supports several protocols in addition to scp and ftp as mentioned
+ in |netrw-start|. These include dav, fetch, http,... well, just look
+ at the list in |netrw-externapp|. Each protocol is associated with a
+ variable which holds the default command supporting that protocol.
+
+EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
+
+ Protocol Variable Default Value
+ -------- ---------------- -------------
+ dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
+ dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
+ fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
+ ftp: *g:netrw_ftp_cmd* = "ftp"
+ http: *g:netrw_http_cmd* = "elinks" if elinks is available
+ http: g:netrw_http_cmd = "links" elseif links is available
+ http: g:netrw_http_cmd = "curl" elseif curl is available
+ http: g:netrw_http_cmd = "wget" elseif wget is available
+ http: g:netrw_http_cmd = "fetch" elseif fetch is available
+ http: *g:netrw_http_put_cmd* = "curl -T"
+ rcp: *g:netrw_rcp_cmd* = "rcp"
+ rsync: *g:netrw_rsync_cmd* = "rsync" (see |g:netrw_rsync_sep|)
+ scp: *g:netrw_scp_cmd* = "scp -q"
+ sftp: *g:netrw_sftp_cmd* = "sftp"
+ file: *g:netrw_file_cmd* = "elinks" or "links"
+
+ *g:netrw_http_xcmd* : the option string for http://... protocols are
+ specified via this variable and may be independently overridden. By
+ default, the option arguments for the http-handling commands are: >
+
+ elinks : "-source >"
+ links : "-dump >"
+ curl : "-L -o"
+ wget : "-q -O"
+ fetch : "-o"
+<
+ For example, if your system has elinks, and you'd rather see the
+ page using an attempt at rendering the text, you may wish to have >
+ let g:netrw_http_xcmd= "-dump >"
+< in your .vimrc.
+
+ g:netrw_http_put_cmd: this option specifies both the executable and
+ any needed options. This command does a PUT operation to the url.
+
+
+READING *netrw-read* *netrw-nread* {{{2
+
+ Generally, one may just use the URL notation with a normal editing
+ command, such as >
+
+ :e ftp://[user@]machine/path
+<
+ Netrw also provides the Nread command:
+
+ :Nread ? give help
+ :Nread "machine:path" uses rcp
+ :Nread "machine path" uses ftp w/ <.netrc>
+ :Nread "machine id password path" uses ftp
+ :Nread "dav://machine[:port]/path" uses cadaver
+ :Nread "fetch://[user@]machine/path" uses fetch
+ :Nread "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
+ :Nread "http://[user@]machine/path" uses http uses wget
+ :Nread "rcp://[user@]machine/path" uses rcp
+ :Nread "rsync://[user@]machine[:port]/path" uses rsync
+ :Nread "scp://[user@]machine[[:#]port]/path" uses scp
+ :Nread "sftp://[user@]machine/path" uses sftp
+
+WRITING *netrw-write* *netrw-nwrite* {{{2
+
+ One may just use the URL notation with a normal file writing
+ command, such as >
+
+ :w ftp://[user@]machine/path
+<
+ Netrw also provides the Nwrite command:
+
+ :Nwrite ? give help
+ :Nwrite "machine:path" uses rcp
+ :Nwrite "machine path" uses ftp w/ <.netrc>
+ :Nwrite "machine id password path" uses ftp
+ :Nwrite "dav://machine[:port]/path" uses cadaver
+ :Nwrite "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
+ :Nwrite "rcp://[user@]machine/path" uses rcp
+ :Nwrite "rsync://[user@]machine[:port]/path" uses rsync
+ :Nwrite "scp://[user@]machine[[:#]port]/path" uses scp
+ :Nwrite "sftp://[user@]machine/path" uses sftp
+ http: not supported!
+
+SOURCING *netrw-source* {{{2
+
+ One may just use the URL notation with the normal file sourcing
+ command, such as >
+
+ :so ftp://[user@]machine/path
+<
+ Netrw also provides the Nsource command:
+
+ :Nsource ? give help
+ :Nsource "dav://machine[:port]/path" uses cadaver
+ :Nsource "fetch://[user@]machine/path" uses fetch
+ :Nsource "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
+ :Nsource "http://[user@]machine/path" uses http uses wget
+ :Nsource "rcp://[user@]machine/path" uses rcp
+ :Nsource "rsync://[user@]machine[:port]/path" uses rsync
+ :Nsource "scp://[user@]machine[[:#]port]/path" uses scp
+ :Nsource "sftp://[user@]machine/path" uses sftp
+
+DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
+
+ One may browse a directory to get a listing by simply attempting to
+ edit the directory: >
+
+ :e scp://[user]@hostname/path/
+ :e ftp://[user]@hostname/path/
+<
+ For remote directory listings (ie. those using scp or ftp), that
+ trailing "/" is necessary (the slash tells netrw to treat the argument
+ as a directory to browse instead of as a file to download).
+
+ The Nread command may also be used to accomplish this (again, that
+ trailing slash is necessary): >
+
+ :Nread [protocol]://[user]@hostname/path/
+<
+ *netrw-login* *netrw-password*
+CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
+
+ Attempts to use ftp will prompt you for a user-id and a password.
+ These will be saved in global variables |g:netrw_uid| and
+ |s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
+ thereby simplifying use of ftp. However, if you need to use a
+ different user id and/or password, you'll want to call |NetUserPass()|
+ first. To work around the need to enter passwords, check if your ftp
+ supports a <.netrc> file in your home directory. Also see
+ |netrw-passwd| (and if you're using ssh/scp hoping to figure out how
+ to not need to use passwords for scp, look at |netrw-ssh-hack|).
+
+ :NetUserPass [uid [password]] -- prompts as needed
+ :call NetUserPass() -- prompts for uid and password
+ :call NetUserPass("uid") -- prompts for password
+ :call NetUserPass("uid","password") -- sets global uid and password
+
+(Related topics: |ftp| |netrw-userpass| |netrw-start|)
+
+NETRW VARIABLES AND SETTINGS *netrw-variables* {{{2
+ (Also see:
+ |netrw-browser-var| : netrw browser option variables
+ |netrw-protocol| : file transfer protocol option variables
+ |netrw-settings| : additional file transfer options
+ |netrw-browser-options| : these options affect browsing directories
+ )
+
+Netrw provides a lot of variables which allow you to customize netrw to your
+preferences. One way to look at them is via the command :NetrwSettings (see
+|netrw-settings|) which will display your current netrw settings. Most such
+settings are described below, in |netrw-browser-options|, and in
+|netrw-externapp|:
+
+ *b:netrw_lastfile* last file Network-read/written retained on a
+ per-buffer basis (supports plain :Nw )
+
+ *g:netrw_bufsettings* the settings that netrw buffers have
+ (default) noma nomod nonu nowrap ro nobl
+
+ *g:netrw_chgwin* specifies a window number where subsequent file edits
+ will take place. (also see |netrw-C|)
+ (default) -1
+
+ *g:Netrw_funcref* specifies a function (or functions) to be called when
+ netrw edits a file. The file is first edited, and
+ then the function reference (|Funcref|) is called.
+ This variable may also hold a |List| of Funcrefs.
+ (default) not defined. (the capital in g:Netrw...
+ is required by its holding a function reference)
+>
+ Example: place in .vimrc; affects all file opening
+ fun! MyFuncRef()
+ endfun
+ let g:Netrw_funcref= function("MyFuncRef")
+
+<
+ *g:Netrw_UserMaps* specifies a function or |List| of functions which can
+ be used to set up user-specified maps and functionality.
+ See |netrw-usermaps|
+
+ *g:netrw_ftp* if it doesn't exist, use default ftp
+ =0 use default ftp (uid password)
+ =1 use alternate ftp method (user uid password)
+ If you're having trouble with ftp, try changing the
+ value of this variable to see if the alternate ftp
+ method works for your setup.
+
+ *g:netrw_ftp_options* Chosen by default, these options are supposed to
+ turn interactive prompting off and to restrain ftp
+ from attempting auto-login upon initial connection.
+ However, it appears that not all ftp implementations
+ support this (ex. ncftp).
+ ="-i -n"
+
+ *g:netrw_ftpextracmd* default: doesn't exist
+ If this variable exists, then any string it contains
+ will be placed into the commands set to your ftp
+ client. As an example:
+ ="passive"
+
+ *g:netrw_ftpmode* ="binary" (default)
+ ="ascii"
+
+ *g:netrw_ignorenetrc* =0 (default for linux, cygwin)
+ =1 If you have a <.netrc> file but it doesn't work and
+ you want it ignored, then set this variable as
+ shown. (default for Windows + cmd.exe)
+
+ *g:netrw_menu* =0 disable netrw's menu
+ =1 (default) netrw's menu enabled
+
+ *g:netrw_nogx* if this variable exists, then the "gx" map will not
+ be available (see |netrw-gx|)
+
+ *g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
+ *s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
+
+ *g:netrw_preview* =0 (default) preview window shown in a horizontally
+ split window
+ =1 preview window shown in a vertically split window.
+ Also affects the "previous window" (see |netrw-P|)
+ in the same way.
+ The |g:netrw_alto| variable may be used to provide
+ additional splitting control:
+ g:netrw_preview g:netrw_alto result
+ 0 0 |:aboveleft|
+ 0 1 |:belowright|
+ 1 0 |:topleft|
+ 1 1 |:botright|
+ To control sizing, see |g:netrw_winsize|
+
+ *g:netrw_scpport* = "-P" : option to use to set port for scp
+ *g:netrw_sshport* = "-p" : option to use to set port for ssh
+
+ *g:netrw_sepchr* =\0xff
+ =\0x01 for enc == euc-jp (and perhaps it should be for
+ others, too, please let me know)
+ Separates priority codes from filenames internally.
+ See |netrw-p12|.
+
+ *g:netrw_silent* =0 : transfers done normally
+ =1 : transfers done silently
+
+ *g:netrw_use_errorwindow* =2: messages from netrw will use a popup window
+ Move the mouse and pause to remove the popup window.
+ (default value if popup windows are available)
+ =1 : messages from netrw will use a separate one
+ line window. This window provides reliable
+ delivery of messages.
+ (default value if popup windows are not available)
+ =0 : messages from netrw will use echoerr ;
+ messages don't always seem to show up this
+ way, but one doesn't have to quit the window.
+
+ *g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank
+ lines that o/s's ftp "provides" on transfers
+ =0 force normal ftp behavior (no trailing line removal)
+
+ *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
+ permits network browsing to use ls with time and
+ size sorting (default if windows)
+ =0 assume Windows' scp accepts windows-style paths
+ Network browsing uses dir instead of ls
+ This option is ignored if you're using unix
+
+ *g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP
+ =1 use WinNT's rcp in binary mode (default)
+
+PATHS *netrw-path* {{{2
+
+Paths to files are generally user-directory relative for most protocols.
+It is possible that some protocol will make paths relative to some
+associated directory, however.
+>
+ example: vim scp://user@host/somefile
+ example: vim scp://user@host/subdir1/subdir2/somefile
+<
+where "somefile" is in the "user"'s home directory. If you wish to get a
+file using root-relative paths, use the full path:
+>
+ example: vim scp://user@host//somefile
+ example: vim scp://user@host//subdir1/subdir2/somefile
+<
+
+==============================================================================
+4. Network-Oriented File Transfer *netrw-xfer* {{{1
+
+Network-oriented file transfer under Vim is implemented by a vim script
+(<netrw.vim>) using plugin techniques. It currently supports both reading and
+writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
+dav/cadaver, rsync, or sftp.
+
+http is currently supported read-only via use of wget or fetch.
+
+<netrw.vim> is a standard plugin which acts as glue between Vim and the
+various file transfer programs. It uses autocommand events (BufReadCmd,
+FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >
+
+ ex. vim ftp://hostname/path/to/file
+<
+The characters preceding the colon specify the protocol to use; in the
+example, it's ftp. The <netrw.vim> script then formulates a command or a
+series of commands (typically ftp) which it issues to an external program
+(ftp, scp, etc) which does the actual file transfer/protocol. Files are read
+from/written to a temporary file (under Unix/Linux, /tmp/...) which the
+<netrw.vim> script will clean up.
+
+Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
+ftp is not a secure protocol. User names and passwords are transmitted "in
+the clear" over the internet; any snooper tool can pick these up; this is not
+a netrw thing, this is a ftp thing. If you're concerned about this, please
+try to use scp or sftp instead.
+
+Netrw re-uses the user id and password during the same vim session and so long
+as the remote hostname remains the same.
+
+Jan seems to be a bit confused about how netrw handles ftp; normally multiple
+commands are performed in a "ftp session", and he seems to feel that the
+uid/password should only be retained over one ftp session. However, netrw
+does every ftp operation in a separate "ftp session"; so remembering the
+uid/password for just one "ftp session" would be the same as not remembering
+the uid/password at all. IMHO this would rapidly grow tiresome as one
+browsed remote directories, for example.
+
+On the other hand, thanks go to Jan M. for pointing out the many
+vulnerabilities that netrw (and vim itself) had had in handling "crafted"
+filenames. The |shellescape()| and |fnameescape()| functions were written in
+response by Bram Moolenaar to handle these sort of problems, and netrw has
+been modified to use them. Still, my advice is, if the "filename" looks like
+a vim command that you aren't comfortable with having executed, don't open it.
+
+ *netrw-putty* *netrw-pscp* *netrw-psftp*
+One may modify any protocol's implementing external application by setting a
+variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
+"scp -q"). As an example, consider using PuTTY: >
+
+ let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
+ let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
+<
+(note: it has been reported that windows 7 with putty v0.6's "-batch" option
+ doesn't work, so its best to leave it off for that system)
+
+See |netrw-p8| for more about putty, pscp, psftp, etc.
+
+Ftp, an old protocol, seems to be blessed by numerous implementations.
+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 (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 available (ie. executable), it may be preferable
+to use it for ftp://... based transfers.
+
+For rcp, scp, sftp, and http, one may use network-oriented file transfers
+transparently; ie.
+>
+ vim rcp://[user@]machine/path
+ vim scp://[user@]machine/path
+<
+If your ftp supports <.netrc>, then it too can be transparently used
+if the needed triad of machine name, user id, and password are present in
+that file. Your ftp must be able to use the <.netrc> file on its own, however.
+>
+ vim ftp://[user@]machine[[:#]portnumber]/path
+<
+Windows provides an ftp (typically c:\Windows\System32\ftp.exe) which uses
+an option, -s:filename (filename can and probably should be a full path)
+which contains ftp commands which will be automatically run whenever ftp
+starts. You may use this feature to enter a user and password for one site: >
+ userid
+ password
+< *netrw-windows-netrc* *netrw-windows-s*
+If |g:netrw_ftp_cmd| contains -s:[path/]MACHINE, then (on Windows machines
+only) netrw will substitute the current machine name requested for ftp
+connections for MACHINE. Hence one can have multiple machine.ftp files
+containing login and password for ftp. Example: >
+
+ let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
+ vim ftp://myhost.somewhere.net/
+
+will use a file >
+
+ C:\Users\Myself\myhost.ftp
+<
+Often, ftp will need to query the user for the userid and password.
+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
+additional prompting.
+
+ *netrw-urls*
+ +=================================+============================+============+
+ | Reading | Writing | Uses |
+ +=================================+============================+============+
+ | DAV: | | |
+ | dav://host/path | | cadaver |
+ | :Nread dav://host/path | :Nwrite dav://host/path | cadaver |
+ +---------------------------------+----------------------------+------------+
+ | DAV + SSL: | | |
+ | davs://host/path | | cadaver |
+ | :Nread davs://host/path | :Nwrite davs://host/path | cadaver |
+ +---------------------------------+----------------------------+------------+
+ | FETCH: | | |
+ | fetch://[user@]host/path | | |
+ | fetch://[user@]host:http/path | Not Available | fetch |
+ | :Nread fetch://[user@]host/path| | |
+ +---------------------------------+----------------------------+------------+
+ | FILE: | | |
+ | file:///* | file:///* | |
+ | file://localhost/* | file://localhost/* | |
+ +---------------------------------+----------------------------+------------+
+ | FTP: (*3) | (*3) | |
+ | ftp://[user@]host/path | ftp://[user@]host/path | ftp (*2) |
+ | :Nread ftp://host/path | :Nwrite ftp://host/path | ftp+.netrc |
+ | :Nread host path | :Nwrite host path | ftp+.netrc |
+ | :Nread host uid pass path | :Nwrite host uid pass path | ftp |
+ +---------------------------------+----------------------------+------------+
+ | HTTP: wget is executable: (*4) | | |
+ | http://[user@]host/path | Not Available | wget |
+ +---------------------------------+----------------------------+------------+
+ | HTTP: fetch is executable (*4) | | |
+ | http://[user@]host/path | Not Available | fetch |
+ +---------------------------------+----------------------------+------------+
+ | RCP: | | |
+ | rcp://[user@]host/path | rcp://[user@]host/path | rcp |
+ +---------------------------------+----------------------------+------------+
+ | RSYNC: | | |
+ | rsync://[user@]host/path | rsync://[user@]host/path | rsync |
+ | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync |
+ | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp |
+ +---------------------------------+----------------------------+------------+
+ | SCP: | | |
+ | scp://[user@]host/path | scp://[user@]host/path | scp |
+ | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) |
+ +---------------------------------+----------------------------+------------+
+ | SFTP: | | |
+ | sftp://[user@]host/path | sftp://[user@]host/path | sftp |
+ | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) |
+ +=================================+============================+============+
+
+ (*1) For an absolute path use scp://machine//path.
+
+ (*2) if <.netrc> is present, it is assumed that it will
+ work with your ftp client. Otherwise the script will
+ prompt for user-id and password.
+
+ (*3) for ftp, "machine" may be machine#port or machine:port
+ if a different port is needed than the standard ftp port
+
+ (*4) for http:..., if wget is available it will be used. Otherwise,
+ if fetch is available it will be used.
+
+Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.
+
+
+NETRC *netrw-netrc*
+
+The <.netrc> file, typically located in your home directory, contains lines
+therein which map a hostname (machine name) to the user id and password you
+prefer to use with it.
+
+The typical syntax for lines in a <.netrc> file is given as shown below.
+Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't.
+>
+ machine {full machine name} login {user-id} password "{password}"
+ default login {user-id} password "{password}"
+
+Your ftp client must handle the use of <.netrc> on its own, but if the
+<.netrc> file exists, an ftp transfer will not ask for the user-id or
+password.
+
+ Note:
+ Since this file contains passwords, make very sure nobody else can
+ read this file! Most programs will refuse to use a .netrc that is
+ readable for others. Don't forget that the system administrator can
+ still read the file! Ie. for Linux/Unix: chmod 600 .netrc
+
+Even though Windows' ftp clients typically do not support .netrc, netrw has
+a work-around: see |netrw-windows-s|.
+
+
+PASSWORD *netrw-passwd*
+
+The script attempts to get passwords for ftp invisibly using |inputsecret()|,
+a built-in Vim function. See |netrw-userpass| for how to change the password
+after one has set it.
+
+Unfortunately there doesn't appear to be a way for netrw to feed a password to
+scp. Thus every transfer via scp will require re-entry of the password.
+However, |netrw-ssh-hack| can help with this problem.
+
+
+==============================================================================
+5. Activation *netrw-activate* {{{1
+
+Network-oriented file transfers are available by default whenever Vim's
+|'nocompatible'| mode is enabled. Netrw's script files reside in your
+system's plugin, autoload, and syntax directories; just the
+plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
+vim. The main script in autoload/netrw.vim is only loaded when you actually
+use netrw. I suggest that, at a minimum, you have at least the following in
+your <.vimrc> customization file: >
+
+ set nocp
+ if version >= 600
+ filetype plugin indent on
+ endif
+<
+By also including the following lines in your .vimrc, one may have netrw
+immediately activate when using [g]vim without any filenames, showing the
+current directory: >
+
+ " Augroup VimStartup:
+ augroup VimStartup
+ au!
+ au VimEnter * if expand("%") == "" | e . | endif
+ augroup END
+<
+
+==============================================================================
+6. Transparent Remote File Editing *netrw-transparent* {{{1
+
+Transparent file transfers occur whenever a regular file read or write
+(invoked via an |:autocmd| for |BufReadCmd|, |BufWriteCmd|, or |SourceCmd|
+events) is made. Thus one may read, write, or source files across networks
+just as easily as if they were local files! >
+
+ vim ftp://[user@]machine/path
+ ...
+ :wq
+
+See |netrw-activate| for more on how to encourage your vim to use plugins
+such as netrw.
+
+For password-free use of scp:, see |netrw-ssh-hack|.
+
+
+==============================================================================
+7. Ex Commands *netrw-ex* {{{1
+
+The usual read/write commands are supported. There are also a few
+additional commands available. Often you won't need to use Nwrite or
+Nread as shown in |netrw-transparent| (ie. simply use >
+ :e URL
+ :r URL
+ :w URL
+instead, as appropriate) -- see |netrw-urls|. In the explanations
+below, a {netfile} is a URL to a remote file.
+
+ *:Nwrite* *:Nw*
+:[range]Nw[rite] Write the specified lines to the current
+ file as specified in b:netrw_lastfile.
+ (related: |netrw-nwrite|)
+
+:[range]Nw[rite] {netfile} [{netfile}]...
+ Write the specified lines to the {netfile}.
+
+ *:Nread* *:Nr*
+:Nr[ead] Read the lines from the file specified in b:netrw_lastfile
+ into the current buffer. (related: |netrw-nread|)
+
+:Nr[ead] {netfile} {netfile}...
+ Read the {netfile} after the current line.
+
+ *:Nsource* *:Ns*
+:Ns[ource] {netfile}
+ Source the {netfile}.
+ To start up vim using a remote .vimrc, one may use
+ the following (all on one line) (tnx to Antoine Mechelynck) >
+ vim -u NORC -N
+ --cmd "runtime plugin/netrwPlugin.vim"
+ --cmd "source scp://HOSTNAME/.vimrc"
+< (related: |netrw-source|)
+
+:call NetUserPass() *NetUserPass()*
+ If g:netrw_uid and s:netrw_passwd don't exist,
+ this function will query the user for them.
+ (related: |netrw-userpass|)
+
+:call NetUserPass("userid")
+ This call will set the g:netrw_uid and, if
+ the password doesn't exist, will query the user for it.
+ (related: |netrw-userpass|)
+
+:call NetUserPass("userid","passwd")
+ This call will set both the g:netrw_uid and s:netrw_passwd.
+ The user-id and password are used by ftp transfers. One may
+ effectively remove the user-id and password by using empty
+ strings (ie. "").
+ (related: |netrw-userpass|)
+
+:NetrwSettings This command is described in |netrw-settings| -- used to
+ display netrw settings and change netrw behavior.
+
+
+==============================================================================
+8. Variables and Options *netrw-var* *netrw-settings* {{{1
+
+(also see: |netrw-options| |netrw-variables| |netrw-protocol|
+ |netrw-browser-settings| |netrw-browser-options| )
+
+The <netrw.vim> script provides several variables which act as options to
+affect <netrw.vim>'s file transfer behavior. These variables typically may be
+set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
+ *netrw-options*
+>
+ -------------
+ Netrw Options
+ -------------
+ Option Meaning
+ -------------- -----------------------------------------------
+<
+ b:netrw_col Holds current cursor position (during NetWrite)
+ g:netrw_cygwin =1 assume scp under windows is from cygwin
+ (default/windows)
+ =0 assume scp under windows accepts windows
+ style paths (default/else)
+ g:netrw_ftp =0 use default ftp (uid password)
+ g:netrw_ftpmode ="binary" (default)
+ ="ascii" (your choice)
+ g:netrw_ignorenetrc =1 (default)
+ if you have a <.netrc> file but you don't
+ want it used, then set this variable. Its
+ mere existence is enough to cause <.netrc>
+ to be ignored.
+ b:netrw_lastfile Holds latest method/machine/path.
+ b:netrw_line Holds current line number (during NetWrite)
+ g:netrw_silent =0 transfers done normally
+ =1 transfers done silently
+ g:netrw_uid Holds current user-id for ftp.
+ g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
+ =1 use WinNT/2K/XP's rcp, binary mode
+ g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc
+ =1 use default method to do ftp >
+ -----------------------------------------------------------------------
+<
+ *netrw-internal-variables*
+The script will also make use of the following variables internally, albeit
+temporarily.
+>
+ -------------------
+ Temporary Variables
+ -------------------
+ Variable Meaning
+ -------- ------------------------------------
+<
+ b:netrw_method Index indicating rcp/ftp+.netrc/ftp
+ w:netrw_method (same as b:netrw_method)
+ g:netrw_machine Holds machine name parsed from input
+ b:netrw_fname Holds filename being accessed >
+ ------------------------------------------------------------
+<
+ *netrw-protocol*
+
+Netrw supports a number of protocols. These protocols are invoked using the
+variables listed below, and may be modified by the user.
+>
+ ------------------------
+ Protocol Control Options
+ ------------------------
+ Option Type Setting Meaning
+ --------- -------- -------------- ---------------------------
+< netrw_ftp variable =doesn't exist userid set by "user userid"
+ =0 userid set by "user userid"
+ =1 userid set by "userid"
+ NetReadFixup function =doesn't exist no change
+ =exists Allows user to have files
+ read via ftp automatically
+ transformed however they wish
+ by NetReadFixup()
+ g:netrw_dav_cmd var ="cadaver" if cadaver is executable
+ g:netrw_dav_cmd var ="curl -o" elseif curl is executable
+ g:netrw_fetch_cmd var ="fetch -o" if fetch is available
+ g:netrw_ftp_cmd var ="ftp"
+ g:netrw_http_cmd var ="fetch -o" if fetch is available
+ g:netrw_http_cmd var ="wget -O" else if wget is available
+ g:netrw_http_put_cmd var ="curl -T"
+ |g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
+ g:netrw_rcp_cmd var ="rcp"
+ g:netrw_rsync_cmd var ="rsync"
+ *g:netrw_rsync_sep* var ="/" used to separate the hostname
+ from the file spec
+ g:netrw_scp_cmd var ="scp -q"
+ g:netrw_sftp_cmd var ="sftp" >
+ -------------------------------------------------------------------------
+<
+ *netrw-ftp*
+
+The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
+specify the external program to use handle the ftp protocol. They may
+include command line options (such as -p for passive mode). Example: >
+
+ let g:netrw_ftp_cmd= "ftp -p"
+<
+Browsing is supported by using the |g:netrw_list_cmd|; the substring
+"HOSTNAME" will be changed via substitution with whatever the current request
+is for a hostname.
+
+Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's
+that give trouble . In order to best understand how to use these options if
+ftp is giving you troubles, a bit of discussion is provided on how netrw does
+ftp reads.
+
+For ftp, netrw typically builds up lines of one of the following formats in a
+temporary file:
+>
+ IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1
+ ---------------------------------- ------------------------------
+<
+ open machine [port] open machine [port]
+ user userid password userid password
+ [g:netrw_ftpmode] password
+ [g:netrw_ftpextracmd] [g:netrw_ftpmode]
+ get filename tempfile [g:netrw_extracmd]
+ get filename tempfile >
+ ---------------------------------------------------------------------
+<
+The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.
+
+Netrw then executes the lines above by use of a filter:
+>
+ :%! {g:netrw_ftp_cmd} -i [-n]
+<
+where
+ g:netrw_ftp_cmd is usually "ftp",
+ -i tells ftp not to be interactive
+ -n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
+
+If <.netrc> exists it will be used to avoid having to query the user for
+userid and password. The transferred file is put into a temporary file.
+The temporary file is then read into the main editing session window that
+requested it and the temporary file deleted.
+
+If your ftp doesn't accept the "user" command and immediately just demands a
+userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
+
+ *netrw-cadaver*
+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* *netreadfixup*
+If your ftp for whatever reason generates unwanted lines (such as AUTH
+messages) you may write a NetReadFixup() function:
+>
+ function! NetReadFixup(method,line1,line2)
+ " a:line1: first new line in current file
+ " a:line2: last new line in current file
+ if a:method == 1 "rcp
+ elseif a:method == 2 "ftp + <.netrc>
+ elseif a:method == 3 "ftp + machine,uid,password,filename
+ elseif a:method == 4 "scp
+ elseif a:method == 5 "http/wget
+ elseif a:method == 6 "dav/cadaver
+ elseif a:method == 7 "rsync
+ elseif a:method == 8 "fetch
+ elseif a:method == 9 "sftp
+ else " complain
+ endif
+ endfunction
+>
+The NetReadFixup() function will be called if it exists and thus allows you to
+customize your reading process. As a further example, <netrw.vim> contains
+just such a function to handle Windows 95 ftp. For whatever reason, Windows
+95's ftp dumps four blank lines at the end of a transfer, and so it is
+desirable to automate their removal. Here's some code taken from <netrw.vim>
+itself:
+>
+ if has("win95") && g:netrw_win95ftp
+ fun! NetReadFixup(method, line1, line2)
+ if method == 3 " ftp (no <.netrc>)
+ let fourblanklines= line2 - 3
+ silent fourblanklines .. "," .. line2 .. "g/^\s*/d"
+ endif
+ endfunction
+ endif
+>
+(Related topics: |ftp| |netrw-userpass| |netrw-start|)
+
+==============================================================================
+9. Browsing *netrw-browsing* *netrw-browse* *netrw-help* {{{1
+ *netrw-browser* *netrw-dir* *netrw-list*
+
+INTRODUCTION TO BROWSING *netrw-intro-browse* {{{2
+ (Quick References: |netrw-quickmaps| |netrw-quickcoms|)
+
+Netrw supports the browsing of directories on your local system and on remote
+hosts; browsing includes listing files and directories, entering directories,
+editing files therein, deleting files/directories, making new directories,
+moving (renaming) files and directories, copying files and directories, etc.
+One may mark files and execute any system command on them! The Netrw browser
+generally implements the previous explorer's maps and commands for remote
+directories, although details (such as pertinent global variable names)
+necessarily differ. To browse a directory, simply "edit" it! >
+
+ vim /your/directory/
+ vim .
+ vim c:\your\directory\
+<
+(Related topics: |netrw-cr| |netrw-o| |netrw-p| |netrw-P| |netrw-t|
+ |netrw-mf| |netrw-mx| |netrw-D| |netrw-R| |netrw-v| )
+
+The Netrw remote file and directory browser handles two protocols: ssh and
+ftp. The protocol in the url, if it is ftp, will cause netrw also to use ftp
+in its remote browsing. Specifying any other protocol will cause it to be
+used for file transfers; but the ssh protocol will be used to do remote
+browsing.
+
+To use Netrw's remote directory browser, simply attempt to read a "file" with
+a trailing slash and it will be interpreted as a request to list a directory:
+>
+ vim [protocol]://[user@]hostname/path/
+<
+where [protocol] is typically scp or ftp. As an example, try: >
+
+ vim ftp://ftp.home.vim.org/pub/vim/
+<
+For local directories, the trailing slash is not required. Again, because it's
+easy to miss: to browse remote directories, the URL must terminate with a
+slash!
+
+If you'd like to avoid entering the password repeatedly for remote directory
+listings with ssh or scp, see |netrw-ssh-hack|. To avoid password entry with
+ftp, see |netrw-netrc| (if your ftp supports it).
+
+There are several things you can do to affect the browser's display of files:
+
+ * To change the listing style, press the "i" key (|netrw-i|).
+ Currently there are four styles: thin, long, wide, and tree.
+ To make that change "permanent", see |g:netrw_liststyle|.
+
+ * To hide files (don't want to see those xyz~ files anymore?) see
+ |netrw-ctrl-h|.
+
+ * Press s to sort files by name, time, or size.
+
+See |netrw-browse-cmds| for all the things you can do with netrw!
+
+ *netrw-getftype* *netrw-filigree* *netrw-ftype*
+The |getftype()| function is used to append a bit of filigree to indicate
+filetype to locally listed files:
+
+ directory : /
+ executable : *
+ fifo : |
+ links : @
+ sockets : =
+
+The filigree also affects the |g:netrw_sort_sequence|.
+
+
+QUICK HELP *netrw-quickhelp* {{{2
+ (Use ctrl-] to select a topic)~
+ Intro to Browsing...............................|netrw-intro-browse|
+ Quick Reference: Maps.........................|netrw-quickmap|
+ Quick Reference: Commands.....................|netrw-browse-cmds|
+ Hiding
+ Edit hiding list..............................|netrw-ctrl-h|
+ Hiding Files or Directories...................|netrw-a|
+ Hiding/Unhiding by suffix.....................|netrw-mh|
+ Hiding dot-files.............................|netrw-gh|
+ Listing Style
+ Select listing style (thin/long/wide/tree)....|netrw-i|
+ Associated setting variable...................|g:netrw_liststyle|
+ Shell command used to perform listing.........|g:netrw_list_cmd|
+ Quick file info...............................|netrw-qf|
+ Sorted by
+ Select sorting style (name/time/size).........|netrw-s|
+ Editing the sorting sequence..................|netrw-S|
+ Sorting options...............................|g:netrw_sort_options|
+ Associated setting variable...................|g:netrw_sort_sequence|
+ Reverse sorting order.........................|netrw-r|
+
+
+ *netrw-quickmap* *netrw-quickmaps*
+QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
+>
+ --- ----------------- ----
+ Map Quick Explanation Link
+ --- ----------------- ----
+< <F1> Causes Netrw to issue help
+ <cr> Netrw will enter the directory or read the file |netrw-cr|
+ <del> Netrw will attempt to remove the file/directory |netrw-del|
+ <c-h> Edit file hiding list |netrw-ctrl-h|
+ <c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l|
+ <c-r> Browse using a gvim server |netrw-ctrl-r|
+ <c-tab> Shrink/expand a netrw/explore window |netrw-c-tab|
+ - Makes Netrw go up one directory |netrw--|
+ a Cycles between normal display, |netrw-a|
+ hiding (suppress display of files matching g:netrw_list_hide)
+ and showing (display only files which match g:netrw_list_hide)
+ cd Make browsing directory the current directory |netrw-cd|
+ C Setting the editing window |netrw-C|
+ d Make a directory |netrw-d|
+ D Attempt to remove the file(s)/directory(ies) |netrw-D|
+ gb Go to previous bookmarked directory |netrw-gb|
+ gd Force treatment as directory |netrw-gd|
+ gf Force treatment as file |netrw-gf|
+ gh Quick hide/unhide of dot-files |netrw-gh|
+ gn Make top of tree the directory below the cursor |netrw-gn|
+ gp Change local-only file permissions |netrw-gp|
+ i Cycle between thin, long, wide, and tree listings |netrw-i|
+ I Toggle the displaying of the banner |netrw-I|
+ mb Bookmark current directory |netrw-mb|
+ mc Copy marked files to marked-file target directory |netrw-mc|
+ md Apply diff to marked files (up to 3) |netrw-md|
+ me Place marked files on arg list and edit them |netrw-me|
+ mf Mark a file |netrw-mf|
+ mF Unmark files |netrw-mF|
+ mg Apply vimgrep to marked files |netrw-mg|
+ mh Toggle marked file suffices' presence on hiding list |netrw-mh|
+ mm Move marked files to marked-file target directory |netrw-mm|
+ mp Print marked files |netrw-mp|
+ mr Mark files using a shell-style |regexp| |netrw-mr|
+ mt Current browsing directory becomes markfile target |netrw-mt|
+ mT Apply ctags to marked files |netrw-mT|
+ mu Unmark all marked files |netrw-mu|
+ mv Apply arbitrary vim command to marked files |netrw-mv|
+ mx Apply arbitrary shell command to marked files |netrw-mx|
+ mX Apply arbitrary shell command to marked files en bloc|netrw-mX|
+ mz Compress/decompress marked files |netrw-mz|
+ o Enter the file/directory under the cursor in a new |netrw-o|
+ browser window. A horizontal split is used.
+ O Obtain a file specified by cursor |netrw-O|
+ p Preview the file |netrw-p|
+ P Browse in the previously used window |netrw-P|
+ qb List bookmarked directories and history |netrw-qb|
+ qf Display information on file |netrw-qf|
+ qF Mark files using a quickfix list |netrw-qF|
+ qL Mark files using a |location-list| |netrw-qL|
+ r Reverse sorting order |netrw-r|
+ R Rename the designated file(s)/directory(ies) |netrw-R|
+ s Select sorting style: by name, time, or file size |netrw-s|
+ S Specify suffix priority for name-sorting |netrw-S|
+ t Enter the file/directory under the cursor in a new tab|netrw-t|
+ u Change to recently-visited directory |netrw-u|
+ U Change to subsequently-visited directory |netrw-U|
+ v Enter the file/directory under the cursor in a new |netrw-v|
+ browser window. A vertical split is used.
+ x View file with an associated program |netrw-x|
+ X Execute filename under cursor via |system()| |netrw-X|
+
+ % Open a new file in netrw's current directory |netrw-%|
+
+ *netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
+ <leftmouse> (gvim only) selects word under mouse as if a <cr>
+ had been pressed (ie. edit file, change directory)
+ <middlemouse> (gvim only) same as P selecting word under mouse;
+ see |netrw-P|
+ <rightmouse> (gvim only) delete file/directory using word under
+ mouse
+ <2-leftmouse> (gvim only) when:
+ * in a netrw-selected file, AND
+ * |g:netrw_retmap| == 1 AND
+ * the user doesn't already have a <2-leftmouse>
+ mapping defined before netrw is autoloaded,
+ then a double clicked leftmouse button will return
+ to the netrw browser window. See |g:netrw_retmap|.
+ <s-leftmouse> (gvim only) like mf, will mark files. Dragging
+ the shifted leftmouse will mark multiple files.
+ (see |netrw-mf|)
+
+ (to disable mouse buttons while browsing: |g:netrw_mousemaps|)
+
+ *netrw-quickcom* *netrw-quickcoms*
+QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
+ :NetrwClean[!]............................................|netrw-clean|
+ :NetrwSettings............................................|netrw-settings|
+ :Ntree....................................................|netrw-ntree|
+ :Explore[!] [dir] Explore directory of current file......|netrw-explore|
+ :Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
+ :Lexplore[!] [dir] Left Explorer Toggle...................|netrw-explore|
+ :Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
+ :Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
+ :Rexplore Return to Explorer.....................|netrw-explore|
+ :Sexplore[!] [dir] Split & Explore directory .............|netrw-explore|
+ :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
+ :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
+
+
+BANNER DISPLAY *netrw-I*
+
+One may toggle the displaying of the banner by pressing "I".
+
+Also See: |g:netrw_banner|
+
+
+BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
+
+One may easily "bookmark" the currently browsed directory by using >
+
+ mb
+<
+ *.netrwbook*
+Bookmarks are retained in between sessions of vim in a file called .netrwbook
+as a |List|, which is typically stored in the first directory on the user's
+'runtimepath'; entries are kept in sorted order.
+
+If there are marked files and/or directories, mb will add them to the bookmark
+list.
+
+ *netrw-:NetrwMB*
+Additionally, one may use :NetrwMB to bookmark files or directories. >
+
+ :NetrwMB[!] [files/directories]
+
+< No bang: enters files/directories into Netrw's bookmark system
+
+ No argument and in netrw buffer:
+ if there are marked files : bookmark marked files
+ otherwise : bookmark file/directory under cursor
+ No argument and not in netrw buffer: bookmarks current open file
+ Has arguments : |glob()|s each arg and bookmarks them
+
+ With bang: deletes files/directories from Netrw's bookmark system
+
+The :NetrwMB command is available outside of netrw buffers (once netrw has been
+invoked in the session).
+
+The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
+default, its stored on the first directory on the user's |'runtimepath'|.
+
+Related Topics:
+ |netrw-gb| how to return (go) to a bookmark
+ |netrw-mB| how to delete bookmarks
+ |netrw-qb| how to list bookmarks
+ |g:netrw_home| controls where .netrwbook is kept
+
+
+BROWSING *netrw-enter* *netrw-cr* {{{2
+
+Browsing is simple: move the cursor onto a file or directory of interest.
+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.
+
+ CAVEAT: There are four forms of listing (see |netrw-i|). Netrw assumes that
+ two or more spaces delimit filenames and directory names for the long and
+ wide listing formats. Thus, if your filename or directory name has two or
+ more sequential spaces embedded in it, or any trailing spaces, then you'll
+ need to use the "thin" format to select it.
+
+The |g:netrw_browse_split| option, which is zero by default, may be used to
+cause the opening of files to be done in a new window or tab instead of the
+default. When the option is one or two, the splitting will be taken
+horizontally or vertically, respectively. When the option is set to three, a
+<cr> will cause the file to appear in a new tab.
+
+
+When using the gui (gvim), one may select a file by pressing the <leftmouse>
+button. In addition, if
+
+ * |g:netrw_retmap| == 1 AND (its default value is 0)
+ * in a netrw-selected file, AND
+ * the user doesn't already have a <2-leftmouse> mapping defined before
+ netrw is loaded
+
+then a doubly-clicked leftmouse button will return to the netrw browser
+window.
+
+Netrw attempts to speed up browsing, especially for remote browsing where one
+may have to enter passwords, by keeping and re-using previously obtained
+directory listing buffers. The |g:netrw_fastbrowse| variable is used to
+control this behavior; one may have slow browsing (no buffer re-use), medium
+speed browsing (re-use directory buffer listings only for remote directories),
+and fast browsing (re-use directory buffer listings as often as possible).
+The price for such re-use is that when changes are made (such as new files
+are introduced into a directory), the listing may become out-of-date. One may
+always refresh directory listing buffers by pressing ctrl-L (see
+|netrw-ctrl-l|).
+
+ *netrw-s-cr*
+Squeezing the Current Tree-Listing Directory~
+
+When the tree listing style is enabled (see |netrw-i|) and one is using
+gvim, then the <s-cr> mapping may be used to squeeze (close) the
+directory currently containing the cursor.
+
+Otherwise, one may remap a key combination of one's own choice to get
+this effect: >
+
+ nmap <buffer> <silent> <nowait> YOURKEYCOMBO <Plug>NetrwTreeSqueeze
+<
+Put this line in $HOME/ftplugin/netrw/netrw.vim; it needs to be generated
+for netrw buffers only.
+
+Related topics:
+ |netrw-ctrl-r| |netrw-o| |netrw-p|
+ |netrw-P| |netrw-t| |netrw-v|
+Associated setting variables:
+ |g:netrw_browse_split| |g:netrw_fastbrowse|
+ |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
+ |g:netrw_ftp_timelist_cmd| |g:netrw_ssh_browse_reject|
+ |g:netrw_ssh_cmd| |g:netrw_use_noswf|
+
+
+BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz* {{{2
+
+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
+horizontal split is used. (for vertical splitting, see |netrw-v|)
+
+Normally, the o key splits the window horizontally with the new window and
+cursor at the top.
+
+Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
+
+Related topics:
+ |netrw-ctrl-r| |netrw-o| |netrw-p|
+ |netrw-P| |netrw-t| |netrw-v|
+Associated setting variables:
+ |g:netrw_alto| control above/below splitting
+ |g:netrw_winsize| control initial sizing
+
+BROWSING WITH A NEW TAB *netrw-t* {{{2
+
+Normally one enters a file or directory using the <cr>. The "t" map
+allows one to open a new window holding the new directory listing or file in
+a new tab.
+
+If you'd like to have the new listing in a background tab, use |gT|.
+
+Related topics:
+ |netrw-ctrl-r| |netrw-o| |netrw-p|
+ |netrw-P| |netrw-t| |netrw-v|
+Associated setting variables:
+ |g:netrw_winsize| control initial sizing
+
+BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
+
+Normally one enters a file or directory using the <cr>. However, the "v" map
+allows one to open a new window to hold the new directory listing or file. A
+vertical split is used. (for horizontal splitting, see |netrw-o|)
+
+Normally, the v key splits the window vertically with the new window and
+cursor at the left.
+
+There is only one tree listing buffer; using "v" on a displayed subdirectory
+will split the screen, but the same buffer will be shown twice.
+
+Related topics:
+ |netrw-ctrl-r| |netrw-o| |netrw-p|
+ |netrw-P| |netrw-t| |netrw-v|
+Associated setting variables:
+ |g:netrw_altv| control right/left splitting
+ |g:netrw_winsize| control initial sizing
+
+
+BROWSING USING A GVIM SERVER *netrw-ctrl-r* {{{2
+
+One may keep a browsing gvim separate from the gvim being used to edit.
+Use the <c-r> map on a file (not a directory) in the netrw browser, and it
+will use a gvim server (see |g:netrw_servername|). Subsequent use of <cr>
+(see |netrw-cr|) will re-use that server for editing files.
+
+Related topics:
+ |netrw-ctrl-r| |netrw-o| |netrw-p|
+ |netrw-P| |netrw-t| |netrw-v|
+Associated setting variables:
+ |g:netrw_servername| : sets name of server
+ |g:netrw_browse_split| : controls how <cr> will open files
+
+
+CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
+
+The "i" map cycles between the thin, long, wide, and tree listing formats.
+
+The thin listing format gives just the files' and directories' names.
+
+The long listing is either based on the "ls" command via ssh for remote
+directories or displays the filename, file size (in bytes), and the time and
+date of last modification for local directories. With the long listing
+format, netrw is not able to recognize filenames which have trailing spaces.
+Use the thin listing format for such files.
+
+The wide listing format uses two or more contiguous spaces to delineate
+filenames; when using that format, netrw won't be able to recognize or use
+filenames which have two or more contiguous spaces embedded in the name or any
+trailing spaces. The thin listing format will, however, work with such files.
+The wide listing format is the most compact.
+
+The tree listing format has a top directory followed by files and directories
+preceded by one or more "|"s, which indicate the directory depth. One may
+open and close directories by pressing the <cr> key while atop the directory
+name.
+
+One may make a preferred listing style your default; see |g:netrw_liststyle|.
+As an example, by putting the following line in your .vimrc, >
+ let g:netrw_liststyle= 3
+the tree style will become your default listing style.
+
+One typical way to use the netrw tree display is to: >
+
+ vim .
+ (use i until a tree display shows)
+ navigate to a file
+ v (edit as desired in vertically split window)
+ ctrl-w h (to return to the netrw listing)
+ P (edit newly selected file in the previous window)
+ ctrl-w h (to return to the netrw listing)
+ P (edit newly selected file in the previous window)
+ ...etc...
+<
+Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
+ |g:netrw_timefmt| |g:netrw_list_cmd|
+
+CHANGE FILE PERMISSION *netrw-gp* {{{2
+
+"gp" will ask you for a new permission for the file named under the cursor.
+Currently, this only works for local files.
+
+Associated setting variables: |g:netrw_chgperm|
+
+
+CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
+
+To change directory back to a bookmarked directory, use
+
+ {cnt}gb
+
+Any count may be used to reference any of the bookmarks.
+Note that |netrw-qb| shows both bookmarks and history; to go
+to a location stored in the history see |netrw-u| and |netrw-U|.
+
+Related Topics:
+ |netrw-mB| how to delete bookmarks
+ |netrw-mb| how to make a bookmark
+ |netrw-qb| how to list bookmarks
+
+
+CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
+
+Every time you change to a new directory (new for the current session), netrw
+will save the directory in a recently-visited directory history list (unless
+|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
+map, one can change to an earlier directory (predecessor). To do the
+opposite, see |netrw-U|.
+
+The "u" map also accepts counts to go back in the history several slots. For
+your convenience, qb (see |netrw-qb|) lists the history number which may be
+used in that count.
+
+ *.netrwhist*
+See |g:netrw_dirhistmax| for how to control the quantity of history stack
+slots. The file ".netrwhist" holds history when netrw (and vim) is not
+active. By default, its stored on the first directory on the user's
+|'runtimepath'|.
+
+Related Topics:
+ |netrw-U| changing to a successor directory
+ |g:netrw_home| controls where .netrwhist is kept
+
+
+CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir* {{{2
+
+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
+qb map to list both the bookmarks and history. (see |netrw-qb|)
+
+The "U" map also accepts counts to go forward in the history several slots.
+
+See |g:netrw_dirhistmax| for how to control the quantity of history stack
+slots.
+
+
+CHANGING TREE TOP *netrw-ntree* *:Ntree* *netrw-gn* {{{2
+
+One may specify a new tree top for tree listings using >
+
+ :Ntree [dirname]
+
+Without a "dirname", the current line is used (and any leading depth
+information is elided).
+With a "dirname", the specified directory name is used.
+
+The "gn" map will take the word below the cursor and use that for
+changing the top of the tree listing.
+
+
+NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
+
+With :NetrwClean one may easily remove netrw from one's home directory;
+more precisely, from the first directory on your |'runtimepath'|.
+
+With :NetrwClean!, netrw will attempt to remove netrw from all directories on
+your |'runtimepath'|. Of course, you have to have write/delete permissions
+correct to do this.
+
+With either form of the command, netrw will first ask for confirmation
+that the removal is in fact what you want to do. If netrw doesn't have
+permission to remove a file, it will issue an error message.
+
+ *netrw-gx*
+CUSTOMIZING BROWSING WITH A SPECIAL HANDLER *netrw-x* *netrw-handler* {{{2
+ (also see |netrw_filehandler|)
+
+Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
+best seen with a special handler (ie. a tool provided with your computer's
+operating system). Netrw allows one to invoke such special handlers by: >
+
+ * when Exploring, hit the "x" key
+ * when editing, hit gx with the cursor atop the special filename
+< (latter not available if the |g:netrw_nogx| variable exists)
+
+Netrw determines which special handler by the following method:
+
+ * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
+ view files. Examples of useful settings (place into your <.vimrc>): >
+
+ :let g:netrw_browsex_viewer= "kfmclient exec"
+< or >
+ :let g:netrw_browsex_viewer= "xdg-open"
+<
+ If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
+ used instead (see |netrw_filehandler|).
+
+ If the viewer you wish to use does not support handling of a remote URL
+ directory, set |g:netrw_browsex_support_remote| to 0.
+ * for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
+ * for Gnome (with gnome-open): gnome-open is used.
+ * for KDE (with kfmclient) : kfmclient is used
+ * for Mac OS X : open is used.
+ * otherwise the netrwFileHandler plugin is used.
+
+The file's suffix is used by these various approaches to determine an
+appropriate application to use to "handle" these files. Such things as
+OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
+*.eps) can be handled.
+
+The gx mapping extends to all buffers; apply "gx" while atop a word and netrw
+will apply a special handler to it (like "x" works when in a netrw buffer).
+One may also use visual mode (see |visual-start|) to select the text that the
+special handler will use. Normally gx uses expand("<cfile>") to pick up the
+text under the cursor; one may change what |expand()| uses via the
+|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
+expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
+select the text to be used by gx by making a visual selection (see
+|visual-block|) and then pressing gx.
+
+Associated setting variables:
+ |g:netrw_gx| control how gx picks up the text under the cursor
+ |g:netrw_nogx| prevent gx map while editing
+ |g:netrw_suppress_gx_mesg| controls gx's suppression of browser messages
+
+ *netrw_filehandler*
+
+When |g:netrw_browsex_viewer| exists and is "-", then netrw will attempt to
+handle the special file with a vim function. The "x" map applies a function
+to a file, based on its extension. Of course, the handler function must exist
+for it to be called!
+>
+ Ex. mypgm.html x -> NFH_html("scp://user@host/some/path/mypgm.html")
+
+< Users may write their own netrw File Handler functions to
+ support more suffixes with special handling. See
+ <autoload/netrwFileHandlers.vim> for examples on how to make
+ file handler functions. As an example: >
+
+ " NFH_suffix(filename)
+ fun! NFH_suffix(filename)
+ ..do something special with filename..
+ endfun
+<
+These functions need to be defined in some file in your .vim/plugin
+(vimfiles\plugin) directory. Vim's function names may not have punctuation
+characters (except for the underscore) in them. To support suffices that
+contain such characters, netrw will first convert the suffix using the
+following table: >
+
+ @ -> AT ! -> EXCLAMATION % -> PERCENT
+ : -> COLON = -> EQUAL ? -> QUESTION
+ , -> COMMA - -> MINUS ; -> SEMICOLON
+ $ -> DOLLAR + -> PLUS ~ -> TILDE
+<
+So, for example: >
+
+ file.rcs,v -> NFH_rcsCOMMAv()
+<
+If more such translations are necessary, please send me email: >
+ NcampObell@SdrPchip.AorgM-NOSPAM
+with a request. (remove the embedded NOSPAM first)
+
+Associated setting variable: |g:netrw_browsex_viewer|
+
+ *netrw-curdir*
+DELETING BOOKMARKS *netrw-mB* {{{2
+
+To delete a bookmark, use >
+
+ {cnt}mB
+
+If there are marked files, then mB will remove them from the
+bookmark list.
+
+Alternatively, one may use :NetrwMB! (see |netrw-:NetrwMB|). >
+
+ :NetrwMB! [files/directories]
+
+Related Topics:
+ |netrw-gb| how to return (go) to a bookmark
+ |netrw-mb| how to make a bookmark
+ |netrw-qb| how to list bookmarks
+
+
+DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del* {{{2
+
+If files have not been marked with |netrw-mf|: (local marked file list)
+
+ Deleting/removing files and directories involves moving the cursor to the
+ file/directory to be deleted and pressing "D". Directories must be empty
+ first before they can be successfully removed. If the directory is a
+ softlink to a directory, then netrw will make two requests to remove the
+ directory before succeeding. Netrw will ask for confirmation before doing
+ the removal(s). You may select a range of lines with the "V" command
+ (visual selection), and then pressing "D".
+
+If files have been marked with |netrw-mf|: (local marked file list)
+
+ Marked files (and empty directories) will be deleted; again, you'll be
+ asked to confirm the deletion before it actually takes place.
+
+A further approach is to delete files which match a pattern.
+
+ * use :MF pattern (see |netrw-:MF|); then press "D".
+
+ * use mr (see |netrw-mr|) which will prompt you for pattern.
+ This will cause the matching files to be marked. Then,
+ press "D".
+
+If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
+is used to remove directories; instead, vim's |delete()| is used with
+the "d" option. Please note that only empty directories may be deleted
+with the "D" mapping. Regular files are deleted with |delete()|, too.
+
+The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
+used to control the attempts to remove remote files and directories. The
+g:netrw_rm_cmd is used with files, and its default value is:
+
+ g:netrw_rm_cmd: ssh HOSTNAME rm
+
+The g:netrw_rmdir_cmd variable is used to support the removal of directories.
+Its default value is:
+
+ |g:netrw_rmdir_cmd|: ssh HOSTNAME rmdir
+
+If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
+to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
+
+ |g:netrw_rmf_cmd|: ssh HOSTNAME rm -f
+
+Related topics: |netrw-d|
+Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
+ |g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
+
+
+*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
+*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
+DIRECTORY EXPLORATION COMMANDS {{{2
+
+ :[N]Explore[!] [dir]... Explore directory of current file *:Explore*
+ :[N]Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore*
+ :[N]Lexplore[!] [dir]... Left Explorer Toggle *:Lexplore*
+ :[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
+ :[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
+ :Texplore [dir]... Tab & Explore *:Texplore*
+ :Rexplore ... Return to/from Explorer *:Rexplore*
+
+ Used with :Explore **/pattern : (also see |netrw-starstar|)
+ :Nexplore............. go to next matching file *:Nexplore*
+ :Pexplore............. go to previous matching file *:Pexplore*
+
+ *netrw-:Explore*
+:Explore 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 and |'hidden'| is not set,
+ otherwise the browsing window will take over that window. Normally
+ the splitting is taken horizontally.
+ Also see: |netrw-:Rexplore|
+:Explore! is like :Explore, but will use vertical splitting.
+
+ *netrw-:Hexplore*
+:Hexplore [dir] does an :Explore with |:belowright| horizontal splitting.
+:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
+
+ *netrw-:Lexplore*
+:[N]Lexplore [dir] toggles a full height Explorer window on the left hand side
+ of the current tab. It will open a netrw window on the current
+ directory if [dir] is omitted; a :Lexplore [dir] will show the
+ specified directory in the left-hand side browser display no matter
+ from which window the command is issued.
+
+ By default, :Lexplore will change an uninitialized |g:netrw_chgwin|
+ to 2; edits will thus preferentially be made in window#2.
+
+ The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
+ window.
+
+ Those who like this method often also like tree style displays;
+ see |g:netrw_liststyle|.
+
+:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
+ Explorer window will open on the right hand side and an
+ uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
+ preferentially occur in the leftmost window).
+
+ Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
+ |netrw-p| |netrw-P| |g:netrw_chgwin|
+ |netrw-c-tab| |g:netrw_winsize|
+
+ *netrw-:Sexplore*
+:[N]Sexplore will always split the window before invoking the local-directory
+ browser. As with Explore, the splitting is normally done
+ horizontally.
+:[N]Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically.
+
+ *netrw-:Texplore*
+:Texplore [dir] does a |:tabnew| before generating the browser window
+
+ *netrw-:Vexplore*
+:[N]Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
+:[N]Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
+
+The optional parameters are:
+
+ [N]: This parameter will override |g:netrw_winsize| to specify the quantity of
+ rows and/or columns the new explorer window should have.
+ Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
+ user, is used to control the quantity of rows and/or columns new
+ explorer windows should have.
+
+ [dir]: By default, these explorer commands use the current file's directory.
+ However, one may explicitly provide a directory (path) to use instead;
+ ie. >
+
+ :Explore /some/path
+<
+ *netrw-:Rexplore*
+:Rexplore This command is a little different from the other Explore commands
+ as it doesn't necessarily open an Explorer window.
+
+ Return to Explorer~
+ When one edits a file using netrw which can occur, for example,
+ when pressing <cr> while the cursor is atop a filename in a netrw
+ browser window, a :Rexplore issued while editing that file will
+ return the display to that of the last netrw browser display in
+ that window.
+
+ Return from Explorer~
+ Conversely, when one is editing a directory, issuing a :Rexplore
+ will return to editing the file that was last edited in that
+ window.
+
+ The <2-leftmouse> map (which is only available under gvim and
+ cooperative terms) does the same as :Rexplore.
+
+Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
+
+
+*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat* *netrw-grep*
+EXPLORING WITH STARS AND PATTERNS {{{2
+
+When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
+following four patterns Explore generates a list of files which satisfy the
+request for the local file system. These exploration patterns will not work
+with remote file browsing.
+
+ */filepat files in current directory which satisfy filepat
+ **/filepat files in current directory or below which satisfy the
+ file pattern
+ *//pattern files in the current directory which contain the
+ pattern (vimgrep is used)
+ **//pattern files in the current directory or below which contain
+ the pattern (vimgrep is used)
+<
+The cursor will be placed on the first file in the list. One may then
+continue to go to subsequent files on that list via |:Nexplore| or to
+preceding files on that list with |:Pexplore|. Explore will update the
+directory and place the cursor appropriately.
+
+A plain >
+ :Explore
+will clear the explore list.
+
+If your console or gui produces recognizable shift-up or shift-down sequences,
+then you'll likely find using shift-downarrow and shift-uparrow convenient.
+They're mapped by netrw as follows:
+
+ <s-down> == Nexplore, and
+ <s-up> == Pexplore.
+
+As an example, consider
+>
+ :Explore */*.c
+ :Nexplore
+ :Nexplore
+ :Pexplore
+<
+The status line will show, on the right hand side of the status line, a
+message like "Match 3 of 20".
+
+Associated setting variables:
+ |g:netrw_keepdir| |g:netrw_browse_split|
+ |g:netrw_fastbrowse| |g:netrw_ftp_browse_reject|
+ |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
+ |g:netrw_ftp_timelist_cmd| |g:netrw_list_cmd|
+ |g:netrw_liststyle|
+
+
+DISPLAYING INFORMATION ABOUT FILE *netrw-qf* {{{2
+
+With the cursor atop a filename, pressing "qf" will reveal the file's size
+and last modification timestamp. Currently this capability is only available
+for local files.
+
+
+EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide* {{{2
+
+The "<ctrl-h>" map brings up a requestor allowing the user to change the
+file/directory hiding list contained in |g:netrw_list_hide|. The hiding list
+consists of one or more patterns 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|).
+
+The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
+hiding list and the hiding of files or directories that begin with ".".
+
+As an example, >
+ let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
+Effectively, this makes the effect of a |netrw-gh| command the initial setting.
+What it means:
+
+ \(^\|\s\s\) : if the line begins with the following, -or-
+ two consecutive spaces are encountered
+ \zs : start the hiding match now
+ \. : if it now begins with a dot
+ \S\+ : and is followed by one or more non-whitespace
+ characters
+
+Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
+Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
+
+ *netrw-sort-sequence*
+EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
+
+When "Sorted by" is name, one may specify priority via the sorting sequence
+(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
+name-listing by suffix, although any pattern will do. Patterns are delimited
+by commas. The default sorting sequence is (all one line):
+
+For Unix: >
+ '[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
+ \.info$,\.swp$,\.bak$,\~$'
+<
+Otherwise: >
+ '[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
+ \.swp$,\.bak$,\~$'
+<
+The lone * is where all filenames not covered by one of the other patterns
+will end up. One may change the sorting sequence by modifying the
+g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
+using the "S" map.
+
+Related topics: |netrw-s| |netrw-S|
+Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|
+
+
+EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
+
+Pressing X while the cursor is atop an executable file will yield a prompt
+using the filename asking for any arguments. Upon pressing a [return], netrw
+will then call |system()| with that command and arguments. The result will be
+displayed by |:echomsg|, and so |:messages| will repeat display of the result.
+Ansi escape sequences will be stripped out.
+
+See |cmdline-window| for directions for more on how to edit the arguments.
+
+
+FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
+
+Remote symbolic links (ie. those listed via ssh or ftp) are problematic
+in that it is difficult to tell whether they link to a file or to a
+directory.
+
+To force treatment as a file: use >
+ gf
+<
+To force treatment as a directory: use >
+ gd
+<
+
+GOING UP *netrw--* {{{2
+
+To go up a directory, press "-" or press the <cr> when atop the ../ directory
+entry in the listing.
+
+Netrw will use the command in |g:netrw_list_cmd| to perform the directory
+listing operation after changing HOSTNAME to the host specified by the
+user-prpvided url. By default netrw provides the command as: >
+
+ ssh HOSTNAME ls -FLa
+<
+where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
+read. Naturally, the user may override this command with whatever is
+preferred. The NetList function which implements remote browsing
+expects that directories will be flagged by a trailing slash.
+
+
+HIDING FILES OR DIRECTORIES *netrw-a* *netrw-hiding* {{{2
+
+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.
+
+If no files have been marked via |netrw-mf|:
+
+The "a" map allows the user to cycle through the three hiding modes.
+
+The |g:netrw_list_hide| variable holds a comma delimited list of patterns
+based on regular expressions (ex. ^.*\.obj$,^\.) which specify the hiding list.
+(also see |netrw-ctrl-h|) To set the hiding list, use the <c-h> map. As an
+example, to hide files which begin with a ".", one may use the <c-h> map to
+set the hiding list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*'
+in one's <.vimrc>). One may then use the "a" key to show all files, hide
+matching files, or to show only the matching files.
+
+ Example: \.[ch]$
+ This hiding list command will hide/show all *.c and *.h files.
+
+ Example: \.c$,\.h$
+ This hiding list command will also hide/show all *.c and *.h
+ files.
+
+Don't forget to use the "a" map to select the mode (normal/hiding/show) you
+want!
+
+If files have been marked using |netrw-mf|, then this command will:
+
+ if showing all files or non-hidden files:
+ modify the g:netrw_list_hide list by appending the marked files to it
+ and showing only non-hidden files.
+
+ else if showing hidden files only:
+ modify the g:netrw_list_hide list by removing the marked files from it
+ and showing only non-hidden files.
+ endif
+
+ *netrw-gh* *netrw-hide*
+As a quick shortcut, one may press >
+ gh
+to toggle between hiding files which begin with a period (dot) and not hiding
+them.
+
+Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
+Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
+
+ *netrw-gitignore*
+Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
+|g:netrw_list_hide| automatically hides all git-ignored files.
+
+'netrw_gitignore#Hide' searches for patterns in the following files: >
+
+ './.gitignore'
+ './.git/info/exclude'
+ global gitignore file: `git config --global core.excludesfile`
+ system gitignore file: `git config --system core.excludesfile`
+<
+Files that do not exist, are ignored.
+Git-ignore patterns are taken from existing files, and converted to patterns for
+hiding files. For example, if you had '*.log' in your '.gitignore' file, it
+would be converted to '.*\.log'.
+
+To use this function, simply assign its output to |g:netrw_list_hide| option. >
+
+ Example: let g:netrw_list_hide= netrw_gitignore#Hide()
+ Git-ignored files are hidden in Netrw.
+
+ Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
+ Function can take additional files with git-ignore patterns.
+
+ Example: let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
+ Combining 'netrw_gitignore#Hide' with custom patterns.
+<
+
+IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
+
+Especially with the remote directory browser, constantly entering the password
+is tedious.
+
+For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength
+tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip
+for setting up no-password ssh and scp and discusses associated security
+issues. It used to be available at http://hacks.oreilly.com/pub/h/66 ,
+but apparently that address is now being redirected to some "hackzine".
+I'll attempt a summary based on that article and on a communication from
+Ben Schmidt:
+
+ 1. Generate a public/private key pair on the local machine
+ (ssh client): >
+ ssh-keygen -t rsa
+ (saving the file in ~/.ssh/id_rsa as prompted)
+<
+ 2. Just hit the <CR> when asked for passphrase (twice) for no
+ passphrase. If you do use a passphrase, you will also need to use
+ ssh-agent so you only have to type the passphrase once per session.
+ If you don't use a passphrase, simply logging onto your local
+ computer or getting access to the keyfile in any way will suffice
+ to access any ssh servers which have that key authorized for login.
+
+ 3. This creates two files: >
+ ~/.ssh/id_rsa
+ ~/.ssh/id_rsa.pub
+<
+ 4. On the target machine (ssh server): >
+ cd
+ mkdir -p .ssh
+ chmod 0700 .ssh
+<
+ 5. On your local machine (ssh client): (one line) >
+ ssh {serverhostname}
+ cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
+<
+ or, for OpenSSH, (one line) >
+ ssh {serverhostname}
+ cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
+<
+You can test it out with >
+ ssh {serverhostname}
+and you should be log onto the server machine without further need to type
+anything.
+
+If you decided to use a passphrase, do: >
+ ssh-agent $SHELL
+ ssh-add
+ ssh {serverhostname}
+You will be prompted for your key passphrase when you use ssh-add, but not
+subsequently when you use ssh. For use with vim, you can use >
+ ssh-agent vim
+and, when next within vim, use >
+ :!ssh-add
+Alternatively, you can apply ssh-agent to the terminal you're planning on
+running vim in: >
+ ssh-agent xterm &
+and do ssh-add whenever you need.
+
+For Windows, folks on the vim mailing list have mentioned that Pageant helps
+with avoiding the constant need to enter the password.
+
+Kingston Fung wrote about another way to avoid constantly needing to enter
+passwords:
+
+ In order to avoid the need to type in the password for scp each time, you
+ provide a hack in the docs to set up a non password ssh account. I found a
+ better way to do that: I can use a regular ssh account which uses a
+ password to access the material without the need to key-in the password
+ each time. It's good for security and convenience. I tried ssh public key
+ authorization + ssh-agent, implementing this, and it works! Here are two
+ links with instructions:
+
+ http://www.ibm.com/developerworks/library/l-keyc2/
+ http://sial.org/howto/openssh/publickey-auth/
+
+
+ Ssh hints:
+
+ Thomer Gil has provided a hint on how to speed up netrw+ssh:
+ http://thomer.com/howtos/netrw_ssh.html
+
+ Alex Young has several hints on speeding ssh up:
+ http://usevim.com/2012/03/16/editing-remote-files/
+
+
+LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
+
+Pressing "qb" (query bookmarks) will list both the bookmarked directories and
+directory traversal history.
+
+Related Topics:
+ |netrw-gb| how to return (go) to a bookmark
+ |netrw-mb| how to make a bookmark
+ |netrw-mB| how to delete bookmarks
+ |netrw-u| change to a predecessor directory via the history stack
+ |netrw-U| change to a successor directory via the history stack
+
+MAKING A NEW DIRECTORY *netrw-d* {{{2
+
+With the "d" map one may make a new directory either remotely (which depends
+on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
+global variable g:netrw_localmkdir). Netrw will issue a request for the 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.
+
+Related topics: |netrw-D|
+Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
+ |g:netrw_remote_mkdir| |netrw-%|
+
+
+MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
+
+By default, |g:netrw_keepdir| is 1. This setting means that the current
+directory will not track the browsing directory. (done for backwards
+compatibility with v6's file explorer).
+
+Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory
+track netrw's browsing directory.
+
+However, given the default setting for g:netrw_keepdir of 1 where netrw
+maintains its own separate notion of the current directory, in order to make
+the two directories the same, use the "cd" map (type cd). That map will
+set Vim's notion of the current directory to netrw's current browsing
+directory.
+
+|netrw-cd| : This map's name was changed from "c" to cd (see |netrw-cd|).
+ This change was done to allow for |netrw-cb| and |netrw-cB| maps.
+
+Associated setting variable: |g:netrw_keepdir|
+
+MARKING FILES *netrw-:MF* *netrw-mf* {{{2
+ (also see |netrw-mr|)
+
+Netrw provides several ways to mark files:
+
+ * One may mark files with the cursor atop a filename and
+ then pressing "mf".
+
+ * With gvim, in addition one may mark files with
+ <s-leftmouse>. (see |netrw-mouse|)
+
+ * One may use the :MF command, which takes a list of
+ files (for local directories, the list may include
+ wildcards -- see |glob()|) >
+
+ :MF *.c
+<
+ (Note that :MF uses |<f-args>| to break the line
+ at spaces)
+
+ * Mark files using the |argument-list| (|netrw-mA|)
+
+ * Mark files based upon a |location-list| (|netrw-qL|)
+
+ * Mark files based upon the quickfix list (|netrw-qF|)
+ (|quickfix-error-lists|)
+
+The following netrw maps make use of marked files:
+
+ |netrw-a| Hide marked files/directories
+ |netrw-D| Delete marked files/directories
+ |netrw-ma| Move marked files' names to |arglist|
+ |netrw-mA| Move |arglist| filenames to marked file list
+ |netrw-mb| Append marked files to bookmarks
+ |netrw-mB| Delete marked files from bookmarks
+ |netrw-mc| Copy marked files to target
+ |netrw-md| Apply vimdiff to marked files
+ |netrw-me| Edit marked files
+ |netrw-mF| Unmark marked files
+ |netrw-mg| Apply vimgrep to marked files
+ |netrw-mm| Move marked files to target
+ |netrw-mp| Print marked files
+ |netrw-ms| Netrw will source marked files
+ |netrw-mt| Set target for |netrw-mm| and |netrw-mc|
+ |netrw-mT| Generate tags using marked files
+ |netrw-mv| Apply vim command to marked files
+ |netrw-mx| Apply shell command to marked files
+ |netrw-mX| Apply shell command to marked files, en bloc
+ |netrw-mz| Compress/Decompress marked files
+ |netrw-O| Obtain marked files
+ |netrw-R| Rename marked files
+
+One may unmark files one at a time the same way one marks them; ie. place
+the cursor atop a marked file and press "mf". This process also works
+with <s-leftmouse> using gvim. One may unmark all files by pressing
+"mu" (see |netrw-mu|).
+
+Marked files are highlighted using the "netrwMarkFile" highlighting group,
+which by default is linked to "Identifier" (see Identifier under
+|group-name|). You may change the highlighting group by putting something
+like >
+
+ highlight clear netrwMarkFile
+ hi link netrwMarkFile ..whatever..
+<
+into $HOME/.vim/after/syntax/netrw.vim .
+
+If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
+mark one or more files. You may mark multiple files by dragging the shifted
+leftmouse. (see |netrw-mouse|)
+
+ *markfilelist* *global_markfilelist* *local_markfilelist*
+All marked files are entered onto the global marked file list; there is only
+one such list. In addition, every netrw buffer also has its own buffer-local
+marked file list; since netrw buffers are associated with specific
+directories, this means that each directory has its own local marked file
+list. The various commands which operate on marked files use one or the other
+of the marked file lists.
+
+Known Problem: if one is using tree mode (|g:netrw_liststyle|) and several
+directories have files with the same name, then marking such a file will
+result in all such files being highlighted as if they were all marked. The
+|markfilelist|, however, will only have the selected file in it. This problem
+is unlikely to be fixed.
+
+
+UNMARKING FILES *netrw-mF* {{{2
+ (also see |netrw-mf|, |netrw-mu|)
+
+The "mF" command will unmark all files in the current buffer. One may also use
+mf (|netrw-mf|) on a specific, already marked, file to unmark just that file.
+
+MARKING FILES BY LOCATION LIST *netrw-qL* {{{2
+ (also see |netrw-mf|)
+
+One may convert |location-list|s into a marked file list using "qL".
+You may then proceed with commands such as me (|netrw-me|) to edit them.
+
+
+MARKING FILES BY QUICKFIX LIST *netrw-qF* {{{2
+ (also see |netrw-mf|)
+
+One may convert |quickfix-error-lists| into a marked file list using "qF".
+You may then proceed with commands such as me (|netrw-me|) to edit them.
+Quickfix error lists are generated, for example, by calls to |:vimgrep|.
+
+
+MARKING FILES BY REGULAR EXPRESSION *netrw-mr* {{{2
+ (also see |netrw-mf|)
+
+One may also mark files by pressing "mr"; netrw will then issue a prompt,
+"Enter regexp: ". You may then enter a shell-style regular expression such
+as *.c$ (see |glob()|). For remote systems, glob() doesn't work -- so netrw
+converts "*" into ".*" (see |regexp|) and marks files based on that. In the
+future I may make it possible to use |regexp|s instead of glob()-style
+expressions (yet-another-option).
+
+See |cmdline-window| for directions on more on how to edit the regular
+expression.
+
+
+MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the local marked-file list)
+
+The "mv" map causes netrw to execute an arbitrary vim command on each file on
+the local marked file list, individually:
+
+ * 1split
+ * sil! keepalt e file
+ * run vim command
+ * sil! keepalt wq!
+
+A prompt, "Enter vim command: ", will be issued to elicit the vim command you
+wish used. See |cmdline-window| for directions for more on how to edit the
+command.
+
+
+MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the local marked-file list)
+
+Upon activation of the "mx" map, netrw will query the user for some (external)
+command to be applied to all marked files. All "%"s in the command will be
+substituted with the name of each marked file in turn. If no "%"s are in the
+command, then the command will be followed by a space and a marked filename.
+
+Example:
+ (mark files)
+ mx
+ Enter command: cat
+
+ The result is a series of shell commands:
+ cat 'file1'
+ cat 'file2'
+ ...
+
+
+MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC *netrw-mX* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked-file list)
+
+Upon activation of the 'mX' map, netrw will query the user for some (external)
+command to be applied to all marked files on the global marked file list. The
+"en bloc" means that one command will be executed on all the files at once: >
+
+ command files
+
+This approach is useful, for example, to select files and make a tarball: >
+
+ (mark files)
+ mX
+ Enter command: tar cf mynewtarball.tar
+<
+The command that will be run with this example:
+
+ tar cf mynewtarball.tar 'file1' 'file2' ...
+
+
+MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked-file list)
+
+Using ma, one moves filenames from the marked file list to the argument list.
+Using mA, one moves filenames from the argument list to the marked file list.
+
+See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
+
+
+MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked-file list)
+
+Using cb, one moves filenames from the marked file list to the buffer list.
+Using cB, one copies filenames from the buffer list to the marked file list.
+
+See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
+
+
+MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the local marked file list)
+
+If any marked files are compressed, then "mz" will decompress them.
+If any marked files are decompressed, then "mz" will compress them
+using the command specified by |g:netrw_compress|; by default,
+that's "gzip".
+
+For decompression, netrw uses a |Dictionary| of suffices and their
+associated decompressing utilities; see |g:netrw_decompress|.
+
+Remember that one can mark multiple files by regular expression
+(see |netrw-mr|); this is particularly useful to facilitate compressing and
+decompressing a large number of files.
+
+Associated setting variables: |g:netrw_compress| |g:netrw_decompress|
+
+MARKED FILES: COPYING *netrw-mc* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (Uses the global marked file list)
+
+Select a target directory with mt (|netrw-mt|). Then change directory,
+select file(s) (see |netrw-mf|), and press "mc". The copy is done
+from the current window (where one does the mf) to the target.
+
+If one does not have a target directory set with |netrw-mt|, then netrw
+will query you for a directory to copy to.
+
+One may also copy directories and their contents (local only) to a target
+directory.
+
+Associated setting variables:
+ |g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
+ |g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
+ |g:netrw_ssh_cmd|
+
+MARKED FILES: DIFF *netrw-md* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked file list)
+
+Use |vimdiff| to visualize difference between selected files (two or
+three may be selected for this). Uses the global marked file list.
+
+MARKED FILES: EDITING *netrw-me* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked file list)
+
+The "me" command will place the marked files on the |arglist| and commence
+editing them. One may return the to explorer window with |:Rexplore|.
+(use |:n| and |:p| to edit next and previous files in the arglist)
+
+MARKED FILES: GREP *netrw-mg* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked file list)
+
+The "mg" command will apply |:vimgrep| to the marked files.
+The command will ask for the requested pattern; one may then enter: >
+
+ /pattern/[g][j]
+ ! /pattern/[g][j]
+ pattern
+<
+With /pattern/, editing will start with the first item on the |quickfix| list
+that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|, |:cclose|). The |:vimgrep|
+command is in use, so without 'g' each line is added to quickfix list only
+once; with 'g' every match is included.
+
+With /pattern/j, "mg" will winnow the current marked file list to just those
+marked files also possessing the specified pattern. Thus, one may use >
+
+ mr ...file-pattern...
+ mg /pattern/j
+<
+to have a marked file list satisfying the file-pattern but also restricted to
+files containing some desired pattern.
+
+
+MARKED FILES: HIDING AND UNHIDING BY SUFFIX *netrw-mh* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the local marked file list)
+
+The "mh" command extracts the suffices of the marked files and toggles their
+presence on the hiding list. Please note that marking the same suffix
+this way multiple times will result in the suffix's presence being toggled
+for each file (so an even quantity of marked files having the same suffix
+is the same as not having bothered to select them at all).
+
+Related topics: |netrw-a| |g:netrw_list_hide|
+
+MARKED FILES: MOVING *netrw-mm* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked file list)
+
+ WARNING: moving files is more dangerous than copying them.
+ A file being moved is first copied and then deleted; if the
+ copy operation fails and the delete succeeds, you will lose
+ the file. Either try things out with unimportant files
+ first or do the copy and then delete yourself using mc and D.
+ Use at your own risk!
+
+Select a target directory with mt (|netrw-mt|). Then change directory,
+select file(s) (see |netrw-mf|), and press "mm". The move is done
+from the current window (where one does the mf) to the target.
+
+Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
+
+MARKED FILES: PRINTING *netrw-mp* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the local marked file list)
+
+When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
+What netrw does is open each file in a one-line window, execute hardcopy, then
+close the one-line window.
+
+
+MARKED FILES: SOURCING *netrw-ms* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the local marked file list)
+
+With "ms", netrw will source the marked files (using vim's |:source| command)
+
+
+MARKED FILES: SETTING THE TARGET DIRECTORY *netrw-mt* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+
+Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):
+
+ * If the cursor is atop a file name, then the netrw window's currently
+ displayed directory is used for the copy/move-to target.
+
+ * Also, if the cursor is in the banner, then the netrw window's currently
+ displayed directory is used for the copy/move-to target.
+ Unless the target already is the current directory. In which case,
+ typing "mf" clears the target.
+
+ * However, if the cursor is atop a directory name, then that directory is
+ used for the copy/move-to target
+
+ * One may use the :MT [directory] command to set the target *netrw-:MT*
+ This command uses |<q-args>|, so spaces in the directory name are
+ permitted without escaping.
+
+ * With mouse-enabled vim or with gvim, one may select a target by using
+ <c-leftmouse>
+
+There is only one copy/move-to target at a time in a vim session; ie. the
+target is a script variable (see |s:var|) and is shared between all netrw
+windows (in an instance of vim).
+
+When using menus and gvim, netrw provides a "Targets" entry which allows one
+to pick a target from the list of bookmarks and history.
+
+Related topics:
+ Marking Files......................................|netrw-mf|
+ Marking Files by Regular Expression................|netrw-mr|
+ Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
+ Marked Files: Target Directory Using History.......|netrw-Th|
+
+
+MARKED FILES: TAGGING *netrw-mT* {{{2
+ (See |netrw-mf| and |netrw-mr| for how to mark files)
+ (uses the global marked file list)
+
+The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
+"ctags") to marked files. For remote browsing, in order to create a tags file
+netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
+this to work on remote systems. For your local system, see |ctags| on how to
+get a version. I myself use hdrtags, currently available at
+http://www.drchip.org/astronaut/src/index.html , and have >
+
+ let g:netrw_ctags= "hdrtag"
+<
+in my <.vimrc>.
+
+When a remote set of files are tagged, the resulting tags file is "obtained";
+ie. a copy is transferred to the local system's directory. The now local tags
+file is then modified so that one may use it through the network. The
+modification made concerns the names of the files in the tags; each filename is
+preceded by the netrw-compatible URL used to obtain it. When one subsequently
+uses one of the go to tag actions (|tags|), the URL will be used by netrw to
+edit the desired file and go to the tag.
+
+Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
+
+MARKED FILES: TARGET DIRECTORY USING BOOKMARKS *netrw-Tb* {{{2
+
+Sets the marked file copy/move-to target.
+
+The |netrw-qb| map will give you a list of bookmarks (and history).
+One may choose one of the bookmarks to become your marked file
+target by using [count]Tb (default count: 1).
+
+Related topics:
+ Copying files to target............................|netrw-mc|
+ Listing Bookmarks and History......................|netrw-qb|
+ Marked Files: Setting The Target Directory.........|netrw-mt|
+ Marked Files: Target Directory Using History.......|netrw-Th|
+ Marking Files......................................|netrw-mf|
+ Marking Files by Regular Expression................|netrw-mr|
+ Moving files to target.............................|netrw-mm|
+
+
+MARKED FILES: TARGET DIRECTORY USING HISTORY *netrw-Th* {{{2
+
+Sets the marked file copy/move-to target.
+
+The |netrw-qb| map will give you a list of history (and bookmarks).
+One may choose one of the history entries to become your marked file
+target by using [count]Th (default count: 0; ie. the current directory).
+
+Related topics:
+ Copying files to target............................|netrw-mc|
+ Listing Bookmarks and History......................|netrw-qb|
+ Marked Files: Setting The Target Directory.........|netrw-mt|
+ Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
+ Marking Files......................................|netrw-mf|
+ Marking Files by Regular Expression................|netrw-mr|
+ Moving files to target.............................|netrw-mm|
+
+
+MARKED FILES: UNMARKING *netrw-mu* {{{2
+ (See |netrw-mf|, |netrw-mF|)
+
+The "mu" mapping will unmark all currently marked files. This command differs
+from "mF" as the latter only unmarks files in the current directory whereas
+"mu" will unmark global and all buffer-local marked files.
+(see |netrw-mF|)
+
+
+ *netrw-browser-settings*
+NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
+
+(if you're interested in the netrw file transfer settings, see |netrw-options|
+ and |netrw-protocol|)
+
+The <netrw.vim> browser provides settings in the form of variables which
+you may modify; by placing these settings in your <.vimrc>, you may customize
+your browsing preferences. (see also: |netrw-settings|)
+>
+ --- -----------
+ Var Explanation
+ --- -----------
+< *g:netrw_altfile* some like |CTRL-^| to return to the last
+ edited file. Choose that by setting this
+ parameter to 1.
+ Others like |CTRL-^| to return to the
+ netrw browsing buffer. Choose that by setting
+ this parameter to 0.
+ default: =0
+
+ *g:netrw_alto* change from above splitting to below splitting
+ by setting this variable (see |netrw-o|)
+ default: =&sb (see |'sb'|)
+
+ *g:netrw_altv* change from left splitting to right splitting
+ by setting this variable (see |netrw-v|)
+ default: =&spr (see |'spr'|)
+
+ *g:netrw_banner* enable/suppress the banner
+ =0: suppress the banner
+ =1: banner is enabled (default)
+
+ *g:netrw_bannerbackslash* if this variable exists and is not zero, the
+ banner will be displayed with backslashes
+ rather than forward slashes.
+
+ *g:netrw_browse_split* when browsing, <cr> will open the file by:
+ =0: re-using the same window (default)
+ =1: horizontally splitting the window first
+ =2: vertically splitting the window first
+ =3: open file in new tab
+ =4: act like "P" (ie. open previous window)
+ Note that |g:netrw_preview| may be used
+ to get vertical splitting instead of
+ horizontal splitting.
+ =[servername,tab-number,window-number]
+ Given a |List| such as this, a remote server
+ named by the "servername" will be used for
+ editing. It will also use the specified tab
+ and window numbers to perform editing
+ (see |clientserver|, |netrw-ctrl-r|)
+ This option does not affect the production of
+ |:Lexplore| windows.
+
+ Related topics:
+ |g:netrw_alto| |g:netrw_altv|
+ |netrw-C| |netrw-cr|
+ |netrw-ctrl-r|
+
+ *g:netrw_browsex_viewer* specify user's preference for a viewer: >
+ "kfmclient exec"
+ "gnome-open"
+< If >
+ "-"
+< is used, then netrwFileHandler() will look for
+ a script/function to handle the given
+ extension. (see |netrw_filehandler|).
+
+ *g:netrw_browsex_support_remote*
+ specify if the specified viewer supports a
+ remote URL. (see |netrw-handler|).
+
+ *g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
+ Windows: "cacls FILENAME /e /p PERM"
+ Used to change access permission for a file.
+
+ *g:netrw_clipboard* =1
+ By default, netrw will attempt to insure that
+ the clipboard's values will remain unchanged.
+ However, some users report that they have
+ speed problems with this; consequently, this
+ option, when set to zero, lets such users
+ prevent netrw from saving and restoring the
+ clipboard (the latter is done only as needed).
+ That means that if the clipboard is changed
+ (inadvertently) by normal netrw operation that
+ it will not be restored to its prior state.
+
+ *g:netrw_compress* ="gzip"
+ Will compress marked files with this
+ command
+
+ *g:Netrw_corehandler* Allows one to specify something additional
+ to do when handling <core> files via netrw's
+ browser's "x" command (see |netrw-x|). If
+ present, g:Netrw_corehandler specifies
+ either one or more function references
+ (see |Funcref|). (the capital g:Netrw...
+ is required its holding a function reference)
+
+
+ *g:netrw_ctags* ="ctags"
+ The default external program used to create
+ tags
+
+ *g:netrw_cursor* = 2 (default)
+ This option controls the use of the
+ |'cursorline'| (cul) and |'cursorcolumn'|
+ (cuc) settings by netrw:
+
+ Value Thin-Long-Tree Wide
+ =0 u-cul u-cuc u-cul u-cuc
+ =1 u-cul u-cuc cul u-cuc
+ =2 cul u-cuc cul u-cuc
+ =3 cul u-cuc cul cuc
+ =4 cul cuc cul cuc
+ =5 U-cul U-cuc U-cul U-cuc
+ =6 U-cul U-cuc cul U-cuc
+ =7 cul U-cuc cul U-cuc
+ =8 cul U-cuc cul cuc
+
+ Where
+ u-cul : user's |'cursorline'| initial setting used
+ u-cuc : user's |'cursorcolumn'| initial setting used
+ U-cul : user's |'cursorline'| current setting used
+ U-cuc : user's |'cursorcolumn'| current setting used
+ cul : |'cursorline'| will be locally set
+ cuc : |'cursorcolumn'| will be locally set
+
+ The "initial setting" means the values of
+ the |'cuc'| and |'cul'| settings in effect when
+ netrw last saw |g:netrw_cursor| >= 5 or when
+ netrw was initially run.
+
+ *g:netrw_decompress* = { ".gz" : "gunzip" ,
+ ".bz2" : "bunzip2" ,
+ ".zip" : "unzip" ,
+ ".tar" : "tar -xf"}
+ A dictionary mapping suffices to
+ decompression programs.
+
+ *g:netrw_dirhistmax* =10: controls maximum quantity of past
+ history. May be zero to suppress
+ history.
+ (related: |netrw-qb| |netrw-u| |netrw-U|)
+
+ *g:netrw_dynamic_maxfilenamelen* =32: enables dynamic determination of
+ |g:netrw_maxfilenamelen|, which affects
+ local file long listing.
+
+ *g:netrw_errorlvl* =0: error levels greater than or equal to
+ this are permitted to be displayed
+ 0: notes
+ 1: warnings
+ 2: errors
+
+ *g:netrw_fastbrowse* =0: slow speed directory browsing;
+ never re-uses directory listings;
+ always obtains directory listings.
+ =1: medium speed directory browsing;
+ re-use directory listings only
+ when remote directory browsing.
+ (default value)
+ =2: fast directory browsing;
+ only obtains directory listings when the
+ directory hasn't been seen before
+ (or |netrw-ctrl-l| is used).
+
+ Fast browsing retains old directory listing
+ buffers so that they don't need to be
+ re-acquired. This feature is especially
+ important for remote browsing. However, if
+ a file is introduced or deleted into or from
+ such directories, the old directory buffer
+ becomes out-of-date. One may always refresh
+ such a directory listing with |netrw-ctrl-l|.
+ This option gives the user the choice of
+ trading off accuracy (ie. up-to-date listing)
+ versus speed.
+
+ *g:netrw_ffkeep* (default: doesn't exist)
+ If this variable exists and is zero, then
+ netrw will not do a save and restore for
+ |'fileformat'|.
+
+ *g:netrw_fname_escape* =' ?&;%'
+ Used on filenames before remote reading/writing
+
+ *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. 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_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_ftp_sizelist_cmd* options for passing along to ftp for directory
+ listing, sorted by size of file.
+ Defaults:
+ unix or g:netrw_cygwin set: : "ls -slF"
+ otherwise "dir"
+
+ *g:netrw_ftp_timelist_cmd* options for passing along to ftp for directory
+ listing, sorted by time of last modification.
+ Defaults:
+ unix or g:netrw_cygwin set: : "ls -tlF"
+ otherwise "dir"
+
+ *g:netrw_glob_escape* ='[]*?`{~$' (unix)
+ ='[]*?`{$' (windows
+ These characters in directory names are
+ escaped before applying glob()
+
+ *g:netrw_gx* ="<cfile>"
+ This option controls how gx (|netrw-gx|) picks
+ up the text under the cursor. See |expand()|
+ for possibilities.
+
+ *g:netrw_hide* Controlled by the "a" map (see |netrw-a|)
+ =0 : show all
+ =1 : show not-hidden files
+ =2 : show hidden files only
+ default: =1
+
+ *g:netrw_home* The home directory for where bookmarks and
+ history are saved (as .netrwbook and
+ .netrwhist).
+ Netrw uses |expand()|on the string.
+ default: the first directory on the
+ |'runtimepath'|
+
+ *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 current browsing directory is contained in
+ b:netrw_curdir (also see |netrw-cd|)
+
+ *g:netrw_keepj* ="keepj" (default) netrw attempts to keep the
+ |:jumps| table unaffected.
+ ="" netrw will not use |:keepjumps| with
+ exceptions only for the
+ saving/restoration of position.
+
+ *g:netrw_list_cmd* command for listing remote directories
+ default: (if ssh is executable)
+ "ssh HOSTNAME ls -FLa"
+
+ *g:netrw_list_cmd_options* If this variable exists, then its contents are
+ appended to the g:netrw_list_cmd. For
+ example, use "2>/dev/null" to get rid of banner
+ messages on unix systems.
+
+
+ *g:netrw_liststyle* Set the default listing style:
+ = 0: thin listing (one file per line)
+ = 1: long listing (one file per line with time
+ stamp information and file size)
+ = 2: wide listing (multiple files in columns)
+ = 3: tree style listing
+
+ *g:netrw_list_hide* comma-separated pattern list for hiding files
+ Patterns are regular expressions (see |regexp|)
+ There's some special support for git-ignore
+ files: you may add the output from the helper
+ function 'netrw_gitignore#Hide() automatically
+ hiding all gitignored files.
+ For more details see |netrw-gitignore|.
+
+ Examples:
+ let g:netrw_list_hide= '.*\.swp$'
+ let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
+ default: ""
+
+ *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
+ Copies marked files (|netrw-mf|) to target
+ directory (|netrw-mt|, |netrw-mc|)
+
+ *g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
+ =' \c copy' Windows
+ Options for the |g:netrw_localcopycmd|
+
+ *g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
+ Copies directories to target directory.
+ (|netrw-mc|, |netrw-mt|)
+
+ *g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
+ =" /c xcopy /e /c /h/ /i /k" Windows
+ Options for |g:netrw_localcopydircmd|
+
+ *g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
+ command for making a local directory
+
+ *g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
+ =" /c mkdir" Windows
+ Options for |g:netrw_localmkdir|
+
+ *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
+ Moves marked files (|netrw-mf|) to target
+ directory (|netrw-mt|, |netrw-mm|)
+
+ *g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
+ =" /c move" Windows
+ Options for |g:netrw_localmovecmd|
+
+ *g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
+ =expand("$COMSPEC") Windows
+ Remove directory command (rmdir)
+ This variable is only used if your vim is
+ earlier than 7.4 or if your vim doesn't
+ have patch#1107. Otherwise, |delete()|
+ is used with the "d" option.
+
+ *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
+ or 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
+ via ssh (also see |g:netrw_remote_mkdir|)
+ default: "ssh USEPORT HOSTNAME mkdir"
+
+ *g:netrw_mousemaps* =1 (default) enables mouse buttons while
+ browsing to:
+ leftmouse : open file/directory
+ shift-leftmouse : mark file
+ middlemouse : same as P
+ rightmouse : remove file/directory
+ =0: disables mouse maps
+
+ *g:netrw_nobeval* doesn't exist (default)
+ If this variable exists, then balloon
+ evaluation will be suppressed
+ (see |'ballooneval'|)
+
+ *g:netrw_sizestyle* not defined: actual bytes (default)
+ ="b" : actual bytes (default)
+ ="h" : human-readable (ex. 5k, 4m, 3g)
+ uses 1000 base
+ ="H" : human-readable (ex. 5K, 4M, 3G)
+ uses 1024 base
+ The long listing (|netrw-i|) and query-file
+ maps (|netrw-qf|) will display file size
+ using the specified style.
+
+ *g:netrw_usetab* if this variable exists and is non-zero, then
+ the <tab> map supporting shrinking/expanding a
+ Lexplore or netrw window will be enabled.
+ (see |netrw-c-tab|)
+
+ *g:netrw_remote_mkdir* command for making a remote directory
+ via ftp (also see |g:netrw_mkdir_cmd|)
+ default: "mkdir"
+
+ *g:netrw_retmap* if it exists and is set to one, then:
+ * if in a netrw-selected file, AND
+ * no normal-mode <2-leftmouse> mapping exists,
+ then the <2-leftmouse> will be mapped for easy
+ return to the netrw browser window.
+ example: click once to select and open a file,
+ double-click to return.
+
+ Note that one may instead choose to:
+ * let g:netrw_retmap= 1, AND
+ * nmap <silent> YourChoice <Plug>NetrwReturn
+ and have another mapping instead of
+ <2-leftmouse> to invoke the return.
+
+ You may also use the |:Rexplore| command to do
+ the same thing.
+
+ default: =0
+
+ *g:netrw_rm_cmd* command for removing remote files
+ default: "ssh USEPORT HOSTNAME rm"
+
+ *g:netrw_rmdir_cmd* command for removing remote directories
+ default: "ssh USEPORT HOSTNAME rmdir"
+
+ *g:netrw_rmf_cmd* command for removing remote softlinks
+ default: "ssh USEPORT HOSTNAME rm -f"
+
+ *g:netrw_servername* use this variable to provide a name for
+ |netrw-ctrl-r| to use for its server.
+ default: "NETRWSERVER"
+
+ *g:netrw_sort_by* sort by "name", "time", "size", or
+ "exten".
+ default: "name"
+
+ *g:netrw_sort_direction* sorting direction: "normal" or "reverse"
+ default: "normal"
+
+ *g:netrw_sort_options* sorting is done using |:sort|; this
+ variable's value is appended to the
+ sort command. Thus one may ignore case,
+ for example, with the following in your
+ .vimrc: >
+ let g:netrw_sort_options="i"
+< default: ""
+
+ *g:netrw_sort_sequence* when sorting by name, first sort by the
+ comma-separated pattern sequence. Note that
+ any filigree added to indicate filetypes
+ should be accounted for in your pattern.
+ default: '[\/]$,*,\.bak$,\.o$,\.h$,
+ \.info$,\.swp$,\.obj$'
+
+ *g:netrw_special_syntax* If true, then certain files will be shown
+ using special syntax in the browser:
+
+ netrwBak : *.bak
+ netrwCompress: *.gz *.bz2 *.Z *.zip
+ netrwCoreDump: core.\d\+
+ netrwData : *.dat
+ netrwDoc : *.doc,*.txt,*.pdf,
+ *.pdf,*.docx
+ netrwHdr : *.h
+ netrwLex : *.l *.lex
+ netrwLib : *.a *.so *.lib *.dll
+ netrwMakefile: [mM]akefile *.mak
+ netrwObj : *.o *.obj
+ netrwPix : *.bmp,*.fit,*.fits,*.gif,
+ *.jpg,*.jpeg,*.pcx,*.ppc
+ *.pgm,*.png,*.psd,*.rgb
+ *.tif,*.xbm,*.xcf
+ netrwTags : tags ANmenu ANtags
+ netrwTilde : *
+ netrwTmp : tmp* *tmp
+ netrwYacc : *.y
+
+ In addition, those groups mentioned in
+ |'suffixes'| are also added to the special
+ file highlighting group.
+ These syntax highlighting groups are linked
+ to netrwGray or Folded by default
+ (see |hl-Folded|), but one may put lines like >
+ hi link netrwCompress Visual
+< into one's <.vimrc> to use one's own
+ preferences. Alternatively, one may
+ put such specifications into >
+ .vim/after/syntax/netrw.vim.
+< The netrwGray highlighting is set up by
+ netrw when >
+ * netrwGray has not been previously
+ defined
+ * the gui is running
+< As an example, I myself use a dark-background
+ colorscheme with the following in
+ .vim/after/syntax/netrw.vim: >
+
+ hi netrwCompress term=NONE cterm=NONE gui=NONE ctermfg=10 guifg=green ctermbg=0 guibg=black
+ hi netrwData term=NONE cterm=NONE gui=NONE ctermfg=9 guifg=blue ctermbg=0 guibg=black
+ hi netrwHdr term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
+ hi netrwLex term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
+ hi netrwYacc term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
+ hi netrwLib term=NONE cterm=NONE gui=NONE ctermfg=14 guifg=yellow
+ hi netrwObj term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
+ hi netrwTilde term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
+ hi netrwTmp term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
+ hi netrwTags term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
+ hi netrwDoc term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=yellow2 guibg=Blue3
+ hi netrwSymLink term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=grey60
+<
+ *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_ssh_cmd* One may specify an executable command
+ to use instead of ssh for remote actions
+ such as listing, file removal, etc.
+ default: ssh
+
+ *g:netrw_suppress_gx_mesg* =1 : browsers sometimes produce messages
+ which are normally unwanted intermixed
+ with the page.
+ However, when using links, for example,
+ those messages are what the browser produces.
+ By setting this option to 0, netrw will not
+ suppress browser messages.
+
+ *g:netrw_tmpfile_escape* =' &;'
+ escape() is applied to all temporary files
+ to escape these characters.
+
+ *g:netrw_timefmt* specify format string to vim's strftime().
+ The default, "%c", is "the preferred date
+ and time representation for the current
+ locale" according to my manpage entry for
+ strftime(); however, not all are satisfied
+ with it. Some alternatives:
+ "%a %d %b %Y %T",
+ " %a %Y-%m-%d %I-%M-%S %p"
+ default: "%c"
+
+ *g:netrw_use_noswf* netrw normally avoids writing swapfiles
+ for browser buffers. However, under some
+ systems this apparently is causing nasty
+ ml_get errors to appear; if you're getting
+ ml_get errors, try putting
+ let g:netrw_use_noswf= 0
+ in your .vimrc.
+ default: 1
+
+ *g:netrw_winsize* specify initial size of new windows made with
+ "o" (see |netrw-o|), "v" (see |netrw-v|),
+ |:Hexplore| or |:Vexplore|. The g:netrw_winsize
+ is an integer describing the percentage of the
+ current netrw buffer's window to be used for
+ the new window.
+ If g:netrw_winsize is less than zero, then
+ the absolute value of g:netrw_winsize will be
+ used to specify the quantity of lines or
+ columns for the new window.
+ If g:netrw_winsize is zero, then a normal
+ split will be made (ie. |'equalalways'| will
+ take effect, for example).
+ default: 50 (for 50%)
+
+ *g:netrw_wiw* =1 specifies the minimum window width to use
+ when shrinking a netrw/Lexplore window
+ (see |netrw-c-tab|).
+
+ *g:netrw_xstrlen* Controls how netrw computes string lengths,
+ including multi-byte characters' string
+ length. (thanks to N Weibull, T Mechelynck)
+ =0: uses Vim's built-in strlen()
+ =1: number of codepoints (Latin a + combining
+ circumflex is two codepoints) (DEFAULT)
+ =2: number of spacing codepoints (Latin a +
+ combining circumflex is one spacing
+ codepoint; a hard tab is one; wide and
+ narrow CJK are one each; etc.)
+ =3: virtual length (counting tabs as anything
+ between 1 and |'tabstop'|, wide CJK as 2
+ rather than 1, Arabic alif as zero when
+ immediately preceded by lam, one
+ otherwise, etc)
+
+ *g:NetrwTopLvlMenu* This variable specifies the top level
+ menu name; by default, it's "Netrw.". If
+ you wish to change this, do so in your
+ .vimrc.
+
+NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible* {{{2
+
+Netrw has been designed to handle user options by saving them, setting the
+options to something that's compatible with netrw's needs, and then restoring
+them. However, the autochdir option: >
+ :set acd
+is problematic. Autochdir sets the current directory to that containing the
+file you edit; this apparently also applies to directories. In other words,
+autochdir sets the current directory to that containing the "file" (even if
+that "file" is itself a directory).
+
+NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
+
+With the NetrwSettings.vim plugin, >
+ :NetrwSettings
+will bring up a window with the many variables that netrw uses for its
+settings. You may change any of their values; when you save the file, the
+settings therein will be used. One may also press "?" on any of the lines for
+help on what each of the variables do.
+
+(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)
+
+
+==============================================================================
+OBTAINING A FILE *netrw-obtain* *netrw-O* {{{2
+
+If there are no marked files:
+
+ When browsing a remote directory, one may obtain a file under the cursor
+ (ie. get a copy on your local machine, but not edit it) by pressing the O
+ key.
+
+If there are marked files:
+
+ The marked files will be obtained (ie. a copy will be transferred to your
+ local machine, but not set up for editing).
+
+Only ftp and scp are supported for this operation (but since these two are
+available for browsing, that shouldn't be a problem). The status bar will
+then show, on its right hand side, a message like "Obtaining filename". The
+statusline will be restored after the transfer is complete.
+
+Netrw can also "obtain" a file using the local browser. Netrw's display
+of a directory is not necessarily the same as Vim's "current directory",
+unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select
+a file using the local browser (by putting the cursor on it) and pressing
+"O" will then "obtain" the file; ie. copy it to Vim's current directory.
+
+Related topics:
+ * To see what the current directory is, use |:pwd|
+ * To make the currently browsed directory the current directory, see
+ |netrw-cd|
+ * To automatically make the currently browsed directory the current
+ directory, see |g:netrw_keepdir|.
+
+ *netrw-newfile* *netrw-createfile*
+OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%* {{{2
+
+To open a new file in netrw's current directory, press "%". This map
+will query the user for a new filename; an empty file by that name will
+be placed in the netrw's current directory (ie. b:netrw_curdir).
+
+If Lexplore (|netrw-:Lexplore|) is in use, the new file will be generated
+in the |g:netrw_chgwin| window.
+
+Related topics: |netrw-d|
+
+
+PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
+
+One may use a preview window by using the "p" key when the cursor is atop the
+desired filename to be previewed. The display will then split to show both
+the browser (where the cursor will remain) and the file (see |:pedit|). By
+default, the split will be taken horizontally; one may use vertical splitting
+if one has set |g:netrw_preview| first.
+
+An interesting set of netrw settings is: >
+
+ let g:netrw_preview = 1
+ let g:netrw_liststyle = 3
+ let g:netrw_winsize = 30
+
+These will:
+
+ 1. Make vertical splitting the default for previewing files
+ 2. Make the default listing style "tree"
+ 3. When a vertical preview window is opened, the directory listing
+ will use only 30% of the columns available; the rest of the window
+ is used for the preview window.
+
+ Related: if you like this idea, you may also find :Lexplore
+ (|netrw-:Lexplore|) or |g:netrw_chgwin| of interest
+
+Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|
+
+
+PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
+
+To edit a file or directory under the cursor in the previously used (last
+accessed) window (see :he |CTRL-W_p|), press a "P". If there's only one
+window, then the one window will be horizontally split (by default).
+
+If there's more than one window, the previous window will be re-used on
+the selected file/directory. If the previous window's associated buffer
+has been modified, and there's only one window with that buffer, then
+the user will be asked if s/he wishes to save the buffer first (yes,
+no, or cancel).
+
+Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
+Associated setting variables:
+ |g:netrw_alto| control above/below splitting
+ |g:netrw_altv| control right/left splitting
+ |g:netrw_preview| control horizontal vs vertical splitting
+ |g:netrw_winsize| control initial sizing
+
+Also see: |g:netrw_chgwin| |netrw-p|
+
+
+REFRESHING THE LISTING *netrw-refresh* *netrw-ctrl-l* *netrw-ctrl_l* {{{2
+
+To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
+hit the <cr> when atop the ./ directory entry in the listing. One may also
+refresh a local directory by using ":e .".
+
+
+REVERSING SORTING ORDER *netrw-r* *netrw-reverse* {{{2
+
+One may toggle between normal and reverse sorting order by pressing the
+"r" key.
+
+Related topics: |netrw-s|
+Associated setting variable: |g:netrw_sort_direction|
+
+
+RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R* {{{2
+
+If there are no marked files: (see |netrw-mf|)
+
+ Renaming files and directories involves moving the cursor to the
+ file/directory to be moved (renamed) and pressing "R". You will then be
+ queried for what you want the file/directory to be renamed to. You may
+ select a range of lines with the "V" command (visual selection), and then
+ press "R"; you will be queried for each file as to what you want it
+ renamed to.
+
+If there are marked files: (see |netrw-mf|)
+
+ Marked files will be renamed (moved). You will be queried as above in
+ order to specify where you want the file/directory to be moved.
+
+ If you answer a renaming query with a "s/frompattern/topattern/", then
+ subsequent files on the marked file list will be renamed by taking each
+ name, applying that substitute, and renaming each file to the result.
+ As an example : >
+
+ mr [query: reply with *.c]
+ R [query: reply with s/^\(.*\)\.c$/\1.cpp/]
+<
+ This example will mark all *.c files and then rename them to *.cpp
+ files. Netrw will protect you from overwriting local files without
+ confirmation, but not remote ones.
+
+ The ctrl-X character has special meaning for renaming files: >
+
+ <c-x> : a single ctrl-x tells netrw to ignore the portion of the response
+ lying between the last '/' and the ctrl-x.
+
+ <c-x><c-x> : a pair of contiguous ctrl-x's tells netrw to ignore any
+ portion of the string preceding the double ctrl-x's.
+<
+ WARNING:~
+
+ Note that moving files is a dangerous operation; copies are safer. That's
+ because a "move" for remote files is actually a copy + delete -- and if
+ the copy fails and the delete succeeds you may lose the file.
+ Use at your own risk.
+
+The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
+default its value is: >
+
+ ssh HOSTNAME mv
+<
+One may rename a block of files and directories by selecting them with
+V (|linewise-visual|) when using thin style.
+
+See |cmdline-editing| for more on how to edit the command line; in particular,
+you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
+command line under the cursor) useful in conjunction with the R command.
+
+
+SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
+
+One may select the sorting style by name, time, or (file) size. The "s" map
+allows one to circulate amongst the three choices; the directory listing will
+automatically be refreshed to reflect the selected style.
+
+Related topics: |netrw-r| |netrw-S|
+Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
+
+
+SETTING EDITING WINDOW *netrw-editwindow* *netrw-C* *netrw-:NetrwC* {{{2
+
+One may select a netrw window for editing with the "C" mapping, using the
+:NetrwC [win#] command, or by setting |g:netrw_chgwin| to the selected window
+number. Subsequent selection of a file to edit (|netrw-cr|) will use that
+window.
+
+ * C : by itself, will select the current window holding a netrw buffer
+ for subsequent editing via |netrw-cr|. The C mapping is only available
+ while in netrw buffers.
+
+ * [count]C : the count will be used as the window number to be used
+ for subsequent editing via |netrw-cr|.
+
+ * :NetrwC will set |g:netrw_chgwin| to the current window
+
+ * :NetrwC win# will set |g:netrw_chgwin| to the specified window
+ number
+
+Using >
+ let g:netrw_chgwin= -1
+will restore the default editing behavior
+(ie. subsequent editing will use the current window).
+
+Related topics: |netrw-cr| |g:netrw_browse_split|
+Associated setting variables: |g:netrw_chgwin|
+
+
+SHRINKING OR EXPANDING A NETRW OR LEXPLORE WINDOW *netrw-c-tab* {{{2
+
+The <c-tab> key will toggle a netrw or |:Lexplore| window's width,
+but only if |g:netrw_usetab| exists and is non-zero (and, of course,
+only if your terminal supports differentiating <c-tab> from a plain
+<tab>).
+
+ * If the current window is a netrw window, toggle its width
+ (between |g:netrw_wiw| and its original width)
+
+ * Else if there is a |:Lexplore| window in the current tab, toggle
+ its width
+
+ * Else bring up a |:Lexplore| window
+
+If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
+for <c-tab>, then the <c-tab> will not be mapped. One may map something other
+than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >
+
+ nmap <unique> (whatever) <Plug>NetrwShrink
+<
+Related topics: |:Lexplore|
+Associated setting variable: |g:netrw_usetab|
+
+
+USER SPECIFIED MAPS *netrw-usermaps* {{{1
+
+One may make customized user maps. Specify a variable, |g:Netrw_UserMaps|,
+to hold a |List| of lists of keymap strings and function names: >
+
+ [["keymap-sequence","ExampleUserMapFunc"],...]
+<
+When netrw is setting up maps for a netrw buffer, if |g:Netrw_UserMaps|
+exists, then the internal function netrw#UserMaps(islocal) is called.
+This function goes through all the entries in the |g:Netrw_UserMaps| list:
+
+ * sets up maps: >
+ nno <buffer> <silent> KEYMAP-SEQUENCE
+ :call s:UserMaps(islocal,"ExampleUserMapFunc")
+< * refreshes if result from that function call is the string
+ "refresh"
+ * if the result string is not "", then that string will be
+ executed (:exe result)
+ * if the result is a List, then the above two actions on results
+ will be taken for every string in the result List
+
+The user function is passed one argument; it resembles >
+
+ fun! ExampleUserMapFunc(islocal)
+<
+where a:islocal is 1 if its a local-directory system call or 0 when
+remote-directory system call.
+
+ *netrw-call* *netrw-expose* *netrw-modify*
+Use netrw#Expose("varname") to access netrw-internal (script-local)
+ variables.
+Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
+Use netrw#Call("funcname"[,args]) to call a netrw-internal function with
+ specified arguments.
+
+Example: Get a copy of netrw's marked file list: >
+
+ let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")
+<
+Example: Modify the value of netrw's marked file list: >
+
+ call netrw#Modify("netrwmarkfilelist",[])
+<
+Example: Clear netrw's marked file list via a mapping on gu >
+ " ExampleUserMap: {{{2
+ fun! ExampleUserMap(islocal)
+ call netrw#Modify("netrwmarkfilelist",[])
+ call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
+ let retval= ["refresh"]
+ return retval
+ endfun
+ let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]
+<
+
+10. Problems and Fixes *netrw-problems* {{{1
+
+ (This section is likely to grow as I get feedback)
+ (also see |netrw-debug|)
+ *netrw-p1*
+ P1. I use windows 95, and my ftp dumps four blank lines at the {{{2
+ end of every read.
+
+ See |netrw-fixup|, and put the following into your
+ <.vimrc> file:
+
+ let g:netrw_win95ftp= 1
+
+ *netrw-p2*
+ P2. I use Windows, and my network browsing with ftp doesn't sort by {{{2
+ time or size! -or- The remote system is a Windows server; why
+ don't I get sorts by time or size?
+
+ Windows' ftp has a minimal support for ls (ie. it doesn't
+ accept sorting options). It doesn't support the -F which
+ gives an explanatory character (ABC/ for "ABC is a directory").
+ Netrw then uses "dir" to get both its thin and long listings.
+ If you think your ftp does support a full-up ls, put the
+ following into your <.vimrc>: >
+
+ let g:netrw_ftp_list_cmd = "ls -lF"
+ let g:netrw_ftp_timelist_cmd= "ls -tlF"
+ let g:netrw_ftp_sizelist_cmd= "ls -slF"
+<
+ Alternatively, if you have cygwin on your Windows box, put
+ into your <.vimrc>: >
+
+ let g:netrw_cygwin= 1
+<
+ This problem also occurs when the remote system is Windows.
+ In this situation, the various g:netrw_ftp_[time|size]list_cmds
+ are as shown above, but the remote system will not correctly
+ modify its listing behavior.
+
+
+ *netrw-p3*
+ P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2
+ used ssh! That wasn't what I asked for...
+
+ Netrw has two methods for browsing remote directories: ssh
+ and ftp. Unless you specify ftp specifically, ssh is used.
+ When it comes time to do download a file (not just a directory
+ listing), netrw will use the given protocol to do so.
+
+ *netrw-p4*
+ P4. I would like long listings to be the default. {{{2
+
+ Put the following statement into your |.vimrc|: >
+
+ let g:netrw_liststyle= 1
+<
+ Check out |netrw-browser-var| for more customizations that
+ you can set.
+
+ *netrw-p5*
+ P5. My times come up oddly in local browsing {{{2
+
+ Does your system's strftime() accept the "%c" to yield dates
+ such as "Sun Apr 27 11:49:23 1997"? If not, do a
+ "man strftime" and find out what option should be used. Then
+ put it into your |.vimrc|: >
+
+ let g:netrw_timefmt= "%X" (where X is the option)
+<
+ *netrw-p6*
+ P6. I want my current directory to track my browsing. {{{2
+ How do I do that?
+
+ Put the following line in your |.vimrc|:
+>
+ let g:netrw_keepdir= 0
+<
+ *netrw-p7*
+ P7. I use Chinese (or other non-ascii) characters in my filenames, {{{2
+ and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
+
+ (taken from an answer provided by Wu Yongwei on the vim
+ mailing list)
+ I now see the problem. Your code page is not 936, right? Vim
+ seems only able to open files with names that are valid in the
+ current code page, as are many other applications that do not
+ use the Unicode version of Windows APIs. This is an OS-related
+ issue. You should not have such problems when the system
+ locale uses UTF-8, such as modern Linux distros.
+
+ (...it is one more reason to recommend that people use utf-8!)
+
+ *netrw-p8*
+ P8. I'm getting "ssh is not executable on your system" -- what do I {{{2
+ do?
+
+ (Dudley Fox) Most people I know use putty for windows ssh. It
+ is a free ssh/telnet application. You can read more about it
+ here:
+
+ http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also:
+
+ (Marlin Unruh) This program also works for me. It's a single
+ executable, so he/she can copy it into the Windows\System32
+ folder and create a shortcut to it.
+
+ (Dudley Fox) You might also wish to consider plink, as it
+ sounds most similar to what you are looking for. plink is an
+ application in the putty suite.
+
+ http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink
+
+ (Vissale Neang) Maybe you can try OpenSSH for windows, which
+ can be obtained from:
+
+ http://sshwindows.sourceforge.net/
+
+ It doesn't need the full Cygwin package.
+
+ (Antoine Mechelynck) For individual Unix-like programs needed
+ for work in a native-Windows environment, I recommend getting
+ them from the GnuWin32 project on sourceforge if it has them:
+
+ http://gnuwin32.sourceforge.net/
+
+ Unlike Cygwin, which sets up a Unix-like virtual machine on
+ top of Windows, GnuWin32 is a rewrite of Unix utilities with
+ Windows system calls, and its programs works quite well in the
+ cmd.exe "Dos box".
+
+ (dave) Download WinSCP and use that to connect to the server.
+ In Preferences > Editors, set gvim as your editor:
+
+ - Click "Add..."
+ - Set External Editor (adjust path as needed, include
+ the quotes and !.! at the end):
+ "c:\Program Files\Vim\vim82\gvim.exe" !.!
+ - Check that the filetype in the box below is
+ {asterisk}.{asterisk} (all files), or whatever types
+ you want (cec: change {asterisk} to * ; I had to
+ write it that way because otherwise the helptags
+ system thinks it's a tag)
+ - Make sure it's at the top of the listbox (click it,
+ then click "Up" if it's not)
+ If using the Norton Commander style, you just have to hit <F4>
+ to edit a file in a local copy of gvim.
+
+ (Vit Gottwald) How to generate public/private key and save
+ public key it on server: >
+ http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
+ (8.3 Getting ready for public key authentication)
+<
+ How to use a private key with 'pscp': >
+
+ http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
+ (5.2.4 Using public key authentication with PSCP)
+<
+ (Ben Schmidt) I find the ssh included with cwRsync is
+ brilliant, and install cwRsync or cwRsyncServer on most
+ Windows systems I come across these days. I guess COPSSH,
+ packed by the same person, is probably even better for use as
+ just ssh on Windows, and probably includes sftp, etc. which I
+ suspect the cwRsync doesn't, though it might
+
+ (cec) To make proper use of these suggestions above, you will
+ need to modify the following user-settable variables in your
+ .vimrc:
+
+ |g:netrw_ssh_cmd| |g:netrw_list_cmd| |g:netrw_mkdir_cmd|
+ |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd|
+
+ The first one (|g:netrw_ssh_cmd|) is the most important; most
+ of the others will use the string in g:netrw_ssh_cmd by
+ default.
+
+ *netrw-p9* *netrw-ml_get*
+ P9. I'm browsing, changing directory, and bang! ml_get errors {{{2
+ appear and I have to kill vim. Any way around this?
+
+ Normally netrw attempts to avoid writing swapfiles for
+ its temporary directory buffers. However, on some systems
+ this attempt appears to be causing ml_get errors to
+ appear. Please try setting |g:netrw_use_noswf| to 0
+ in your <.vimrc>: >
+ let g:netrw_use_noswf= 0
+<
+ *netrw-p10*
+ P10. I'm being pestered with "[something] is a directory" and {{{2
+ "Press ENTER or type command to continue" prompts...
+
+ The "[something] is a directory" prompt is issued by Vim,
+ not by netrw, and there appears to be no way to work around
+ it. Coupled with the default cmdheight of 1, this message
+ causes the "Press ENTER..." prompt. So: read |hit-enter|;
+ I also suggest that you set your |'cmdheight'| to 2 (or more) in
+ your <.vimrc> file.
+
+ *netrw-p11*
+ P11. I want to have two windows; a thin one on the left and my {{{2
+ editing window on the right. How may I accomplish this?
+
+ You probably want netrw running as in a side window. If so, you
+ will likely find that ":[N]Lexplore" does what you want. The
+ optional "[N]" allows you to select the quantity of columns you
+ wish the |:Lexplore|r window to start with (see |g:netrw_winsize|
+ for how this parameter works).
+
+ Previous solution:
+
+ * Put the following line in your <.vimrc>:
+ let g:netrw_altv = 1
+ * Edit the current directory: :e .
+ * Select some file, press v
+ * Resize the windows as you wish (see |CTRL-W_<| and
+ |CTRL-W_>|). If you're using gvim, you can drag
+ the separating bar with your mouse.
+ * When you want a new file, use ctrl-w h to go back to the
+ netrw browser, select a file, then press P (see |CTRL-W_h|
+ and |netrw-P|). If you're using gvim, you can press
+ <leftmouse> in the browser window and then press the
+ <middlemouse> to select the file.
+
+
+ *netrw-p12*
+ P12. My directory isn't sorting correctly, or unwanted letters are {{{2
+ appearing in the listed filenames, or things aren't lining
+ up properly in the wide listing, ...
+
+ This may be due to an encoding problem. I myself usually use
+ utf-8, but really only use ascii (ie. bytes from 32-126).
+ Multibyte encodings use two (or more) bytes per character.
+ You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
+
+ *netrw-p13*
+ P13. I'm a Windows + putty + ssh user, and when I attempt to {{{2
+ browse, the directories are missing trailing "/"s so netrw treats
+ them as file transfers instead of as attempts to browse
+ subdirectories. How may I fix this?
+
+ (mikeyao) If you want to use vim via ssh and putty under Windows,
+ try combining the use of pscp/psftp with plink. pscp/psftp will
+ be used to connect and plink will be used to execute commands on
+ the server, for example: list files and directory using 'ls'.
+
+ These are the settings I use to do this:
+>
+ " list files, it's the key setting, if you haven't set,
+ " you will get a blank buffer
+ let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
+ " if you haven't add putty directory in system path, you should
+ " specify scp/sftp command. For examples:
+ "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
+ "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
+<
+ *netrw-p14*
+ P14. I would like to speed up writes using Nwrite and scp/ssh {{{2
+ style connections. How? (Thomer M. Gil)
+
+ Try using ssh's ControlMaster and ControlPath (see the ssh_config
+ man page) to share multiple ssh connections over a single network
+ connection. That cuts out the cryptographic handshake on each
+ file write, sometimes speeding it up by an order of magnitude.
+ (see http://thomer.com/howtos/netrw_ssh.html)
+ (included by permission)
+
+ Add the following to your ~/.ssh/config: >
+
+ # you change "*" to the hostname you care about
+ Host *
+ ControlMaster auto
+ ControlPath /tmp/%r@%h:%p
+
+< Then create an ssh connection to the host and leave it running: >
+
+ ssh -N host.domain.com
+
+< Now remotely open a file with Vim's Netrw and enjoy the
+ zippiness: >
+
+ vim scp://host.domain.com//home/user/.bashrc
+<
+ *netrw-p15*
+ P15. How may I use a double-click instead of netrw's usual single {{{2
+ click to open a file or directory? (Ben Fritz)
+
+ First, disable netrw's mapping with >
+ let g:netrw_mousemaps= 0
+< and then create a netrw buffer only mapping in
+ $HOME/.vim/after/ftplugin/netrw.vim: >
+ nmap <buffer> <2-leftmouse> <CR>
+< Note that setting g:netrw_mousemaps to zero will turn off
+ all netrw's mouse mappings, not just the <leftmouse> one.
+ (see |g:netrw_mousemaps|)
+
+ *netrw-p16*
+ P16. When editing remote files (ex. :e ftp://hostname/path/file), {{{2
+ under Windows I get an |E303| message complaining that its unable
+ to open a swap file.
+
+ (romainl) It looks like you are starting Vim from a protected
+ directory. Start netrw from your $HOME or other writable
+ directory.
+
+ *netrw-p17*
+ P17. Netrw is closing buffers on its own. {{{2
+ What steps will reproduce the problem?
+ 1. :Explore, navigate directories, open a file
+ 2. :Explore, open another file
+ 3. Buffer opened in step 1 will be closed. o
+ What is the expected output? What do you see instead?
+ I expect both buffers to exist, but only the last one does.
+
+ (Lance) Problem is caused by "set autochdir" in .vimrc.
+ (drchip) I am able to duplicate this problem with |'acd'| set.
+ It appears that the buffers are not exactly closed;
+ a ":ls!" will show them (although ":ls" does not).
+
+ *netrw-P18*
+ P18. How to locally edit a file that's only available via {{{2
+ another server accessible via ssh?
+ See http://stackoverflow.com/questions/12469645/
+ "Using Vim to Remotely Edit A File on ServerB Only
+ Accessible From ServerA"
+
+ *netrw-P19*
+ P19. How do I get numbering on in directory listings? {{{2
+ With |g:netrw_bufsettings|, you can control netrw's buffer
+ settings; try putting >
+ let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
+< in your .vimrc. If you'd like to have relative numbering
+ instead, try >
+ let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
+<
+ *netrw-P20*
+ P20. How may I have gvim start up showing a directory listing? {{{2
+ Try putting the following code snippet into your .vimrc: >
+ augroup VimStartup
+ au!
+ au VimEnter * if expand("%") == "" && argc() == 0 &&
+ \ (v:servername =~ 'GVIM\d*' || v:servername == "")
+ \ | e . | endif
+ augroup END
+< You may use Lexplore instead of "e" if you're so inclined.
+ This snippet assumes that you have client-server enabled
+ (ie. a "huge" vim version).
+
+ *netrw-P21*
+ P21. I've made a directory (or file) with an accented character, {{{2
+ but netrw isn't letting me enter that directory/read that file:
+
+ Its likely that the shell or o/s is using a different encoding
+ than you have vim (netrw) using. A patch to vim supporting
+ "systemencoding" may address this issue in the future; for
+ now, just have netrw use the proper encoding. For example: >
+
+ au FileType netrw set enc=latin1
+<
+ *netrw-P22*
+ P22. I get an error message when I try to copy or move a file: {{{2
+
+ **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
+
+ What's wrong?
+
+ Netrw uses several system level commands to do things (see
+
+ |g:netrw_localcopycmd|, |g:netrw_localmovecmd|,
+ |g:netrw_localrmdir|, |g:netrw_mkdir_cmd|).
+
+ You may need to adjust the default commands for one or more of
+ these commands by setting them properly in your .vimrc. Another
+ source of difficulty is that these commands use vim's local
+ directory, which may not be the same as the browsing directory
+ shown by netrw (see |g:netrw_keepdir|).
+
+
+==============================================================================
+11. Debugging Netrw Itself *netrw-debug* {{{1
+
+Step 1: check that the problem you've encountered hasn't already been resolved
+by obtaining a copy of the latest (often developmental) netrw at:
+
+ http://www.drchip.org/astronaut/vim/index.html#NETRW
+
+The <netrw.vim> script is typically installed on systems as something like:
+>
+ /usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
+ /usr/local/share/vim/vim8x/autoload/netrw.vim
+ (see output of :echo &rtp)
+<
+which is loaded automatically at startup (assuming :set nocp). If you
+installed a new netrw, then it will be located at >
+
+ $HOME/.vim/plugin/netrwPlugin.vim
+ $HOME/.vim/autoload/netrw.vim
+<
+Step 2: assuming that you've installed the latest version of netrw,
+check that your problem is really due to netrw. Create a file
+called netrw.vimrc with the following contents: >
+
+ set nocp
+ so $HOME/.vim/plugin/netrwPlugin.vim
+<
+Then run netrw as follows: >
+
+ vim -u netrw.vimrc --noplugins -i NONE [some path here]
+<
+Perform whatever netrw commands you need to, and check that the problem is
+still present. This procedure sidesteps any issues due to personal .vimrc
+settings, .viminfo file, and other plugins. If the problem does not appear,
+then you need to determine which setting in your .vimrc is causing the
+conflict with netrw or which plugin(s) is/are involved.
+
+Step 3: If the problem still is present, then get a debugging trace from
+netrw:
+
+ 1. Get the <Decho.vim> script, available as:
+
+ http://www.drchip.org/astronaut/vim/index.html#DECHO
+ or
+ http://vim.sourceforge.net/scripts/script.php?script_id=120
+
+ Decho.vim is provided as a "vimball"; see |vimball-intro|. You
+ should edit the Decho.vba.gz file and source it in: >
+
+ vim Decho.vba.gz
+ :so %
+ :q
+<
+ 2. To turn on debug tracing in netrw, then edit the <netrw.vim>
+ file by typing: >
+
+ vim netrw.vim
+ :DechoOn
+ :wq
+<
+ To restore to normal non-debugging behavior, re-edit <netrw.vim>
+ and type >
+
+ vim netrw.vim
+ :DechoOff
+ :wq
+<
+ This command, provided by <Decho.vim>, will comment out all
+ Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).
+
+ 3. Then bring up vim and attempt to evoke the problem by doing a
+ transfer or doing some browsing. A set of messages should appear
+ concerning the steps that <netrw.vim> took in attempting to
+ read/write your file over the network in a separate tab or
+ server vim window.
+
+ Change the netrw.vimrc file to include the Decho plugin: >
+
+ set nocp
+ so $HOME/.vim/plugin/Decho.vim
+ so $HOME/.vim/plugin/netrwPlugin.vim
+<
+ You should continue to run vim with >
+
+ vim -u netrw.vimrc --noplugins -i NONE [some path here]
+<
+ to avoid entanglements with options and other plugins.
+
+ To save the file: under linux, the output will be in a separate
+ remote server window; in it, just save the file with >
+
+ :w! DBG
+
+< Under a vim that doesn't support clientserver, your debugging
+ output will appear in another tab: >
+
+ :tabnext
+ :set bt=
+ :w! DBG
+<
+ Furthermore, it'd be helpful if you would type >
+
+ :Dsep <command>
+
+< where <command> is the command you're about to type next,
+ thereby making it easier to associate which part of the
+ debugging trace is due to which command.
+
+ Please send that information to <netrw.vim>'s maintainer along
+ with the o/s you're using and the vim version that you're using
+ (see |:version|) (remove the embedded NOSPAM first) >
+
+ NcampObell@SdrPchip.AorgM-NOSPAM
+<
+==============================================================================
+12. History *netrw-history* {{{1
+
+ v172: Apr 22, 2023 * removed g:netrw_localrmdiropt
+ removed g:netrw_localrmdir
+ v171: Oct 09, 2020 * included code in s:NetrwOptionsSafe()
+ to allow |'bh'| to be set to delete when
+ rather than hide when g:netrw_fastbrowse
+ was zero.
+ * Installed |g:netrw_clipboard| setting
+ * Installed option bypass for |'guioptions'|
+ a/A settings
+ * Changed popup_beval() to |popup_atcursor()|
+ in netrw#ErrorMsg (lacygoill). Apparently
+ popup_beval doesn't reliably close the
+ popup when the mouse is moved.
+ * VimEnter() now using win_execute to examine
+ buffers for an attempt to open a directory.
+ Avoids issues with popups/terminal from
+ command line. (lacygoill)
+ Jun 28, 2021 * (zeertzjq) provided a patch for use of
+ xmap,xno instead of vmap,vno in
+ netrwPlugin.vim. Avoids entanglement with
+ select mode.
+ Jul 14, 2021 * Fixed problem addressed by tst976; opening
+ a file using tree mode, going up a
+ directory, and opening a file there was
+ opening the file in the wrong directory.
+ Jul 28, 2021 * (Ingo Karkat) provided a patch fixing an
+ E488 error with netrwPlugin.vim
+ (occurred for vim versions < 8.02)
+ v170: Mar 11, 2020 * (reported by Reiner Herrmann) netrw+tree
+ would not hide with the ^\..* pattern
+ correctly.
+ * (Marcin Szamotulski) NetrwOptionRestore
+ did not restore options correctly that
+ had a single quote in the option string.
+ Apr 13, 2020 * implemented error handling via popup
+ windows (see |popup_beval()|)
+ Apr 30, 2020 * (reported by Manatsu Takahashi) while
+ using Lexplore, a modified file could
+ be overwritten. Sol'n: will not overwrite,
+ but will emit an |E37| (although one cannot
+ add an ! to override)
+ Jun 07, 2020 * (reported by Jo Totland) repeatedly invoking
+ :Lexplore and quitting it left unused
+ hidden buffers. Netrw will now set netrw
+ buffers created by :Lexplore to |'bh'|=wipe.
+ v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x
+ (|netrw-x|) would throw an error when
+ attempting to open a local directory.
+ v168: Dec 12, 2019 * scp timeout error message not reported,
+ hopefully now fixed (Shane Xb Qian)
+ v167: Nov 29, 2019 * netrw does a save&restore on @* and @+.
+ That causes problems with the clipboard.
+ Now restores occurs only if @* or @+ have
+ been changed.
+ * netrw will change @* or @+ less often.
+ Never if I happen to have caught all the
+ operations that modify the unnamed
+ register (which also writes @*).
+ * Modified hiding behavior so that "s"
+ will not ignore hiding.
+ v166: Nov 06, 2019 * Removed a space from a nmap for "-"
+ * Numerous debugging statement changes
+ v163: Dec 05, 2017 * (Cristi Balan) reported that a setting ('sel')
+ was left changed
+ * (Holger Mitschke) reported a problem with
+ saving and restoring history. Fixed.
+ * Hopefully I fixed a nasty bug that caused a
+ file rename to wipe out a buffer that it
+ should not have wiped out.
+ * (Holger Mitschke) amended this help file
+ with additional |g:netrw_special_syntax|
+ items
+ * Prioritized wget over curl for
+ g:netrw_http_cmd
+ v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
+ with a patch; these are now fixed.
+ Oct 26, 2016 * I started using mate-terminal and found that
+ x and gx (|netrw-x| and |netrw-gx|) were no
+ longer working. Fixed (using atril when
+ $DESKTOP_SESSION is "mate").
+ Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
+ being restored with keepregstar rather than
+ keepregplus.
+ Nov 09, 2016 * Broke apart the command from the options,
+ mostly for Windows. Introduced new netrw
+ settings: |g:netrw_localcopycmdopt|
+ |g:netrw_localcopydircmdopt|
+ |g:netrw_localmkdiropt|
+ |g:netrw_localmovecmdopt|
+ g:netrw_localrmdiropt
+ Nov 21, 2016 * (mattn) provided a patch for preview; swapped
+ winwidth() with winheight()
+ Nov 22, 2016 * (glacambre) reported that files containing
+ spaces weren't being obtained properly via
+ scp. Fix: apparently using single quotes
+ such as with 'file name' wasn't enough; the
+ spaces inside the quotes also had to be
+ escaped (ie. 'file\ name').
+ * Also fixed obtain (|netrw-O|) to be able to
+ obtain files with spaces in their names
+ Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
+ when atop "Hiding" in the banner also caused
+ the active-banner hiding control to occur
+ Jan 03, 2017 * (Enno Nagel) reported that attempting to
+ apply netrw to a directory that was without
+ read permission caused a syntax error.
+ Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
+ using netrw#Call() better. Now returns
+ value of internal routines return, for example.
+ Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
+ use |:edit| instead of |:read|. I also
+ changed the routine name to netrw#FileUrlEdit.
+ Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
+ could generate a new listing buffer and
+ window instead of toggling the netrw display.
+ Unfortunately, the directions for eliciting
+ the problem weren't complete, so I may or
+ may not have fixed that issue.
+ Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
+ (see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
+ Mar 21, 2017 * previously, netrw would specify (safe) settings
+ even when the setting was already safe for
+ netrw. Netrw now attempts to leave such
+ already-netrw-safe settings alone.
+ (affects s:NetrwOptionRestore() and
+ s:NetrwSafeOptions(); also introduced
+ s:NetrwRestoreSetting())
+ Jun 26, 2017 * (Christian Brabandt) provided a patch to
+ allow curl to follow redirects (ie. -L
+ option)
+ Jun 26, 2017 * (Callum Howard) reported a problem with
+ :Lexpore not removing the Lexplore window
+ after a change-directory
+ Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
+ previously edited file (e.g. with CTRL-^)
+ after editing a file:// URL. Patch to
+ have a "keepalt" included.
+ Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
+ did not work on directories in the current
+ tree
+ v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
+ a function that returned a 0 while silently
+ invoking a shell command. The shell command
+ activated a ShellCmdPost event which in turn
+ called s:LocalBrowseRefresh(). That looks
+ over all netrw buffers for changes needing
+ refreshes. However, inside a |:map-<expr>|,
+ tab and window changes are disallowed. Fixed.
+ (affects netrw's s:LocalBrowseRefresh())
+ * |g:netrw_localrmdir| not used any more, but
+ the relevant patch that causes |delete()| to
+ take over was #1107 (not #1109).
+ * |expand()| is now used on |g:netrw_home|;
+ consequently, g:netrw_home may now use
+ environment variables
+ * s:NetrwLeftmouse and s:NetrwCLeftmouse will
+ return without doing anything if invoked
+ when inside a non-netrw window
+ Jun 15, 2016 * gx now calls netrw#GX() which returns
+ the word under the cursor. The new
+ wrinkle: if one is in a netrw buffer,
+ then netrw's s:NetrwGetWord().
+ Jun 22, 2016 * Netrw was executing all its associated
+ Filetype commands silently; I'm going
+ to try doing that "noisily" and see if
+ folks have a problem with that.
+ Aug 12, 2016 * Changed order of tool selection for
+ handling http://... viewing.
+ (Nikolay Aleksandrovich Pavlov)
+ Aug 21, 2016 * Included hiding/showing/all for tree
+ listings
+ * Fixed refresh (^L) for tree listings
+ v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
+ Feb 23, 2016 * s:ComposePath(base,subdir) now uses
+ fnameescape() on the base portion
+ Mar 01, 2016 * (gt_macki) reported where :Explore would
+ make file unlisted. Fixed (tst943)
+ Apr 04, 2016 * (reported by John Little) netrw normally
+ suppresses browser messages, but sometimes
+ those "messages" are what is wanted.
+ See |g:netrw_suppress_gx_mesg|
+ Apr 06, 2016 * (reported by Carlos Pita) deleting a remote
+ file was giving an error message. Fixed.
+ Apr 08, 2016 * (Charles Cooper) had a problem with an
+ undefined b:netrw_curdir. He also provided
+ a fix.
+ Apr 20, 2016 * Changed s:NetrwGetBuffer(); now uses
+ dictionaries. Also fixed the "No Name"
+ buffer problem.
+ v155: Oct 29, 2015 * (Timur Fayzrakhmanov) reported that netrw's
+ mapping of ctrl-l was not allowing refresh of
+ other windows when it was done in a netrw
+ window.
+ Nov 05, 2015 * Improved s:TreeSqueezeDir() to use search()
+ instead of a loop
+ * NetrwBrowse() will return line to
+ w:netrw_bannercnt if cursor ended up in
+ banner
+ Nov 16, 2015 * Added a <Plug>NetrwTreeSqueeze (|netrw-s-cr|)
+ Nov 17, 2015 * Commented out imaps -- perhaps someone can
+ tell me how they're useful and should be
+ retained?
+ Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
+ Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
+ file in addition to simply bringing up the
+ URL in a browser. Fixed.
+ Nov 23, 2015 * Added |g:netrw_sizestyle| support
+ Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
+ maps.
+ Jan 05, 2016 * |netrw-qL| implemented to mark files based
+ upon |location-list|s; similar to |netrw-qF|.
+ Jan 19, 2016 * using - call delete(directoryname,"d") -
+ instead of using g:netrw_localrmdir if
+ v7.4 + patch#1107 is available
+ Jan 28, 2016 * changed to using |winsaveview()| and
+ |winrestview()|
+ Jan 28, 2016 * s:NetrwTreePath() now does a save and
+ restore of view
+ Feb 08, 2016 * Fixed a tree-listing problem with remote
+ directories
+ v154: Feb 26, 2015 * (Yuri Kanivetsky) reported a situation where
+ a file was not treated properly as a file
+ due to g:netrw_keepdir == 1
+ Mar 25, 2015 * (requested by Ben Friz) one may now sort by
+ extension
+ Mar 28, 2015 * (requested by Matt Brooks) netrw has a lot
+ of buffer-local mappings; however, some
+ plugins (such as vim-surround) set up
+ conflicting mappings that cause vim to wait.
+ The "<nowait>" modifier has been included
+ with most of netrw's mappings to avoid that
+ delay.
+ Jun 26, 2015 * |netrw-gn| mapping implemted
+ * :Ntree NotADir resulted in having
+ the tree listing expand in the error messages
+ window. Fixed.
+ Jun 29, 2015 * Attempting to delete a file remotely caused
+ an error with "keepsol" mentioned; fixed.
+ Jul 08, 2015 * Several changes to keep the |:jumps| table
+ correct when working with
+ |g:netrw_fastbrowse| set to 2
+ * wide listing with accented characters fixed
+ (using %-S instead of %-s with a |printf()|
+ Jul 13, 2015 * (Daniel Hahler) CheckIfKde() could be true
+ but kfmclient not installed. Changed order
+ in netrw#BrowseX(): checks if kde and
+ kfmclient, then will use xdg-open on a unix
+ system (if xdg-open is executable)
+ Aug 11, 2015 * (McDonnell) tree listing mode wouldn't
+ select a file in a open subdirectory.
+ * (McDonnell) when multiple subdirectories
+ were concurrently open in tree listing
+ mode, a ctrl-L wouldn't refresh properly.
+ * The netrw:target menu showed duplicate
+ entries
+ Oct 13, 2015 * (mattn) provided an exception to handle
+ windows with shellslash set but no shell
+ Oct 23, 2015 * if g:netrw_usetab and <c-tab> now used
+ to control whether NetrwShrink is used
+ (see |netrw-c-tab|)
+ v153: May 13, 2014 * added another |g:netrw_ffkeep| usage {{{2
+ May 14, 2014 * changed s:PerformListing() so that it
+ always sets ft=netrw for netrw buffers
+ (ie. even when syntax highlighting is
+ off, not available, etc)
+ May 16, 2014 * introduced the |netrw-ctrl-r| functionality
+ May 17, 2014 * introduced the |netrw-:NetrwMB| functionality
+ * mb and mB (|netrw-mb|, |netrw-mB|) will
+ add/remove marked files from bookmark list
+ May 20, 2014 * (Enno Nagel) reported that :Lex <dirname>
+ wasn't working. Fixed.
+ May 26, 2014 * restored test to prevent leftmouse window
+ resizing from causing refresh.
+ (see s:NetrwLeftmouse())
+ * fixed problem where a refresh caused cursor
+ to go just under the banner instead of
+ staying put
+ May 28, 2014 * (László Bimba) provided a patch for opening
+ the |:Lexplore| window 100% high, optionally
+ on the right, and will work with remote
+ files.
+ May 29, 2014 * implemented :NetrwC (see |netrw-:NetrwC|)
+ Jun 01, 2014 * Removed some "silent"s from commands used
+ to implemented scp://... and pscp://...
+ directory listing. Permits request for
+ password to appear.
+ Jun 05, 2014 * (Enno Nagel) reported that user maps "/"
+ caused problems with "b" and "w", which
+ are mapped (for wide listings only) to
+ skip over files rather than just words.
+ Jun 10, 2014 * |g:netrw_gx| introduced to allow users to
+ override default "<cfile>" with the gx
+ (|netrw-gx|) map
+ Jun 11, 2014 * gx (|netrw-gx|), with |'autowrite'| set,
+ will write modified files. s:NetrwBrowseX()
+ will now save, turn off, and restore the
+ |'autowrite'| setting.
+ Jun 13, 2014 * added visual map for gx use
+ Jun 15, 2014 * (Enno Nagel) reported that with having hls
+ set and wide listing style in use, that the
+ b and w maps caused unwanted highlighting.
+ Jul 05, 2014 * |netrw-mv| and |netrw-mX| commands included
+ Jul 09, 2014 * |g:netrw_keepj| included, allowing optional
+ keepj
+ Jul 09, 2014 * fixing bugs due to previous update
+ Jul 21, 2014 * (Bruno Sutic) provided an updated
+ netrw_gitignore.vim
+ Jul 30, 2014 * (Yavuz Yetim) reported that editing two
+ remote files of the same name caused the
+ second instance to have a "temporary"
+ name. Fixed: now they use the same buffer.
+ Sep 18, 2014 * (Yasuhiro Matsumoto) provided a patch which
+ allows scp and windows local paths to work.
+ Oct 07, 2014 * gx (see |netrw-gx|) when atop a directory,
+ will now do |gf| instead
+ Nov 06, 2014 * For cygwin: cygstart will be available for
+ netrw#BrowseX() to use if its executable.
+ Nov 07, 2014 * Began support for file://... urls. Will use
+ |g:netrw_file_cmd| (typically elinks or links)
+ Dec 02, 2014 * began work on having mc (|netrw-mc|) copy
+ directories. Works for linux machines,
+ cygwin+vim, but not for windows+gvim.
+ Dec 02, 2014 * in tree mode, netrw was not opening
+ directories via symbolic links.
+ Dec 02, 2014 * added resolved link information to
+ thin and tree modes
+ Dec 30, 2014 * (issue#231) |:ls| was not showing
+ remote-file buffers reliably. Fixed.
+ v152: Apr 08, 2014 * uses the |'noswapfile'| option (requires {{{2
+ vim 7.4 with patch 213)
+ * (Enno Nagel) turn |'rnu'| off in netrw
+ buffers.
+ * (Quinn Strahl) suggested that netrw
+ allow regular window splitting to occur,
+ thereby allowing |'equalalways'| to take
+ effect.
+ * (qingtian zhao) normally, netrw will
+ save and restore the |'fileformat'|;
+ however, sometimes that isn't wanted
+ Apr 14, 2014 * whenever netrw marks a buffer as ro,
+ it will also mark it as nomod.
+ Apr 16, 2014 * sftp protocol now supported by
+ netrw#Obtain(); this means that one
+ may use "mc" to copy a remote file
+ to a local file using sftp, and that
+ the |netrw-O| command can obtain remote
+ files via sftp.
+ * added [count]C support (see |netrw-C|)
+ Apr 18, 2014 * when |g:netrw_chgwin| is one more than
+ the last window, then vertically split
+ the last window and use it as the
+ chgwin window.
+ May 09, 2014 * SavePosn was "saving filename under cursor"
+ from a non-netrw window when using :Rex.
+ v151: Jan 22, 2014 * extended :Rexplore to return to buffer {{{2
+ prior to Explore or editing a directory
+ * (Ken Takata) netrw gave error when
+ clipboard was disabled. Sol'n: Placed
+ several if has("clipboard") tests in.
+ * Fixed ftp://X@Y@Z// problem; X@Y now
+ part of user id, and only Z is part of
+ hostname.
+ * (A Loumiotis) reported that completion
+ using a directory name containing spaces
+ did not work. Fixed with a retry in
+ netrw#Explore() which removes the
+ backslashes vim inserted.
+ Feb 26, 2014 * :Rexplore now records the current file
+ using w:netrw_rexfile when returning via
+ |:Rexplore|
+ Mar 08, 2014 * (David Kotchan) provided some patches
+ allowing netrw to work properly with
+ windows shares.
+ * Multiple one-liner help messages available
+ by pressing <cr> while atop the "Quick
+ Help" line
+ * worked on ShellCmdPost, FocusGained event
+ handling.
+ * |:Lexplore| path: will be used to update
+ a left-side netrw browsing directory.
+ Mar 12, 2014 * |netrw-s-cr|: use <s-cr> to close
+ tree directory implemented
+ Mar 13, 2014 * (Tony Mechylynck) reported that using
+ the browser with ftp on a directory,
+ and selecting a gzipped txt file, that
+ an E19 occurred (which was issued by
+ gzip.vim). Fixed.
+ Mar 14, 2014 * Implemented :MF and :MT (see |netrw-:MF|
+ and |netrw-:MT|, respectively)
+ Mar 17, 2014 * |:Ntree| [dir] wasn't working properly; fixed
+ Mar 18, 2014 * Changed all uses of set to setl
+ Mar 18, 2014 * Commented the netrw_btkeep line in
+ s:NetrwOptionSave(); the effect is that
+ netrw buffers will remain as |'bt'|=nofile.
+ This should prevent swapfiles being created
+ for netrw buffers.
+ Mar 20, 2014 * Changed all uses of lcd to use s:NetrwLcd()
+ instead. Consistent error handling results
+ and it also handles Window's shares
+ * Fixed |netrw-d| command when applied with ftp
+ * https: support included for netrw#NetRead()
+ v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to {{{2
+ return to the netrw directory listing
+ Jul 13, 2013 * (Jonas Diemer) suggested changing
+ a <cWORD> to <cfile>.
+ Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
+ use of mkdir did not produce directories
+ following the user's umask.
+ Aug 27, 2013 * introduced |g:netrw_altfile| option
+ Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
+ when available, by default
+ Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
+ opening some directories properly from the
+ command line.
+ Nov 09, 2013 * |:Lexplore| introduced
+ * (Ondrej Platek) reported an issue with
+ netrw's trees (P15). Fixed.
+ * (Jorge Solis) reported that "t" in
+ tree mode caused netrw to forget its
+ line position.
+ Dec 05, 2013 * Added <s-leftmouse> file marking
+ (see |netrw-mf|)
+ Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
+ strlen() instead s:Strlen() when handling
+ multibyte chars with strpart()
+ (ie. strpart() is byte oriented, not
+ display-width oriented).
+ Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
+ and a portion of timestamps were wrongly
+ highlighted with the directory color when
+ setting `:let g:netrw_liststyle=1` on Windows.
+ * (Paul Domaskis) noted that sometimes
+ cursorline was activating in non-netrw
+ windows. All but one setting of cursorline
+ was done via setl; there was one that was
+ overlooked. Fixed.
+ Dec 24, 2013 * (esquifit) asked that netrw allow the
+ /cygdrive prefix be a user-alterable
+ parameter.
+ Jan 02, 2014 * Fixed a problem with netrw-based ballon
+ evaluation (ie. netrw#NetrwBaloonHelp()
+ not having been loaded error messages)
+ Jan 03, 2014 * Fixed a problem with tree listings
+ * New command installed: |:Ntree|
+ Jan 06, 2014 * (Ivan Brennan) reported a problem with
+ |netrw-P|. Fixed.
+ Jan 06, 2014 * Fixed a problem with |netrw-P| when the
+ modified file was to be abandoned.
+ Jan 15, 2014 * (Matteo Cavalleri) reported that when the
+ banner is suppressed and tree listing is
+ used, a blank line was left at the top of
+ the display. Fixed.
+ Jan 20, 2014 * (Gideon Go) reported that, in tree listing
+ style, with a previous window open, that
+ the wrong directory was being used to open
+ a file. Fixed. (P21)
+ v149: Apr 18, 2013 * in wide listing format, now have maps for {{{2
+ w and b to move to next/previous file
+ Apr 26, 2013 * one may now copy files in the same
+ directory; netrw will issue requests for
+ what names the files should be copied under
+ Apr 29, 2013 * Trying Benzinger's problem again. Seems
+ that commenting out the BufEnter and
+ installing VimEnter (only) works. Weird
+ problem! (tree listing, vim -O Dir1 Dir2)
+ May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
+ May 02, 2013 * introduced |g:netrw_bannerbackslash| as
+ requested by Paul Domaskis.
+ Jul 03, 2013 * Explore now avoids splitting when a buffer
+ will be hidden.
+ v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct {{{2
+ choice of listing style, hiding style, and
+ sorting style
+
+==============================================================================
+13. Todo *netrw-todo* {{{1
+
+07/29/09 : banner :|g:netrw_banner| can be used to suppress the
+ suppression banner. This feature is new and experimental,
+ so its in the process of being debugged.
+09/04/09 : "gp" : See if it can be made to work for remote systems.
+ : See if it can be made to work with marked files.
+
+==============================================================================
+14. Credits *netrw-credits* {{{1
+
+ Vim editor by Bram Moolenaar (Thanks, Bram!)
+ dav support by C Campbell
+ fetch support by Bram Moolenaar and C Campbell
+ ftp support by C Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
+ http support by Bram Moolenaar <bram@moolenaar.net>
+ rcp
+ rsync support by C Campbell (suggested by Erik Warendorph)
+ scp support by raf <raf@comdyn.com.au>
+ sftp support by C Campbell
+
+ inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell
+
+ Jérôme Augé -- also using new buffer method with ftp+.netrc
+ Bram Moolenaar -- obviously vim itself, :e and v:cmdarg use,
+ fetch,...
+ Yasuhiro Matsumoto -- pointing out undo+0r problem and a solution
+ Erik Warendorph -- for several suggestions (g:netrw_..._cmd
+ variables, rsync etc)
+ Doug Claar -- modifications to test for success with ftp
+ operation
+
+==============================================================================
+Modelines: {{{1
+vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker