xref: /vim-8.2.3635/runtime/doc/pi_netrw.txt (revision cfbc5ee4)
1*pi_netrw.txt  For Vim version 6.2.  Last change: Jun 25, 2004
2
3
4		VIM REFERENCE MANUAL    by Charles E. Campbell, Jr.
5
6*dav*           *http*          *network*       *rcp*           *scp*
7*fetch*         *netrw*         *Nread*         *rsync*         *sftp*
8*ftp*           *netrw.vim*     *Nwrite*        *netrw-file*
9
10==============================================================================
110. Contents						*netrw-contents*
12
131.  Netrw Reference.....................................|netrw-ref|
142.  Network-Oriented File Transfer......................|netrw-xfer|
153.  Activation..........................................|netrw-activate|
164.  Transparent File Transfer...........................|netrw-transparent|
175.  Ex Commands.........................................|netrw-ex|
186.  Variables and Options...............................|netrw-var|
197.  Remote Directory Browser............................|netrw-browse|
20     ?..........Help....................................|netrw-help|
21     <cr>.......Browsing................................|netrw-cr|
22     <c-l>......Refreshing the Listing..................|netrw-c-l|
23     <del>......Removing Files or Directories...........|netrw-delete|
24     D..........Removing Files or Directories...........|netrw-D|
25     R..........Renaming Files or Directories...........|netrw-R|
26     -..........Going Up................................|netrw--|
27     a..........Hiding Files or Directories.............|netrw-a|
28     h..........Edit File/Directory Hiding..............|netrw-h|
29     o..........Browsing with a Horizontal Split........|netrw-o|
30     r..........Reversing Sorting Order.................|netrw-r|
31     s..........Selecting Sorting Style.................|netrw-s|
32     v..........Browsing with a Vertical Split..........|netrw-v|
33     x..........Customizing Browsing....................|netrw-x|
348.  Debugging...........................................|netrw-debug|
359.  History.............................................|netrw-history|
3610. Credits.............................................|netrw-credits|
37
38The functionality mentioned here is done via using |standard-plugin|
39techniques.  This plugin is only available if
40
41	set nocp                    " 'compatible' is not set
42	filetype plugin on          " plugins are enabled
43
44You can avoid loading this plugin by setting the "loaded_netrw" variable
45in your <.vimrc> file: >
46
47	:let loaded_netrw = 1
48
49{Vi does not have any of this}
50
51==============================================================================
521. Netrw Reference						*netrw-ref*
53
54    OPTIONS
55	let g:netrw_ftp =0 use ftp (default)		     (uid password)
56			=1 use alternate ftp method	(user uid password)
57	  If you're having trouble with ftp, try changing the value
58	  of this variable in your <.vimrc> to change methods
59
60	let g:netrw_ignorenetrc= 1
61	  If you have a <.netrc> file but it doesn't work and you
62	  want it ignored, then set this variable as shown.  Its mere
63	  existence is enough to cause <.netrc> to be ignored.
64
65	Controlling External Applications
66
67	 Protocol  Variable	     Default Value
68	 --------  ----------------  -------------
69	    dav:    g:netrw_dav_cmd  = "cadaver"
70	  fetch:  g:netrw_fetch_cmd  = "fetch -o"
71	    ftp:    g:netrw_ftp_cmd  = "ftp"
72           http:   g:netrw_http_cmd  = "fetch -o"    if fetch is available
73	   http:   g:netrw_http_cmd  = "wget -q -O"  If wget  is available
74	    rcp:    g:netrw_rcp_cmd  = "rcp"
75	  rsync:  g:netrw_rsync_cmd  = "rsync -a"
76	    scp:    g:netrw_scp_cmd  = "scp -q"
77	   sftp:   g:netrw_sftp_cmd  = "sftp"
78
79    READING
80	:Nread ?					give help
81	:Nread "machine:file"				uses rcp
82	:Nread "machine file"				uses ftp   with <.netrc>
83	:Nread "machine id password file"		uses ftp
84	:Nread "dav://machine[:port]/file"		uses cadaver
85	:Nread "fetch://[user@]machine/file"		uses fetch
86	:Nread "ftp://[user@]machine[[:#]port]/file"	uses ftp   autodetects <.netrc>
87	:Nread "http://[user@]machine/file"		uses http  uses wget
88	:Nread "rcp://[user@]machine/file"		uses rcp
89	:Nread "rsync://[user@]machine[:port]/file"	uses rsync
90	:Nread "scp://[user@]machine[[:#]port]/file"	uses scp
91	:Nread "sftp://[user@]machine/file"		uses sftp
92
93    WRITING
94	:Nwrite ?    					give help
95	:Nwrite "machine:file"				uses rcp
96	:Nwrite "machine file"				uses ftp   with <.netrc>
97	:Nwrite "machine id password file"		uses ftp
98	:Nwrite "dav://machine[:port]/file"		uses cadaver
99	:Nwrite "ftp://[user@]machine[[:#]port]/file"	uses ftp   autodetects <.netrc>
100	:Nwrite "rcp://[user@]machine/file"		uses rcp
101	:Nwrite "rsync://[user@]machine[:port]/file"	uses rsync
102	:Nwrite "scp://[user@]machine[[:#]port]/file"	uses scp
103	:Nwrite "sftp://[user@]machine/file"		uses sftp
104	http: not supported!
105
106    DIRECTORY LISTING
107	:Nread [protocol]://[user]@hostname/path/
108
109    USER AND PASSWORD CHANGING
110	Attempts to use ftp will prompt you for a user-id and a password.
111	These will be saved in g:netrw_uid and g:netrw_passwd Subsequent uses
112	of ftp will re-use those.  If you need to use a different user id
113	and/or password, you'll want to call NetUserPass() first.
114
115	:NetUserPass [uid [password]]		-- prompts as needed
116	:call NetUserPass()			-- prompts for uid and password
117	:call NetUserPass("uid")		-- prompts for password
118	:call NetUserPass("uid","password")	-- sets global uid and password
119
120    VARIABLES
121	b:netrw_lastfile last file Network-read/written retained on
122			  a per-buffer basis		(supports plain :Nw )
123	s:netrw_line	  during Nw/NetWrite, holds current line   number
124	s:netrw_col	  during Nw/NetWrite, holds current column number
125			  s:netrw_line and s:netrw_col are used to
126			  restore the cursor position on writes
127	g:netrw_ftp	  if it doesn't exist, use default ftp
128			  =0 use default ftp		       (uid password)
129			  =1 use alternate ftp method	  (user uid password)
130	g:netrw_ftpmode   ="binary"				    (default)
131			  ="ascii"			     (or your choice)
132	g:netrw_uid	  (ftp) user-id,      retained on a per-session basis
133	g:netrw_passwd	  (ftp) password,     retained on a per-session basis
134	g:netrw_win95ftp  =0 use unix-style ftp even if win95/win98/winME
135			  =1 use default method to do ftp
136	g:netrw_cygwin	  =1 assume scp under windows is from cygwin
137							 (default if windows)
138			  =0 assume scp under windows accepts
139			    windows-style paths		 (default otherwise)
140	g:netrw_use_nt_rcp=0 don't use the rcp of WinNT, Win2000 and WinXP (default)
141			  =1 use the rcp of WinNT,... in binary mode
142
143
144==============================================================================
1452. Network-Oriented File Transfer				*netrw-xfer*
146
147Network-oriented file transfer under Vim is implemented by a VimL-based script
148(<netrw.vim>) using plugin techniques.  It currently supports both reading
149and writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
150dav/cadaver, rsync, or sftp.
151
152http is currently supported read-only via use of wget or fetch.
153
154<netrw.vim> is a standard plugin which acts as glue between Vim and the
155various file transfer programs.  It uses autocommand events (BufReadCmd,
156FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >
157
158	ex. vim ftp://hostname/path/to/file
159<
160The characters preceding the colon specify the protocol to use;
161in the example, its ftp.  The <netrw.vim> script then formulates
162a command or a series of commands (typically ftp) which it issues
163to an external program (ftp, scp, etc) which does the actual file
164transfer/protocol.  Files are read from/written to a temporary file
165(under Unix/Linux, /tmp/...) which the <netrw.vim> script will
166clean up.
167
168One may modify any protocol's implementing external application
169by settinbg a variable (ex. scp uses the variable g:netrw_scp_cmd,
170which is defaulted to "scp -q").
171
172Ftp, an old protocol, seems to be blessed by numerous implementations.
173Unfortunately, some implementations are noisy (ie., add junk to the end
174of the file).  Thus, concerned users may decide to write a NetReadFixup()
175function that will clean up after reading with their ftp.  Some Unix systems
176(ie., FreeBSD) provide a utility called "fetch" which uses the ftp protocol
177but is not noisy and more convenient, actually, for <netrw.vim> to use.
178Consequently, if "fetch" is executable, it will be used to do reads for
179ftp://... (and http://...) .  See |netrw-var| for more about this.
180
181For rcp, scp, sftp, and http, one may use network-oriented file transfers
182transparently; ie.
183>
184	vim rcp://[user@]machine/path
185	vim scp://[user@]machine/path
186<
187If your ftp supports <.netrc>, then it too can be just as transparently used
188if the needed triad of machine name, user id, and password are present in
189that file.  Your ftp must be able to use the <.netrc> file on its own, however.
190>
191	vim ftp://[user@]machine[[:#]portnumber]/path
192<
193However, ftp will often need to query the user for the userid and password.
194The latter will be done "silently"; ie. asterisks will show up instead of
195the actually-typed-in password.  Netrw will retain the userid and password
196for subsequent read/writes from the most recent transfer so subsequent
197transfers (read/write) to or from that machine will take place without
198additional prompting.
199
200								*netrw-urls*
201  +=================================+============================+============+
202  |  Reading                        | Writing                    |  Uses      |
203  +=================================+============================+============+
204  | DAV:                            |                            |            |
205  |  dav://host/path                |                            | cadaver    |
206  |  :Nread dav://host/path         | :Nwrite dav://host/path    | cadaver    |
207  +---------------------------------+----------------------------+------------+
208  | FETCH:                          |                            |            |
209  |  fetch://[user@]host/path       |                            |            |
210  |  fetch://[user@]host:http/path  |  Not Available             | fetch      |
211  |  :Nread fetch://[user@]host/path|                            |            |
212  +---------------------------------+----------------------------+------------+
213  | FILE:                           |                            |            |
214  |  file:///*                      | file:///*                  |            |
215  |  file://localhost/*             | file://localhost/*         |            |
216  +---------------------------------+----------------------------+------------+
217  | FTP:          (*3)              |              (*3)          |            |
218  |  ftp://[user@]host/path         | ftp://[user@]host/path     | ftp  (*2)  |
219  |  :Nread ftp://host/path         | :Nwrite ftp://host/path    | ftp+.netrc |
220  |  :Nread host path               | :Nwrite host path          | ftp+.netrc |
221  |  :Nread host uid pass path      | :Nwrite host uid pass path | ftp        |
222  +---------------------------------+----------------------------+------------+
223  | HTTP: wget is executable: (*4)  |                            |            |
224  |  http://[user@]host/path        |        Not Available       | wget       |
225  +---------------------------------+----------------------------+------------+
226  | HTTP: fetch is executable (*4)  |                            |            |
227  |  http://[user@]host/path        |        Not Available       | fetch      |
228  +---------------------------------+----------------------------+------------+
229  | RCP:                            |                            |            |
230  |  rcp://[user@]host/path         | rcp://[user@]host/path     | rcp        |
231  +---------------------------------+----------------------------+------------+
232  | RSYNC:                          |                            |            |
233  |  rsync://[user@]host/path       | rsync://[user@]host/path   | rsync      |
234  |  :Nread rsync://host/path       | :Nwrite rsync://host/path  | rsync      |
235  |  :Nread rcp://host/path         | :Nwrite rcp://host/path    | rcp        |
236  +---------------------------------+----------------------------+------------+
237  | SCP:                            |                            |            |
238  |  scp://[user@]host/path         | scp://[user@]host/path     | scp        |
239  |  :Nread scp://host/path         | :Nwrite scp://host/path    | scp  (*1)  |
240  +---------------------------------+----------------------------+------------+
241  | SFTP:                           |                            |            |
242  |  sftp://[user@]host/path        | sftp://[user@]host/path    | sftp       |
243  |  :Nread sftp://host/path        | :Nwrite sftp://host/path   | sftp  (*1) |
244  +=================================+============================+============+
245
246	(*1) For an absolute path use scp://machine//path.
247
248	(*2) if <.netrc> is present, it is assumed that it will
249	work with your ftp client.  Otherwise the script will
250	prompt for user-id and pasword.
251
252        (*3) for ftp, "machine" may be machine#port or machine:port
253	if a different port is needed than the standard ftp port
254
255	(*4) for http:..., if wget is available it will be used.  Otherwise,
256	if fetch is available it will be used.
257
258Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.
259
260
261NETRC							*netrw-netrc*
262
263The typical syntax for lines in a <.netrc> file is given as shown below.
264Ftp under Unix usually support <.netrc>; Windows' ftp usually doesn't.
265>
266	machine {full machine name} login {user-id} password "{password}"
267	default login {user-id} password "{password}"
268
269Your ftp client must handle the use of <.netrc> on its own, but if the
270<.netrc> file exists, an ftp transfer will not ask for the user-id or
271password.
272
273	Note:
274	Since this file contains passwords, make very sure nobody else can
275	read this file!  Most programs will refuse to use a .netrc that is
276	readable for others.  Don't forget that the system administrator can
277	still read the file!
278
279
280PASSWORD						*netrw-passwd*
281
282The script attempts to get passwords for ftp invisibly using |inputsecret()|,
283a built-in Vim function.  See |netrw-uidpass| for how to change the password
284after one has set it.
285
286Unfortunately there doesn't appear to be a way for netrw to feed a password
287to scp.  Thus every transfer via scp will require re-entry of the password.
288
289
290==============================================================================
2913. Activation						*netrw-activate*
292
293Network-oriented file transfers are available by default whenever
294|'nocompatible'| mode is enabled.  The <netrw.vim> file resides in your
295system's vim-plugin directory and is sourced automatically whenever you
296bring up vim.
297
298
299==============================================================================
3004. Transparent File Transfer				*netrw-transparent*
301
302Transparent file transfers occur whenever a regular file read or write
303(invoked via an |:autocmd| for |BufReadCmd| or |BufWriteCmd| events) is made.
304Thus one may use files across networks as if they were local. >
305
306	vim ftp://[user@]machine/path
307	...
308	:wq
309
310
311==============================================================================
3125. Ex Commands						*netrw-ex*
313
314The usual read/write commands are supported.  There are also a couple of
315additional commands available.
316
317:[range]Nw	Write the specified lines to the current
318		file as specified in b:netrw_lastfile.
319
320:[range]Nw {netfile} [{netfile}]...
321		Write the specified lines to the {netfile}.
322
323:Nread
324		Read the specified lines into the current
325		buffer from the file specified in
326		b:netrw_lastfile.
327
328:Nread {netfile} {netfile}...
329		Read the {netfile} after the current line.
330
331									*netrw-uidpass*
332:call NetUserPass()
333		If b:netrw_uid and b:netrw_passwd don't exist,
334		this function query the user for them.
335
336:call NetUserPass("userid")
337		This call will set the b:netrw_uid and, if
338		the password doesn't exist, will query the user for it.
339
340:call NetUserPass("userid","passwd")
341		This call will set both the b:netrw_uid and b:netrw_passwd.
342		The user-id and password are used by ftp transfers.  One may
343		effectively remove the user-id and password by using ""
344		strings.
345
346
347==============================================================================
3486. Variables and Options       			*netrw-options* *netrw-var*
349
350The script <netrw.vim> uses several variables which can affect <netrw.vim>'s
351behavior.  These variables typically may be set in the user's <.vimrc> file:
352>
353                                -------------
354                           	Netrw Options
355                                -------------
356	Option			Meaning
357	--------------		-----------------------------------------------
358<
359        b:netrw_col             Holds current cursor position (during NetWrite)
360        g:netrw_cygwin          =1 assume scp under windows is from cygwin
361                                                              (default/windows)
362                                =0 assume scp under windows accepts windows
363                                   style paths                (default/else)
364        g:netrw_ftp             =0 use default ftp            (uid password)
365        g:netrw_ftpmode         ="binary"                     (default)
366                                ="ascii"                      (your choice)
367	g:netrw_ignorenetrc     =1                            (default)
368	                           if you have a <.netrc> file but you don't
369				   want it used, then set this variable.  Its
370				   mere existence is enough to cause <.netrc>
371				   to be ignored.
372        b:netrw_lastfile        Holds latest method/machine/path.
373        b:netrw_line            Holds current line number     (during NetWrite)
374        g:netrw_passwd          Holds current password for ftp.
375	g:netrw_silent          =0 transfers done normally
376	                        =1 transfers done silently
377        g:netrw_uid             Holds current user-id for ftp.
378                                =1 use alternate ftp          (user uid password)
379                                (see |netrw-options|)
380        g:netrw_use_nt_rcp      =0 don't use WinNT/2K/XP's rcp (default)
381                                =1 use WinNT/2K/XP's rcp, binary mode
382        g:netrw_win95ftp        =0 use unix-style ftp even if win95/98/ME/etc
383                                =1 use default method to do ftp >
384	-----------------------------------------------------------------------
385<
386The script will also make use of the following variables internally, albeit
387temporarily.
388>
389			     -------------------
390			     Temporary Variables
391			     -------------------
392	Variable		Meaning
393	--------		------------------------------------
394<
395	g:netrw_method		Index indicating rcp/ftp+.netrc/ftp
396	g:netrw_machine		Holds machine name parsed from input
397	g:netrw_fname		Holds filename being accessed >
398	------------------------------------------------------------
399<
400								*netrw-protocol*
401
402Netrw supports a number of protocols.  These protocols are invoked using the
403variables listed below, and may be modified by the user.
404>
405			   ------------------------
406                           Protocol Control Options
407			   ------------------------
408    Option            Type        Setting         Meaning
409    ---------         --------    --------------  ---------------------------
410<
411    netrw_ftp         variable    =doesn't exist  userid set by "user userid"
412                                  =0              userid set by "user userid"
413                                  =1              userid set by "userid"
414    NetReadFixup      function    =doesn't exist  no change
415                                  =exists         Allows user to have files
416                                                  read via ftp automatically
417                                                  transformed however they wish
418                                                  by NetReadFixup()
419    g:netrw_dav_cmd    variable   ="cadaver"
420    g:netrw_fetch_cmd  variable   ="fetch -o"
421    g:netrw_ftp_cmd    variable   ="ftp"
422    g:netrw_http_cmd   variable   ="fetch -o" else if fetch is executable
423    g:netrw_http_cmd   variable   ="wget -O"  if      wget  is executable
424    g:netrw_list_cmd   variable   ="ssh HOSTNAME ls -Fa"
425    g:netrw_rcp_cmd    variable   ="rcp"
426    g:netrw_rsync_cmd  variable   ="rsync -a"
427    g:netrw_scp_cmd    variable   ="scp -q"
428    g:netrw_sftp_cmd   variable   ="sftp" >
429    -------------------------------------------------------------------------
430<
431								*netrw-ftp*
432The first two options both help with certain ftp's that give trouble otherwise.
433In order to best understand how to use these options if ftp is giving you
434troubles, a bit of discussion follows on how netrw does ftp reads.
435
436The g:netrw_..._cmd variables specify the external program to use handle
437the associated protocol (rcp, ftp, etc), plus any options.
438
439The g:netrw_list_cmd's HOSTNAME entry will be changed via substitution with
440whatever the current request is for a hostname.
441
442For ftp, netrw typically builds up lines of one of the following formats in a
443temporary file:
444>
445  IF g:netrw_ftp !exists or is not 1     IF g:netrw_ftp exists and is 1
446  ----------------------------------     ------------------------------
447<
448       open machine [port]                    open machine [port]
449       user userid password                   userid password
450       [g:netrw_ftpmode]                      password
451       get filename tempfile                  [g:netrw_ftpmode]
452                                              get filename tempfile >
453  ---------------------------------------------------------------------
454<
455Netrw then executes the lines above by use of a filter:
456>
457	:%! {g:netrw_ftp_cmd} -i [-n]
458<
459
460where
461	g:netrw_ftp_cmd is usually "ftp",
462	-i tells ftp not to be interactive
463	-n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
464
465If <.netrc> exists it will be used to avoid having to query the user for
466userid and password.  The transferred file is put into a temporary file.
467The temporary file is then read into the main editing session window that
468requested it and the temporary file deleted.
469
470If your ftp doesn't accept the "user" command and immediately just demands
471a userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
472
473								*netrw-cadaver*
474To handle the SSL certificate dialog for untrusted servers, one may pull
475down the certificate and place it into /usr/ssl/cert.pem.  This operation
476renders the server treatment as "trusted".
477
478							 	*netrw-fixup*
479If your ftp for whatever reason generates unwanted lines (such as AUTH
480messages) you may write a NetReadFixup(tmpfile) function:
481>
482    function! NetReadFixup(method,line1,line2)
483      " a:line1: first new line in current file
484      " a:line2: last  new line in current file
485      if     a:method == 1 "rcp
486      elseif a:method == 2 "ftp + <.netrc>
487      elseif a:method == 3 "ftp + machine,uid,password,filename
488      elseif a:method == 4 "scp
489      elseif a:method == 5 "http/wget
490      elseif a:method == 6 "dav/cadaver
491      elseif a:method == 7 "rsync
492      elseif a:method == 8 "fetch
493      elseif a:method == 9 "sftp
494      else               " complain
495      endif
496    endfunction
497>
498The NetReadFixup() function will be called if it exists and thus allows
499you to customize your reading process.  As a further example, <netrw.vim>
500contains just such a function to handle Windows 95 ftp.  For whatever
501reason, Windows 95's ftp dumps four blank lines at the end of a transfer,
502and so it is desirable to automate their removal.  Here's some code taken
503from <netrw.vim> itself:
504>
505    if has("win95") && g:netrw_win95ftp
506     fun! NetReadFixup(method, line1, line2)
507       if method == 3   " ftp (no <.netrc>)
508        let fourblanklines= line2 - 3
509        silent fourblanklines.",".line2."g/^\s*/d"
510       endif
511     endfunction
512    endif
513>
514
515==============================================================================
5167. Remote Directory Browser *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
517>
518	Command	Explanation
519        -------	-----------
520	   ?	Causes Netrw to issue help
521	 <cr>	Netrw will enter the directory or read the file
522	 <del>	Netrw will attempt to remove the file/directory
523	 <c-l>	Causes Netrw to refresh the directory listing
524	   D	Netrw will attempt to remove the file(s)/directory(ies)
525	   R	Netrw will attempt to rename the file(s)/directory(ies)
526	   -	Makes Netrw go up one directory
527	   a	Show all of a directory (temporarily ignore g:netrw_list_hide)
528	   h	Edit file hiding list
529	   o	Enter the file/directory under the cursor in a new browser
530	   	window.  A horizontal split is used.
531	   r	Reverse sorting order
532	   s	Select sorting style: by name, time, or file size
533	   v	Enter the file/directory under the cursor in a new browser
534	   	window.  A vertical split is used.
535	   x	Apply a function to a file.
536<
537							*netrw-browse-var*
538>
539	---			-----------
540	Var			Explanation
541	---			-----------
542	g:netrw_list_cmd	supports listing
543	g:netrw_rm_cmd		supports removing files
544	g:netrw_rmf_cmd		supports removing softlinks to directories
545	g:netrw_rmdir_cmd	supports removing directories
546	g:netrw_winsize		specify initial size of new o/v windows
547	g:netrw_list_hide	comma separated list of patterns for
548				hiding files
549	g:netrw_sort_by		sort by "name", "time", or "size"
550	g:netrw_sort_direction	sorting direction: "normal" or "reverse"
551	g:netrw_sort_sequence	when sorting by name, first sort by the
552				comma-separated pattern sequence
553<
554INTRODUCTION TO REMOTE DIRECTORY BROWSING
555
556Netrw supports the browsing of directories on remote hosts, including
557generating listing directories, entering directories, editing files therein,
558deleting files/directories, and moving (renaming) files and directories.  The
559Netrw browser generally implements the file explorer methods but for remote
560directories, although details (such as pertinent global variable names)
561necessarily differ.
562
563To enter the netrw directory browser, simply attempt to read a "file" with a
564trailing slash and it will be interpreted as a request to list a directory:
565
566	vim [protocol]://[user@]hostname/path/
567
568
569REFRESHING THE LISTING					*netrw-c-l*
570
571To refresh the directory listing, press ctrl-l (<c-l>) or hit the <cr>
572when atop the ./ directory entry in the listing.
573
574
575GOING UP						*netrw--*
576
577To go up a directory, press - or his the <cr> when atop the ../ directory
578entry in the listing.
579
580Netrw will modify the command in *g:netrw_list_cmd* to perform the directory
581listing operation.  By default the command is:
582
583	ssh HOSTNAME ls -FLa
584
585where the HOSTNAME becomes the [user@]hostname as requested by the attempt
586to read.  Naturally, the user may override this command with whatever is
587preferred.  The NetList function which implements remote directory
588browsing expects that directories will be flagged by a trailing slash.
589
590
591BROWSING 						*netrw-cr*
592
593Browsing is simple: move the cursor onto a file or directory of interest.
594Hitting the <cr> (the return key) will select the file or directory.
595Directories will themselves be listed, and files will be opened using the
596protocol given in the original read request.
597
598
599REMOVING FILES OR DIRECTORIES	*netrw-delete* *netrw-remove* *netrw-D*
600
601Deleting/removing files and directories involves moving the cursor to the
602file/directory to be deleted and pressing "D".  Directories must be empty first
603before they can be successfully removed.  If the directory is a softlink to a
604directory, then netrw will make two requests to remove the directory before
605succeeding.  Netrw will ask for confirmation before doing the removal(s).
606You may select a range of lines with the "V" command (visual selection),
607and then pressing "D".
608
609							*g:netrw_rm_cmd*
610The g:netrw_rm_cmd, g:netrw_rmf_cmd, and g:netrw_rmdir_cmd variables are used
611to control the attempts to remove files and directories.  The g:netrw_rm_cmd
612is used with files, and its default value is:
613
614	g:netrw_rm_cmd: ssh HOSTNAME rm
615
616							*g:netrw_rmdir_cmd*
617The g:netrw_rmdir_cmd variable is used to support the removal of directories.
618Its default value is:
619
620	g:netrw_rmdir_cmd: ssh HOSTNAME rmdir
621
622							*g:netrw_rmf_cmd*
623If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
624to remove it again using the g:netrw_rmf_cmd variable.  Its default value is:
625
626	g:netrw_rmf_cmd: ssh HOSTNAME rm -f
627
628
629RENAMING FILES OR DIRECTORIES			*netrw-move* *netrw-rename*
630
631Renaming/moving files and directories involves moving the cursor to the
632file/directory to be moved (renamed) and pressing "R".  You will then be
633queried for where you want the file/directory to be moved.  You may select a
634range of lines with the "V" command (visual selection), and then pressing "R".
635
636The g:netrw_rename_cmd variable is used to implement renaming.  By default its
637value is:
638
639	ssh HOSTNAME mv
640
641
642HIDING FILES OR DIRECTORIES		*g:netrw_a* *g:netrw_list_hide*
643
644The "a" map lets the browser ignore the g:netrw_list_hide variable.  Normally
645the g:netrw_list_hide variable holds a comma separated list of patterns which
646will be hidden (removed) from the directory listing.
647
648
649EDIT FILE OR DIRECTORY HIDING					*netrw-h*
650
651The "h" map brings up a requestor allowing the user to change the
652file/directory hiding list.
653
654
655BROWSING WITH A HORIZONTALLY SPLIT WINDOW			*netrw-o*
656
657Normally one enters a file or directory using the <cr>.  However, the "o"
658map allows one to open a new window to hold the new directory listing or
659file.  A horizontal split is used.  (also see |netrw-v|)
660
661
662SELECTING SORTING STYLE						*netrw-s*
663
664One may select the sorting style by name, time, or (file) size.  The
665"s" map allows one to circulate among the three choices; the directory
666listing will automatically be refreshed to reflect the selected style.
667
668
669REVERSING SORTING ORDER						*netrw-r*
670
671One may toggle between normal and reverse sorting order by pressing the
672"r" key.
673
674
675BROWSING WITH A VERTICALLY SPLIT WINDOW				*netrw-v*
676
677Normally one enters a file or directory using the <cr>.  However, the "v"
678map allows one to open a new window to hold the new directory listing or
679file.  A vertical split is used.  (also see |netrw-o|)
680
681
682CUSTOMIZING BROWSING WITH A USER FUNCTION			*netrw-x*
683
684One may "enter" a file with a special handler, thereby firing up a browser or
685other application, for example, on a file by hitting the "x" key.  Presumably
686one could write handlers that would start OpenOffice programs (oowriter), etc,
687based on the file's extension coupled with the user's hitting the "x" key atop
688the file.
689
690The Netrw executor applies a user-defined function to a file, based on its
691extension.  Of course, the handler function must exist for it to be called!
692>
693 Ex. mypgm.html   x ->
694                  NetrwFileHandler_html("scp://user@host/some/path/mypgm.html")
695<
696See the <plugin/NetrwFileHandlers.vim> for an example of how to handle an html
697file with mozilla.
698
699
700IMPROVING DIRECTORY BROWSING				*netrw-list-hack*
701
702Especially with the remote directory browser, constantly entering the password
703is tedious.
704
705For Linux/Unix systems, I suggest looking into
706
707	http://hacks.oreilly.com/pub/h/66
708
709It gives a tip for setting up password-less use of ssh and scp, and discusses
710the associated security issues.
711
712
713==============================================================================
7148. Debugging						*netrw-debug*
715
716The <netrw.vim> script is typically available as:
717
718	/usr/local/share/vim/vim6x/plugin/netrw.vim
719
720which is loaded automatically at startup (assuming :set nocp).
721
722	1. Get the <Decho.vim> script, available as:
723
724		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_scripts
725		as "Decho, a vimL debugging aid"
726	   or
727		http://vim.sourceforge.net/scripts/script.php?script_id=120
728
729	   and put it into your local plugin directory
730
731	2. Edit the <netrw.vim> file as follows:
732
733		:DechoOn
734
735	   (to restore to normal, use  :DechoOff )
736
737	3. Then bring up vim and attempt a transfer.  A set of messages
738	   should appear concerning the steps that <netrw.vim> took in
739	   attempting to read/write your file over the network.  Please
740	   send that information to <netrw.vim>'s maintainer,
741
742		drchipNOSPAM at campbellfamily.biz - NOSPAM
743
744==============================================================================
7459. History						*netrw-history*
746
747	v47: *
748	v46: * now handles remote directory browsing
749	     * g:netrw_silent (if 1) will cause all transfers to be silent'd
750	v45: * made the [user@]hostname:path form a bit more restrictive
751	       to better handle errors in using protocols
752	       (e.g. scp:usr@host:file was being recognized as an rcp request)
753	v44: * changed from "rsync -a" to just "rsync"
754	     * somehow an editing error messed up the test to recognize
755	       use of the fetch method for NetRead.
756	     * more debugging statements included
757	v43: * moved "Explanation" comments to <pi_netrw.txt> help file
758	       as "Network Reference" (|netrw-ref|)
759	     * <netrw.vim> now uses Dfunc() Decho() and Dret() for debugging
760	     * removed superfluous NetRestorePosn() calls
761	v42: * now does BufReadPre and BufReadPost events on file:///*
762	       and file://localhost/*
763	v41: * installed file:///* and file://localhost/* handling
764	v40: * prevents redraw when a protocol error occurs so that the
765	       user may see it
766	v39: * sftp support
767	v38: * Now uses NetRestorePosn() calls with Nread/Nwrite commands
768	     * Temporary files now removed via bwipe! instead of bwipe
769	       (thanks to Dave Roberts)
770	v37: * Claar's modifications which test if ftp is successful, otherwise
771	       give an error message
772	     * After a read, the alternate file was pointing to the temp file.
773	       The temp file buffer is now wiped out.
774	     * removed silent from transfer methods so user can see what's
775	       happening
776
777
778==============================================================================
77910. Credits						*netrw-credits*
780
781	Vim editor	by Bram Moolenaar (Thanks, Bram!)
782	dav		support by C Campbell
783	fetch		support by Bram Moolenaar and C Campbell
784	ftp		support by C Campbell <[email protected]> - NOSPAM
785	http		support by Bram Moolenaar <[email protected]>
786	rcp
787	rsync		support by C Campbell (suggested by Erik Warendorph)
788	scp		support by raf <[email protected]>
789	sftp		support by C Campbell
790
791	inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell
792
793	Jérôme Augé		-- also using new buffer method with ftp+.netrc
794	Bram Moolenaar		-- obviously vim itself, :e and v:cmdarg use, fetch,...
795	Yasuhiro Matsumoto	-- pointing out undo+0r problem and a solution
796	Erik Warendorph		-- for several suggestions (g:netrw_..._cmd
797				   variables, rsync etc)
798	Doug Claar		-- modifications to test for success with ftp operation
799
800==============================================================================
801 vim:tw=78:ts=8:ft=help:norl:
802