blob: 786933a045e5da3ff0b9b05fe734d034b40ed136 [file] [log] [blame]
Bram Moolenaar8d043172014-01-23 14:24:41 +01001*pi_netrw.txt* For Vim version 7.4. Last change: 2014 Jan 21
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
Bram Moolenaarff034192013-04-24 18:51:19 +02003 ------------------------------------------------
4 NETRW REFERENCE MANUAL by Charles E. Campbell
5 ------------------------------------------------
6Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01007 (remove NOSPAM from Campbell's email first)
8
Bram Moolenaar8d043172014-01-23 14:24:41 +01009Copyright: Copyright (C) 1999-2014 Charles E Campbell *netrw-copyright*
Bram Moolenaar5b435d62012-04-05 17:33:26 +020010 The VIM LICENSE applies to the files in this package, including
11 netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
12 syntax/netrw.vim. Like anything else that's free, netrw.vim and its
13 associated files are provided *as is* and comes with no warranty of
14 any kind, either expressed or implied. No guarantees of
15 merchantability. No guarantees of suitability for any purpose. By
16 using this plugin, you agree that in no event will the copyright
17 holder be liable for any damages resulting from the use of this
18 software. Use at your own risk!
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
Bram Moolenaar1afcace2005-11-25 19:54:28 +000020
Bram Moolenaar00a927d2010-05-14 23:24:24 +020021 *dav* *ftp* *netrw-file* *rcp* *scp*
22 *davs* *http* *netrw.vim* *rsync* *sftp*
23 *fetch* *netrw* *network*
Bram Moolenaar071d4272004-06-13 20:20:40 +000024
25==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +0000261. Contents *netrw-contents* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
Bram Moolenaarff034192013-04-24 18:51:19 +0200281. Contents..............................................|netrw-contents|
292. Starting With Netrw...................................|netrw-start|
303. Netrw Reference.......................................|netrw-ref|
31 EXTERNAL APPLICATIONS AND PROTOCOLS.................|netrw-externapp|
32 READING.............................................|netrw-read|
33 WRITING.............................................|netrw-write|
34 SOURCING............................................|netrw-source|
35 DIRECTORY LISTING...................................|netrw-dirlist|
36 CHANGING THE USERID AND PASSWORD....................|netrw-chgup|
37 VARIABLES AND SETTINGS..............................|netrw-variables|
38 PATHS...............................................|netrw-path|
394. Network-Oriented File Transfer........................|netrw-xfer|
40 NETRC...............................................|netrw-netrc|
41 PASSWORD............................................|netrw-passwd|
425. Activation............................................|netrw-activate|
436. Transparent Remote File Editing.......................|netrw-transparent|
447. Ex Commands...........................................|netrw-ex|
458. Variables and Options.................................|netrw-variables|
469. Browsing..............................................|netrw-browse|
47 Introduction To Browsing............................|netrw-intro-browse|
48 Quick Reference: Maps...............................|netrw-browse-maps|
49 Quick Reference: Commands...........................|netrw-browse-cmds|
50 Bookmarking A Directory.............................|netrw-mb|
51 Browsing............................................|netrw-cr|
52 Browsing With A Horizontally Split Window...........|netrw-o|
53 Browsing With A New Tab.............................|netrw-t|
54 Browsing With A Vertically Split Window.............|netrw-v|
55 Change Listing Style.(thin wide long tree)..........|netrw-i|
56 Changing To A Bookmarked Directory..................|netrw-gb|
57 Changing To A Predecessor Directory.................|netrw-u|
58 Changing To A Successor Directory...................|netrw-U|
59 Customizing Browsing With A User Function...........|netrw-x|
60 Deleting Bookmarks..................................|netrw-mB|
61 Deleting Files Or Directories.......................|netrw-D|
62 Directory Exploring Commands........................|netrw-explore|
63 Exploring With Stars and Patterns...................|netrw-star|
64 Displaying Information About File...................|netrw-qf|
65 Edit File Or Directory Hiding List..................|netrw-ctrl-h|
66 Editing The Sorting Sequence........................|netrw-S|
67 Forcing treatment as a file or directory............|netrw-gd| |netrw-gf|
68 Going Up............................................|netrw--|
69 Hiding Files Or Directories.........................|netrw-a|
70 Improving Browsing..................................|netrw-ssh-hack|
71 Listing Bookmarks And History.......................|netrw-qb|
72 Making A New Directory..............................|netrw-d|
73 Making The Browsing Directory The Current Directory.|netrw-c|
74 Marking Files.......................................|netrw-mf|
75 Unmarking Files.....................................|netrw-mF|
76 Marking Files By QuickFix List......................|netrw-qF|
77 Marking Files By Regular Expression.................|netrw-mr|
78 Marked Files: Arbitrary Command.....................|netrw-mx|
79 Marked Files: Compression And Decompression.........|netrw-mz|
80 Marked Files: Copying...............................|netrw-mc|
81 Marked Files: Diff..................................|netrw-md|
82 Marked Files: Editing...............................|netrw-me|
83 Marked Files: Grep..................................|netrw-mg|
84 Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
85 Marked Files: Moving................................|netrw-mm|
86 Marked Files: Printing..............................|netrw-mp|
87 Marked Files: Sourcing..............................|netrw-ms|
88 Marked Files: Setting the Target Directory..........|netrw-mt|
89 Marked Files: Tagging...............................|netrw-mT|
90 Marked Files: Target Directory Using Bookmarks......|netrw-Tb|
91 Marked Files: Target Directory Using History........|netrw-Th|
92 Marked Files: Unmarking.............................|netrw-mu|
93 Netrw Browser Variables.............................|netrw-browser-var|
94 Netrw Browsing And Option Incompatibilities.........|netrw-incompatible|
95 Netrw Settings Window...............................|netrw-settings-window|
96 Obtaining A File....................................|netrw-O|
97 Preview Window......................................|netrw-p|
98 Previous Window.....................................|netrw-P|
99 Refreshing The Listing..............................|netrw-ctrl-l|
100 Reversing Sorting Order.............................|netrw-r|
101 Renaming Files Or Directories.......................|netrw-R|
102 Selecting Sorting Style.............................|netrw-s|
103 Setting Editing Window..............................|netrw-C|
10410. Problems and Fixes....................................|netrw-problems|
10511. Debugging Netrw Itself................................|netrw-debug|
10612. History...............................................|netrw-history|
10713. Todo..................................................|netrw-todo|
10814. Credits...............................................|netrw-credits|
Bram Moolenaar071d4272004-06-13 20:20:40 +0000109
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110{Vi does not have any of this}
111
112==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00001132. Starting With Netrw *netrw-start* {{{1
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000114
Bram Moolenaar446cb832008-06-24 21:56:24 +0000115Netrw makes reading files, writing files, browsing over a network, and
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100116local browsing easy! First, make sure that you have plugins enabled, so
Bram Moolenaar446cb832008-06-24 21:56:24 +0000117you'll need to have at least the following in your <.vimrc>:
118(or see |netrw-activate|) >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000119
Bram Moolenaar9964e462007-05-05 17:54:07 +0000120 set nocp " 'compatible' is not set
121 filetype plugin on " plugins are enabled
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000122<
123(see |'cp'| and |:filetype-plugin-on|)
124
125Netrw supports "transparent" editing of files on other machines using urls
126(see |netrw-transparent|). As an example of this, let's assume you have an
Bram Moolenaar446cb832008-06-24 21:56:24 +0000127account on some other machine; if you can use scp, try: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000128
129 vim scp://hostname/path/to/file
130<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000131Want to make ssh/scp easier to use? Check out |netrw-ssh-hack|!
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000132
Bram Moolenaar446cb832008-06-24 21:56:24 +0000133So, what if you have ftp, not ssh/scp? That's easy, too; try >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000134
135 vim ftp://hostname/path/to/file
136<
137Want to make ftp simpler to use? See if your ftp supports a file called
138<.netrc> -- typically it goes in your home directory, has read/write
139permissions for only the user to read (ie. not group, world, other, etc),
140and has lines resembling >
141
142 machine HOSTNAME login USERID password "PASSWORD"
143 machine HOSTNAME login USERID password "PASSWORD"
144 ...
Bram Moolenaar9964e462007-05-05 17:54:07 +0000145 default login USERID password "PASSWORD"
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000146<
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200147Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
148
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200149 let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
Bram Moolenaar97d62492012-11-15 21:28:22 +0100150<
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200151Netrw will substitute the host's machine name for "MACHINE" from the url it is
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200152attempting to open, and so one may specify >
153 userid
154 password
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200155for each site in a separate file: c:\Users\MyUserName\MachineName.
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200156
Bram Moolenaar446cb832008-06-24 21:56:24 +0000157Now about browsing -- when you just want to look around before editing a
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000158file. For browsing on your current host, just "edit" a directory: >
159
160 vim .
161 vim /home/userid/path
162<
163For browsing on a remote host, "edit" a directory (but make sure that
164the directory name is followed by a "/"): >
165
166 vim scp://hostname/
167 vim ftp://hostname/path/to/dir/
168<
169See |netrw-browse| for more!
170
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100171There are more protocols supported by netrw than just scp and ftp, too: see the
172next section, |netrw-externapp|, on how to use these external applications with
173netrw and vim.
174
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200175PREVENTING LOADING *netrw-noload*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000176
177If you want to use plugins, but for some reason don't wish to use netrw, then
178you need to avoid loading both the plugin and the autoload portions of netrw.
179You may do so by placing the following two lines in your <.vimrc>: >
180
181 :let g:loaded_netrw = 1
182 :let g:loaded_netrwPlugin = 1
183<
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000184
185==============================================================================
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001863. Netrw Reference *netrw-ref* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000187
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100188 Netrw supports several protocols in addition to scp and ftp as mentioned
Bram Moolenaar446cb832008-06-24 21:56:24 +0000189 in |netrw-start|. These include dav, fetch, http,... well, just look
190 at the list in |netrw-externapp|. Each protocol is associated with a
191 variable which holds the default command supporting that protocol.
192
193EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
Bram Moolenaar071d4272004-06-13 20:20:40 +0000194
Bram Moolenaar8d043172014-01-23 14:24:41 +0100195 Protocol Variable Default Value
196 -------- ---------------- -------------
197 dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
198 dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
199 fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
200 ftp: *g:netrw_ftp_cmd* = "ftp"
201 http: *g:netrw_http_cmd* = "elinks" if elinks is available
202 http: g:netrw_http_cmd = "links" elseif links is available
203 http: g:netrw_http_cmd = "curl" elseif curl is available
204 http: g:netrw_http_cmd = "wget" elseif wget is available
205 http: g:netrw_http_cmd = "fetch" elseif fetch is available
206 http: *g:netrw_http_put_cmd* = "curl -T"
207 rcp: *g:netrw_rcp_cmd* = "rcp"
208 rsync: *g:netrw_rsync_cmd* = "rsync -a"
209 scp: *g:netrw_scp_cmd* = "scp -q"
210 sftp: *g:netrw_sftp_cmd* = "sftp"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100211
212 *g:netrw_http_xcmd* : the option string for http://... protocols are
213 specified via this variable and may be independently overridden. By
214 default, the option arguments for the http-handling commands are: >
215
216 elinks : "-source >"
Bram Moolenaar97d62492012-11-15 21:28:22 +0100217 links : "-dump >"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100218 curl : "-o"
219 wget : "-q -O"
220 fetch : "-o"
221<
222 For example, if your system has elinks, and you'd rather see the
223 page using an attempt at rendering the text, you may wish to have >
224 let g:netrw_http_xcmd= "-dump >"
225< in your .vimrc.
226
Bram Moolenaar8d043172014-01-23 14:24:41 +0100227 g:netrw_http_put_cmd: this option specifies both the executable and
228 any needed options. This command does a PUT operation to the url.
229
Bram Moolenaar071d4272004-06-13 20:20:40 +0000230
Bram Moolenaar446cb832008-06-24 21:56:24 +0000231READING *netrw-read* *netrw-nread* {{{2
232
233 Generally, one may just use the url notation with a normal editing
234 command, such as >
235
236 :e ftp://[user@]machine/path
237<
238 Netrw also provides the Nread command:
239
Bram Moolenaar071d4272004-06-13 20:20:40 +0000240 :Nread ? give help
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000241 :Nread "machine:path" uses rcp
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000242 :Nread "machine path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000243 :Nread "machine id password path" uses ftp
244 :Nread "dav://machine[:port]/path" uses cadaver
245 :Nread "fetch://[user@]machine/path" uses fetch
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000246 :Nread "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000247 :Nread "http://[user@]machine/path" uses http uses wget
248 :Nread "rcp://[user@]machine/path" uses rcp
249 :Nread "rsync://[user@]machine[:port]/path" uses rsync
250 :Nread "scp://[user@]machine[[:#]port]/path" uses scp
251 :Nread "sftp://[user@]machine/path" uses sftp
Bram Moolenaar071d4272004-06-13 20:20:40 +0000252
Bram Moolenaar446cb832008-06-24 21:56:24 +0000253WRITING *netrw-write* *netrw-nwrite* {{{2
254
255 One may just use the url notation with a normal file writing
256 command, such as >
257
258 :w ftp://[user@]machine/path
259<
260 Netrw also provides the Nwrite command:
261
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000262 :Nwrite ? give help
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000263 :Nwrite "machine:path" uses rcp
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000264 :Nwrite "machine path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000265 :Nwrite "machine id password path" uses ftp
266 :Nwrite "dav://machine[:port]/path" uses cadaver
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000267 :Nwrite "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000268 :Nwrite "rcp://[user@]machine/path" uses rcp
269 :Nwrite "rsync://[user@]machine[:port]/path" uses rsync
270 :Nwrite "scp://[user@]machine[[:#]port]/path" uses scp
271 :Nwrite "sftp://[user@]machine/path" uses sftp
Bram Moolenaar071d4272004-06-13 20:20:40 +0000272 http: not supported!
273
Bram Moolenaar446cb832008-06-24 21:56:24 +0000274SOURCING *netrw-source* {{{2
275
276 One may just use the url notation with the normal file sourcing
277 command, such as >
278
279 :so ftp://[user@]machine/path
280<
281 Netrw also provides the Nsource command:
282
Bram Moolenaar9964e462007-05-05 17:54:07 +0000283 :Nsource ? give help
284 :Nsource "dav://machine[:port]/path" uses cadaver
285 :Nsource "fetch://[user@]machine/path" uses fetch
286 :Nsource "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
287 :Nsource "http://[user@]machine/path" uses http uses wget
288 :Nsource "rcp://[user@]machine/path" uses rcp
289 :Nsource "rsync://[user@]machine[:port]/path" uses rsync
290 :Nsource "scp://[user@]machine[[:#]port]/path" uses scp
291 :Nsource "sftp://[user@]machine/path" uses sftp
292
Bram Moolenaarff034192013-04-24 18:51:19 +0200293DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +0000294
295 One may browse a directory to get a listing by simply attempting to
296 edit the directory: >
297
298 :e scp://[user]@hostname/path/
299 :e ftp://[user]@hostname/path/
300<
Bram Moolenaar251e1912011-06-19 05:09:16 +0200301 For remote directory listings (ie. those using scp or ftp), that
302 trailing "/" is necessary (the slash tells netrw to treat the argument
303 as a directory to browse instead of as a file to download).
Bram Moolenaar446cb832008-06-24 21:56:24 +0000304
Bram Moolenaar251e1912011-06-19 05:09:16 +0200305 The Nread command may also be used to accomplish this (again, that
306 trailing slash is necessary): >
Bram Moolenaar446cb832008-06-24 21:56:24 +0000307
Bram Moolenaar251e1912011-06-19 05:09:16 +0200308 :Nread [protocol]://[user]@hostname/path/
309<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000310 *netrw-login* *netrw-password*
311CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000312
Bram Moolenaar071d4272004-06-13 20:20:40 +0000313 Attempts to use ftp will prompt you for a user-id and a password.
Bram Moolenaar15146672011-10-20 22:22:38 +0200314 These will be saved in global variables |g:netrw_uid| and
315 |s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
316 thereby simplifying use of ftp. However, if you need to use a
317 different user id and/or password, you'll want to call |NetUserPass()|
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000318 first. To work around the need to enter passwords, check if your ftp
319 supports a <.netrc> file in your home directory. Also see
320 |netrw-passwd| (and if you're using ssh/scp hoping to figure out how
Bram Moolenaar15146672011-10-20 22:22:38 +0200321 to not need to use passwords for scp, look at |netrw-ssh-hack|).
Bram Moolenaar071d4272004-06-13 20:20:40 +0000322
323 :NetUserPass [uid [password]] -- prompts as needed
324 :call NetUserPass() -- prompts for uid and password
325 :call NetUserPass("uid") -- prompts for password
326 :call NetUserPass("uid","password") -- sets global uid and password
327
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200328(Related topics: |ftp| |netrw-userpass| |netrw-start|)
329
Bram Moolenaar446cb832008-06-24 21:56:24 +0000330NETRW VARIABLES AND SETTINGS *netrw-variables* {{{2
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200331 (Also see:
332 |netrw-browser-var| : netrw browser option variables
333 |netrw-protocol| : file transfer protocol option variables
334 |netrw-settings| : additional file transfer options
335 |netrw-browser-options| : these options affect browsing directories
336 )
Bram Moolenaar9964e462007-05-05 17:54:07 +0000337
Bram Moolenaar446cb832008-06-24 21:56:24 +0000338Netrw provides a lot of variables which allow you to customize netrw to your
339preferences. One way to look at them is via the command :NetrwSettings (see
340|netrw-settings|) which will display your current netrw settings. Most such
341settings are described below, in |netrw-browser-options|, and in
342|netrw-externapp|:
Bram Moolenaar9964e462007-05-05 17:54:07 +0000343
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100344 *b:netrw_lastfile* last file Network-read/written retained on a
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200345 per-buffer basis (supports plain :Nw )
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100346
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200347 *g:netrw_bufsettings* the settings that netrw buffers have
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200348 (default) noma nomod nonu nowrap ro nobl
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200349
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100350 *g:netrw_chgwin* specifies a window number where file edits will take
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200351 place. (also see |netrw-C|)
352 (default) not defined
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100353
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200354 *g:Netrw_funcref* specifies a function (or functions) to be called when
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200355 netrw edits a file. The file is first edited, and
356 then the function reference (|Funcref|) is called.
357 This variable may also hold a |List| of Funcrefs.
358 (default) not defined. (the capital in g:Netrw...
359 is required by its holding a function reference)
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200360>
361 Example: place in .vimrc; affects all file opening
362 fun! MyFuncRef()
363 endfun
364 let g:Netrw_funcref= function("MyFuncRef")
365<
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200366 *g:netrw_ftp* if it doesn't exist, use default ftp
367 =0 use default ftp (uid password)
368 =1 use alternate ftp method (user uid password)
369 If you're having trouble with ftp, try changing the
370 value of this variable to see if the alternate ftp
371 method works for your setup.
372
373 *g:netrw_ftp_options* Chosen by default, these options are supposed to turn
374 interactive prompting off and to restrain ftp from
375 attempting auto-login upon initial connection.
376 However, it appears that not all ftp implementations
377 support this (ex. ncftp).
378 ="-i -n"
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000379
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100380 *g:netrw_ftpextracmd* default: doesn't exist
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200381 If this variable exists, then any string it contains
382 will be placed into the commands set to your ftp
383 client. As an example:
384 ="passive"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000385
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000386 *g:netrw_ftpmode* ="binary" (default)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200387 ="ascii"
Bram Moolenaarf6cf9872005-08-08 22:00:59 +0000388
Bram Moolenaar9964e462007-05-05 17:54:07 +0000389 *g:netrw_ignorenetrc* =0 (default for linux, cygwin)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200390 =1 If you have a <.netrc> file but it doesn't work and
391 you want it ignored, then set this variable as
392 shown. (default for Windows + cmd.exe)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000393
394 *g:netrw_menu* =0 disable netrw's menu
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200395 =1 (default) netrw's menu enabled
Bram Moolenaar9964e462007-05-05 17:54:07 +0000396
397 *g:netrw_nogx* if this variable exists, then the "gx" map will not
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200398 be available (see |netrw-gx|)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000399
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100400 *g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200401 *s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
Bram Moolenaar446cb832008-06-24 21:56:24 +0000402
403 *g:netrw_preview* =0 (default) preview window shown in a horizontally
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200404 split window
405 =1 preview window shown in a vertically split window.
406 Also affects the "previous window" (see |netrw-P|) in
407 the same way.
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000408
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200409 *g:netrw_scpport* = "-P" : option to use to set port for scp
410 *g:netrw_sshport* = "-p" : option to use to set port for ssh
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000411
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200412 *g:netrw_sepchr* =\0xff
413 =\0x01 for enc == euc-jp (and perhaps it should be for
414 others, too, please let me know)
415 Separates priority codes from filenames internally.
416 See |netrw-p12|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100417
Bram Moolenaar446cb832008-06-24 21:56:24 +0000418 *g:netrw_silent* =0 : transfers done normally
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200419 =1 : transfers done silently
Bram Moolenaar446cb832008-06-24 21:56:24 +0000420
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000421 *g:netrw_use_errorwindow* =1 : messages from netrw will use a separate one
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200422 line window. This window provides reliable
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200423 delivery of messages. (default)
424 =0 : messages from netrw will use echoerr ;
425 messages don't always seem to show up this
426 way, but one doesn't have to quit the window.
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000427
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000428 *g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200429 lines that o/s's ftp "provides" on transfers
430 =0 force normal ftp behavior (no trailing line removal)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000431
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200432 *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
433 permits network browsing to use ls with time and
434 size sorting (default if windows)
435 =0 assume Windows' scp accepts windows-style paths
436 Network browsing uses dir instead of ls
437 This option is ignored if you're using unix
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000438
439 *g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200440 =1 use WinNT's rcp in binary mode (default)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000441
Bram Moolenaar446cb832008-06-24 21:56:24 +0000442PATHS *netrw-path* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000443
444Paths to files are generally user-directory relative for most protocols.
445It is possible that some protocol will make paths relative to some
446associated directory, however.
447>
448 example: vim scp://user@host/somefile
449 example: vim scp://user@host/subdir1/subdir2/somefile
450<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000451where "somefile" is in the "user"'s home directory. If you wish to get a
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000452file using root-relative paths, use the full path:
453>
454 example: vim scp://user@host//somefile
455 example: vim scp://user@host//subdir1/subdir2/somefile
456<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000457
458==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00004594. Network-Oriented File Transfer *netrw-xfer* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000460
461Network-oriented file transfer under Vim is implemented by a VimL-based script
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000462(<netrw.vim>) using plugin techniques. It currently supports both reading and
463writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000464dav/cadaver, rsync, or sftp.
465
466http is currently supported read-only via use of wget or fetch.
467
468<netrw.vim> is a standard plugin which acts as glue between Vim and the
469various file transfer programs. It uses autocommand events (BufReadCmd,
470FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >
471
472 ex. vim ftp://hostname/path/to/file
473<
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000474The characters preceding the colon specify the protocol to use; in the
Bram Moolenaar446cb832008-06-24 21:56:24 +0000475example, it's ftp. The <netrw.vim> script then formulates a command or a
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000476series of commands (typically ftp) which it issues to an external program
477(ftp, scp, etc) which does the actual file transfer/protocol. Files are read
478from/written to a temporary file (under Unix/Linux, /tmp/...) which the
479<netrw.vim> script will clean up.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000480
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100481Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
482ftp is not a secure protocol. User names and passwords are transmitted "in
483the clear" over the internet; any snooper tool can pick these up; this is not
484a netrw thing, this is a ftp thing. If you're concerned about this, please
485try to use scp or sftp instead.
486
487Netrw re-uses the user id and password during the same vim session and so long
488as the remote hostname remains the same.
489
490Jan seems to be a bit confused about how netrw handles ftp; normally multiple
491commands are performed in a "ftp session", and he seems to feel that the
492uid/password should only be retained over one ftp session. However, netrw
493does every ftp operation in a separate "ftp session"; so remembering the
494uid/password for just one "ftp session" would be the same as not remembering
495the uid/password at all. IMHO this would rapidly grow tiresome as one
496browsed remote directories, for example.
497
498On the other hand, thanks go to Jan M. for pointing out the many
499vulnerabilities that netrw (and vim itself) had had in handling "crafted"
500filenames. The |shellescape()| and |fnameescape()| functions were written in
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200501response by Bram Moolenaar to handle these sort of problems, and netrw has
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100502been modified to use them. Still, my advice is, if the "filename" looks like
503a vim command that you aren't comfortable with having executed, don't open it.
504
Bram Moolenaar9964e462007-05-05 17:54:07 +0000505 *netrw-putty* *netrw-pscp* *netrw-psftp*
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000506One may modify any protocol's implementing external application by setting a
507variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000508"scp -q"). As an example, consider using PuTTY: >
Bram Moolenaar9964e462007-05-05 17:54:07 +0000509
510 let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
511 let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000512<
Bram Moolenaar15146672011-10-20 22:22:38 +0200513(note: it has been reported that windows 7 with putty v0.6's "-batch" option
514 doesn't work, so its best to leave it off for that system)
515
Bram Moolenaar9964e462007-05-05 17:54:07 +0000516See |netrw-p8| for more about putty, pscp, psftp, etc.
517
Bram Moolenaar071d4272004-06-13 20:20:40 +0000518Ftp, an old protocol, seems to be blessed by numerous implementations.
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000519Unfortunately, some implementations are noisy (ie., add junk to the end of the
520file). Thus, concerned users may decide to write a NetReadFixup() function
521that will clean up after reading with their ftp. Some Unix systems (ie.,
522FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
523not noisy and more convenient, actually, for <netrw.vim> to use.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100524Consequently, if "fetch" is available (ie. executable), it may be preferable
525to use it for ftp://... based transfers.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000526
527For rcp, scp, sftp, and http, one may use network-oriented file transfers
Bram Moolenaar83bab712005-08-01 21:58:57 +0000528transparently; ie.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000529>
530 vim rcp://[user@]machine/path
531 vim scp://[user@]machine/path
532<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100533If your ftp supports <.netrc>, then it too can be transparently used
Bram Moolenaar071d4272004-06-13 20:20:40 +0000534if the needed triad of machine name, user id, and password are present in
535that file. Your ftp must be able to use the <.netrc> file on its own, however.
536>
537 vim ftp://[user@]machine[[:#]portnumber]/path
538<
Bram Moolenaaradc21822011-04-01 18:03:16 +0200539Windows provides an ftp (typically c:\Windows\System32\ftp.exe) which uses
540an option, -s:filename (filename can and probably should be a full path)
541which contains ftp commands which will be automatically run whenever ftp
542starts. You may use this feature to enter a user and password for one site: >
543 userid
544 password
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200545< *netrw-windows-netrc* *netrw-windows-s*
Bram Moolenaaradc21822011-04-01 18:03:16 +0200546If |g:netrw_ftp_cmd| contains -s:[path/]MACHINE, then (on Windows machines only)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200547netrw will substitute the current machine name requested for ftp connections
Bram Moolenaaradc21822011-04-01 18:03:16 +0200548for MACHINE. Hence one can have multiple machine.ftp files containing login
549and password for ftp. Example: >
550
Bram Moolenaarff034192013-04-24 18:51:19 +0200551 let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
552 vim ftp://myhost.somewhere.net/
Bram Moolenaaradc21822011-04-01 18:03:16 +0200553will use a file >
554 C:\Users\Myself\myhost.ftp
555<
556Often, ftp will need to query the user for the userid and password.
Bram Moolenaar83bab712005-08-01 21:58:57 +0000557The latter will be done "silently"; ie. asterisks will show up instead of
Bram Moolenaar071d4272004-06-13 20:20:40 +0000558the actually-typed-in password. Netrw will retain the userid and password
559for subsequent read/writes from the most recent transfer so subsequent
560transfers (read/write) to or from that machine will take place without
561additional prompting.
562
563 *netrw-urls*
564 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000565 | Reading | Writing | Uses |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000566 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000567 | DAV: | | |
568 | dav://host/path | | cadaver |
569 | :Nread dav://host/path | :Nwrite dav://host/path | cadaver |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000570 +---------------------------------+----------------------------+------------+
Bram Moolenaar446cb832008-06-24 21:56:24 +0000571 | DAV + SSL: | | |
572 | davs://host/path | | cadaver |
573 | :Nread davs://host/path | :Nwrite davs://host/path | cadaver |
574 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000575 | FETCH: | | |
576 | fetch://[user@]host/path | | |
577 | fetch://[user@]host:http/path | Not Available | fetch |
578 | :Nread fetch://[user@]host/path| | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000579 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000580 | FILE: | | |
581 | file:///* | file:///* | |
582 | file://localhost/* | file://localhost/* | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000583 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000584 | FTP: (*3) | (*3) | |
585 | ftp://[user@]host/path | ftp://[user@]host/path | ftp (*2) |
586 | :Nread ftp://host/path | :Nwrite ftp://host/path | ftp+.netrc |
587 | :Nread host path | :Nwrite host path | ftp+.netrc |
588 | :Nread host uid pass path | :Nwrite host uid pass path | ftp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000589 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000590 | HTTP: wget is executable: (*4) | | |
591 | http://[user@]host/path | Not Available | wget |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000592 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000593 | HTTP: fetch is executable (*4) | | |
594 | http://[user@]host/path | Not Available | fetch |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000595 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000596 | RCP: | | |
597 | rcp://[user@]host/path | rcp://[user@]host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000598 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000599 | RSYNC: | | |
600 | rsync://[user@]host/path | rsync://[user@]host/path | rsync |
601 | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync |
602 | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000603 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000604 | SCP: | | |
605 | scp://[user@]host/path | scp://[user@]host/path | scp |
606 | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000607 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000608 | SFTP: | | |
609 | sftp://[user@]host/path | sftp://[user@]host/path | sftp |
610 | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000611 +=================================+============================+============+
612
613 (*1) For an absolute path use scp://machine//path.
614
615 (*2) if <.netrc> is present, it is assumed that it will
616 work with your ftp client. Otherwise the script will
Bram Moolenaar9964e462007-05-05 17:54:07 +0000617 prompt for user-id and password.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000618
Bram Moolenaar9964e462007-05-05 17:54:07 +0000619 (*3) for ftp, "machine" may be machine#port or machine:port
Bram Moolenaar071d4272004-06-13 20:20:40 +0000620 if a different port is needed than the standard ftp port
621
622 (*4) for http:..., if wget is available it will be used. Otherwise,
623 if fetch is available it will be used.
624
625Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.
626
627
628NETRC *netrw-netrc*
629
Bram Moolenaar446cb832008-06-24 21:56:24 +0000630The <.netrc> file, typically located in your home directory, contains lines
631therein which map a hostname (machine name) to the user id and password you
632prefer to use with it.
633
Bram Moolenaar071d4272004-06-13 20:20:40 +0000634The typical syntax for lines in a <.netrc> file is given as shown below.
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000635Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000636>
637 machine {full machine name} login {user-id} password "{password}"
638 default login {user-id} password "{password}"
639
640Your ftp client must handle the use of <.netrc> on its own, but if the
641<.netrc> file exists, an ftp transfer will not ask for the user-id or
642password.
643
644 Note:
645 Since this file contains passwords, make very sure nobody else can
646 read this file! Most programs will refuse to use a .netrc that is
647 readable for others. Don't forget that the system administrator can
Bram Moolenaar446cb832008-06-24 21:56:24 +0000648 still read the file! Ie. for Linux/Unix: chmod 600 .netrc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000649
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200650Even though Windows' ftp clients typically do not support .netrc, netrw has
651a work-around: see |netrw-windows-s|.
652
Bram Moolenaar071d4272004-06-13 20:20:40 +0000653
654PASSWORD *netrw-passwd*
655
656The script attempts to get passwords for ftp invisibly using |inputsecret()|,
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200657a built-in Vim function. See |netrw-userpass| for how to change the password
Bram Moolenaar071d4272004-06-13 20:20:40 +0000658after one has set it.
659
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000660Unfortunately there doesn't appear to be a way for netrw to feed a password to
661scp. Thus every transfer via scp will require re-entry of the password.
Bram Moolenaar446cb832008-06-24 21:56:24 +0000662However, |netrw-ssh-hack| can help with this problem.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000663
664
665==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00006665. Activation *netrw-activate* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000667
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000668Network-oriented file transfers are available by default whenever Vim's
Bram Moolenaar446cb832008-06-24 21:56:24 +0000669|'nocompatible'| mode is enabled. Netrw's script files reside in your
670system's plugin, autoload, and syntax directories; just the
671plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
672vim. The main script in autoload/netrw.vim is only loaded when you actually
673use netrw. I suggest that, at a minimum, you have at least the following in
674your <.vimrc> customization file: >
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000675
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000676 set nocp
677 if version >= 600
678 filetype plugin indent on
679 endif
680<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000681
682==============================================================================
Bram Moolenaaradc21822011-04-01 18:03:16 +02006836. Transparent Remote File Editing *netrw-transparent* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000684
685Transparent file transfers occur whenever a regular file read or write
Bram Moolenaar446cb832008-06-24 21:56:24 +0000686(invoked via an |:autocmd| for |BufReadCmd|, |BufWriteCmd|, or |SourceCmd|
687events) is made. Thus one may read, write, or source files across networks
688just as easily as if they were local files! >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000689
690 vim ftp://[user@]machine/path
691 ...
692 :wq
693
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000694See |netrw-activate| for more on how to encourage your vim to use plugins
695such as netrw.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000696
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000697
Bram Moolenaar071d4272004-06-13 20:20:40 +0000698==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00006997. Ex Commands *netrw-ex* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000700
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000701The usual read/write commands are supported. There are also a few
Bram Moolenaar446cb832008-06-24 21:56:24 +0000702additional commands available. Often you won't need to use Nwrite or
Bram Moolenaar9964e462007-05-05 17:54:07 +0000703Nread as shown in |netrw-transparent| (ie. simply use >
704 :e url
705 :r url
706 :w url
707instead, as appropriate) -- see |netrw-urls|. In the explanations
708below, a {netfile} is an url to a remote file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000709
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200710 *:Nwrite* *:Nw*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000711:[range]Nw[rite] Write the specified lines to the current
Bram Moolenaar071d4272004-06-13 20:20:40 +0000712 file as specified in b:netrw_lastfile.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200713 (related: |netrw-nwrite|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000714
Bram Moolenaar446cb832008-06-24 21:56:24 +0000715:[range]Nw[rite] {netfile} [{netfile}]...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000716 Write the specified lines to the {netfile}.
717
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200718 *:Nread* *:Nr*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100719:Nr[ead] Read the lines from the file specified in b:netrw_lastfile
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200720 into the current buffer. (related: |netrw-nread|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000721
Bram Moolenaar446cb832008-06-24 21:56:24 +0000722:Nr[ead] {netfile} {netfile}...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000723 Read the {netfile} after the current line.
724
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200725 *:Nsource* *:Ns*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000726:Ns[ource] {netfile}
Bram Moolenaar9964e462007-05-05 17:54:07 +0000727 Source the {netfile}.
728 To start up vim using a remote .vimrc, one may use
729 the following (all on one line) (tnx to Antoine Mechelynck) >
730 vim -u NORC -N
731 --cmd "runtime plugin/netrwPlugin.vim"
732 --cmd "source scp://HOSTNAME/.vimrc"
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200733< (related: |netrw-source|)
734
735:call NetUserPass() *NetUserPass()*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000736 If g:netrw_uid and s:netrw_passwd don't exist,
737 this function will query the user for them.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200738 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000739
740:call NetUserPass("userid")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000741 This call will set the g:netrw_uid and, if
Bram Moolenaar071d4272004-06-13 20:20:40 +0000742 the password doesn't exist, will query the user for it.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200743 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000744
745:call NetUserPass("userid","passwd")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000746 This call will set both the g:netrw_uid and s:netrw_passwd.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000747 The user-id and password are used by ftp transfers. One may
Bram Moolenaar446cb832008-06-24 21:56:24 +0000748 effectively remove the user-id and password by using empty
749 strings (ie. "").
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200750 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000751
Bram Moolenaar9964e462007-05-05 17:54:07 +0000752:NetrwSettings This command is described in |netrw-settings| -- used to
753 display netrw settings and change netrw behavior.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000754
Bram Moolenaar071d4272004-06-13 20:20:40 +0000755
756==============================================================================
Bram Moolenaar5b435d62012-04-05 17:33:26 +02007578. Variables and Options *netrw-var* *netrw-settings* {{{1
Bram Moolenaar446cb832008-06-24 21:56:24 +0000758
Bram Moolenaar15146672011-10-20 22:22:38 +0200759(also see: |netrw-options| |netrw-variables| |netrw-protocol|
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200760 |netrw-browser-settings| |netrw-browser-options| )
Bram Moolenaar071d4272004-06-13 20:20:40 +0000761
Bram Moolenaar9964e462007-05-05 17:54:07 +0000762The <netrw.vim> script provides several variables which act as options to
Bram Moolenaar446cb832008-06-24 21:56:24 +0000763affect <netrw.vim>'s file transfer behavior. These variables typically may be
764set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
Bram Moolenaar15146672011-10-20 22:22:38 +0200765 *netrw-options*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000766>
Bram Moolenaar9964e462007-05-05 17:54:07 +0000767 -------------
768 Netrw Options
769 -------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000770 Option Meaning
771 -------------- -----------------------------------------------
772<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000773 b:netrw_col Holds current cursor position (during NetWrite)
774 g:netrw_cygwin =1 assume scp under windows is from cygwin
775 (default/windows)
776 =0 assume scp under windows accepts windows
777 style paths (default/else)
778 g:netrw_ftp =0 use default ftp (uid password)
779 g:netrw_ftpmode ="binary" (default)
780 ="ascii" (your choice)
781 g:netrw_ignorenetrc =1 (default)
782 if you have a <.netrc> file but you don't
Bram Moolenaar071d4272004-06-13 20:20:40 +0000783 want it used, then set this variable. Its
784 mere existence is enough to cause <.netrc>
785 to be ignored.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000786 b:netrw_lastfile Holds latest method/machine/path.
787 b:netrw_line Holds current line number (during NetWrite)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000788 g:netrw_silent =0 transfers done normally
789 =1 transfers done silently
790 g:netrw_uid Holds current user-id for ftp.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000791 g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
792 =1 use WinNT/2K/XP's rcp, binary mode
793 g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc
794 =1 use default method to do ftp >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000795 -----------------------------------------------------------------------
796<
Bram Moolenaar15146672011-10-20 22:22:38 +0200797 *netrw-internal-variables*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000798The script will also make use of the following variables internally, albeit
799temporarily.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000800>
801 -------------------
802 Temporary Variables
803 -------------------
804 Variable Meaning
805 -------- ------------------------------------
806<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100807 b:netrw_method Index indicating rcp/ftp+.netrc/ftp
808 w:netrw_method (same as b:netrw_method)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000809 g:netrw_machine Holds machine name parsed from input
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100810 b:netrw_fname Holds filename being accessed >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000811 ------------------------------------------------------------
812<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000813 *netrw-protocol*
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000814
815Netrw supports a number of protocols. These protocols are invoked using the
816variables listed below, and may be modified by the user.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000817>
818 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000819 Protocol Control Options
Bram Moolenaar071d4272004-06-13 20:20:40 +0000820 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000821 Option Type Setting Meaning
822 --------- -------- -------------- ---------------------------
Bram Moolenaar8d043172014-01-23 14:24:41 +0100823< netrw_ftp variable =doesn't exist userid set by "user userid"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000824 =0 userid set by "user userid"
825 =1 userid set by "userid"
826 NetReadFixup function =doesn't exist no change
827 =exists Allows user to have files
828 read via ftp automatically
829 transformed however they wish
830 by NetReadFixup()
Bram Moolenaar8d043172014-01-23 14:24:41 +0100831 g:netrw_dav_cmd var ="cadaver" if cadaver is executable
832 g:netrw_dav_cmd var ="curl -o" elseif curl is executable
833 g:netrw_fetch_cmd var ="fetch -o" if fetch is available
834 g:netrw_ftp_cmd var ="ftp"
835 g:netrw_http_cmd var ="fetch -o" if fetch is available
836 g:netrw_http_cmd var ="wget -O" else if wget is available
837 g:netrw_http_put_cmd var ="curl -T"
838 g:netrw_list_cmd var ="ssh USEPORT HOSTNAME ls -Fa"
839 g:netrw_rcp_cmd var ="rcp"
840 g:netrw_rsync_cmd var ="rsync -a"
841 g:netrw_scp_cmd var ="scp -q"
842 g:netrw_sftp_cmd var ="sftp" >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000843 -------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000844<
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000845 *netrw-ftp*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000846
Bram Moolenaar9964e462007-05-05 17:54:07 +0000847The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
848specify the external program to use handle the ftp protocol. They may
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200849include command line options (such as -p for passive mode). Example: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000850
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200851 let g:netrw_ftp_cmd= "ftp -p"
852<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000853Browsing is supported by using the |g:netrw_list_cmd|; the substring
854"HOSTNAME" will be changed via substitution with whatever the current request
855is for a hostname.
856
857Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's
858that give trouble . In order to best understand how to use these options if
859ftp is giving you troubles, a bit of discussion is provided on how netrw does
860ftp reads.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000861
862For ftp, netrw typically builds up lines of one of the following formats in a
Bram Moolenaar071d4272004-06-13 20:20:40 +0000863temporary file:
864>
865 IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1
866 ---------------------------------- ------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000867<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000868 open machine [port] open machine [port]
869 user userid password userid password
870 [g:netrw_ftpmode] password
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200871 [g:netrw_ftpextracmd] [g:netrw_ftpmode]
Bram Moolenaar9964e462007-05-05 17:54:07 +0000872 get filename tempfile [g:netrw_extracmd]
873 get filename tempfile >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000874 ---------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000875<
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200876The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000877
Bram Moolenaar071d4272004-06-13 20:20:40 +0000878Netrw then executes the lines above by use of a filter:
879>
880 :%! {g:netrw_ftp_cmd} -i [-n]
881<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000882where
883 g:netrw_ftp_cmd is usually "ftp",
884 -i tells ftp not to be interactive
885 -n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
886
887If <.netrc> exists it will be used to avoid having to query the user for
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000888userid and password. The transferred file is put into a temporary file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000889The temporary file is then read into the main editing session window that
890requested it and the temporary file deleted.
891
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000892If your ftp doesn't accept the "user" command and immediately just demands a
893userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000894
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000895 *netrw-cadaver*
896To handle the SSL certificate dialog for untrusted servers, one may pull
897down the certificate and place it into /usr/ssl/cert.pem. This operation
898renders the server treatment as "trusted".
899
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000900 *netrw-fixup* *netreadfixup*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000901If your ftp for whatever reason generates unwanted lines (such as AUTH
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100902messages) you may write a NetReadFixup() function:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000903>
904 function! NetReadFixup(method,line1,line2)
905 " a:line1: first new line in current file
906 " a:line2: last new line in current file
907 if a:method == 1 "rcp
908 elseif a:method == 2 "ftp + <.netrc>
909 elseif a:method == 3 "ftp + machine,uid,password,filename
910 elseif a:method == 4 "scp
911 elseif a:method == 5 "http/wget
912 elseif a:method == 6 "dav/cadaver
913 elseif a:method == 7 "rsync
914 elseif a:method == 8 "fetch
915 elseif a:method == 9 "sftp
Bram Moolenaar9964e462007-05-05 17:54:07 +0000916 else " complain
Bram Moolenaar071d4272004-06-13 20:20:40 +0000917 endif
918 endfunction
919>
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000920The NetReadFixup() function will be called if it exists and thus allows you to
921customize your reading process. As a further example, <netrw.vim> contains
922just such a function to handle Windows 95 ftp. For whatever reason, Windows
92395's ftp dumps four blank lines at the end of a transfer, and so it is
924desirable to automate their removal. Here's some code taken from <netrw.vim>
925itself:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000926>
927 if has("win95") && g:netrw_win95ftp
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000928 fun! NetReadFixup(method, line1, line2)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000929 if method == 3 " ftp (no <.netrc>)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000930 let fourblanklines= line2 - 3
931 silent fourblanklines.",".line2."g/^\s*/d"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000932 endif
933 endfunction
934 endif
935>
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200936(Related topics: |ftp| |netrw-userpass| |netrw-start|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000937
938==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00009399. Browsing *netrw-browsing* *netrw-browse* *netrw-help* {{{1
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100940 *netrw-browser* *netrw-dir* *netrw-list*
Bram Moolenaar83bab712005-08-01 21:58:57 +0000941
Bram Moolenaar446cb832008-06-24 21:56:24 +0000942INTRODUCTION TO BROWSING *netrw-intro-browse* {{{2
943 (Quick References: |netrw-quickmaps| |netrw-quickcoms|)
Bram Moolenaar83bab712005-08-01 21:58:57 +0000944
Bram Moolenaar446cb832008-06-24 21:56:24 +0000945Netrw supports the browsing of directories on your local system and on remote
946hosts; browsing includes listing files and directories, entering directories,
947editing files therein, deleting files/directories, making new directories,
948moving (renaming) files and directories, copying files and directories, etc.
949One may mark files and execute any system command on them! The Netrw browser
950generally implements the previous explorer's maps and commands for remote
951directories, although details (such as pertinent global variable names)
952necessarily differ. To browse a directory, simply "edit" it! >
Bram Moolenaar269ec652004-07-29 08:43:53 +0000953
Bram Moolenaar446cb832008-06-24 21:56:24 +0000954 vim /your/directory/
955 vim .
956 vim c:\your\directory\
957<
958(Related topics: |netrw-cr| |netrw-o| |netrw-p| |netrw-P| |netrw-t|
959 |netrw-mf| |netrw-mx| |netrw-D| |netrw-R| |netrw-v| )
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000960
961The Netrw remote file and directory browser handles two protocols: ssh and
Bram Moolenaar446cb832008-06-24 21:56:24 +0000962ftp. The protocol in the url, if it is ftp, will cause netrw also to use ftp
963in its remote browsing. Specifying any other protocol will cause it to be
964used for file transfers; but the ssh protocol will be used to do remote
965browsing.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000966
Bram Moolenaar446cb832008-06-24 21:56:24 +0000967To use Netrw's remote directory browser, simply attempt to read a "file" with
968a trailing slash and it will be interpreted as a request to list a directory:
969>
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000970 vim [protocol]://[user@]hostname/path/
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +0000971<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000972where [protocol] is typically scp or ftp. As an example, try: >
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +0000973
Bram Moolenaar446cb832008-06-24 21:56:24 +0000974 vim ftp://ftp.home.vim.org/pub/vim/
975<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100976For local directories, the trailing slash is not required. Again, because it's
Bram Moolenaar446cb832008-06-24 21:56:24 +0000977easy to miss: to browse remote directories, the url must terminate with a
978slash!
Bram Moolenaar83bab712005-08-01 21:58:57 +0000979
Bram Moolenaar446cb832008-06-24 21:56:24 +0000980If you'd like to avoid entering the password repeatedly for remote directory
981listings with ssh or scp, see |netrw-ssh-hack|. To avoid password entry with
982ftp, see |netrw-netrc| (if your ftp supports it).
Bram Moolenaar83bab712005-08-01 21:58:57 +0000983
Bram Moolenaar446cb832008-06-24 21:56:24 +0000984There are several things you can do to affect the browser's display of files:
Bram Moolenaar83bab712005-08-01 21:58:57 +0000985
Bram Moolenaar446cb832008-06-24 21:56:24 +0000986 * To change the listing style, press the "i" key (|netrw-i|).
987 Currently there are four styles: thin, long, wide, and tree.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100988 To make that change "permanent", see |g:netrw_liststyle|.
Bram Moolenaar83bab712005-08-01 21:58:57 +0000989
Bram Moolenaar446cb832008-06-24 21:56:24 +0000990 * To hide files (don't want to see those xyz~ files anymore?) see
991 |netrw-ctrl-h|.
Bram Moolenaar83bab712005-08-01 21:58:57 +0000992
Bram Moolenaar446cb832008-06-24 21:56:24 +0000993 * Press s to sort files by name, time, or size.
994
995See |netrw-browse-cmds| for all the things you can do with netrw!
996
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100997 *netrw-getftype* *netrw-filigree* *netrw-ftype*
998The |getftype()| function is used to append a bit of filigree to indicate
999filetype to locally listed files:
1000
1001 directory : /
1002 executable : *
1003 fifo : |
1004 links : @
1005 sockets : =
1006
1007The filigree also affects the |g:netrw_sort_sequence|.
1008
Bram Moolenaar446cb832008-06-24 21:56:24 +00001009
1010QUICK HELP *netrw-quickhelp* {{{2
1011 (Use ctrl-] to select a topic)~
1012 Intro to Browsing...............................|netrw-intro-browse|
1013 Quick Reference: Maps.........................|netrw-quickmap|
1014 Quick Reference: Commands.....................|netrw-browse-cmds|
1015 Hiding
1016 Edit hiding list..............................|netrw-ctrl-h|
1017 Hiding Files or Directories...................|netrw-a|
1018 Hiding/Unhiding by suffix.....................|netrw-mh|
1019 Hiding dot-files.............................|netrw-gh|
1020 Listing Style
1021 Select listing style (thin/long/wide/tree)....|netrw-i|
1022 Associated setting variable...................|g:netrw_liststyle|
1023 Shell command used to perform listing.........|g:netrw_list_cmd|
1024 Quick file info...............................|netrw-qf|
1025 Sorted by
1026 Select sorting style (name/time/size).........|netrw-s|
1027 Editing the sorting sequence..................|netrw-S|
Bram Moolenaarc236c162008-07-13 17:41:49 +00001028 Sorting options...............................|g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001029 Associated setting variable...................|g:netrw_sort_sequence|
1030 Reverse sorting order.........................|netrw-r|
1031
1032
1033 *netrw-quickmap* *netrw-quickmaps*
1034QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001035>
Bram Moolenaar446cb832008-06-24 21:56:24 +00001036 --- ----------------- ----
1037 Map Quick Explanation Link
1038 --- ----------------- ----
1039< <F1> Causes Netrw to issue help
1040 <cr> Netrw will enter the directory or read the file |netrw-cr|
1041 <del> Netrw will attempt to remove the file/directory |netrw-del|
1042 - Makes Netrw go up one directory |netrw--|
1043 a Toggles between normal display, |netrw-a|
1044 hiding (suppress display of files matching g:netrw_list_hide)
1045 showing (display only files which match g:netrw_list_hide)
1046 c Make browsing directory the current directory |netrw-c|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001047 C Setting the editing window |netrw-C|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001048 d Make a directory |netrw-d|
1049 D Attempt to remove the file(s)/directory(ies) |netrw-D|
1050 gb Go to previous bookmarked directory |netrw-gb|
1051 gh Quick hide/unhide of dot-files |netrw-gh|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001052 <c-h> Edit file hiding list |netrw-ctrl-h|
1053 i Cycle between thin, long, wide, and tree listings |netrw-i|
1054 <c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l|
1055 mb Bookmark current directory |netrw-mb|
1056 mc Copy marked files to marked-file target directory |netrw-mc|
1057 md Apply diff to marked files (up to 3) |netrw-md|
1058 me Place marked files on arg list and edit them |netrw-me|
1059 mf Mark a file |netrw-mf|
1060 mh Toggle marked file suffices' presence on hiding list |netrw-mh|
1061 mm Move marked files to marked-file target directory |netrw-mm|
1062 mp Print marked files |netrw-mp|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001063 mr Mark files satisfying a shell-style |regexp| |netrw-mr|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001064 mt Current browsing directory becomes markfile target |netrw-mt|
1065 mT Apply ctags to marked files |netrw-mT|
1066 mu Unmark all marked files |netrw-mu|
1067 mx Apply arbitrary shell command to marked files |netrw-mx|
1068 mz Compress/decompress marked files |netrw-mz|
1069 o Enter the file/directory under the cursor in a new |netrw-o|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001070 browser window. A horizontal split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001071 O Obtain a file specified by cursor |netrw-O|
1072 p Preview the file |netrw-p|
1073 P Browse in the previously used window |netrw-P|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001074 qb List bookmarked directories and history |netrw-qb|
1075 qf Display information on file |netrw-qf|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001076 r Reverse sorting order |netrw-r|
1077 R Rename the designed file(s)/directory(ies) |netrw-R|
1078 s Select sorting style: by name, time, or file size |netrw-s|
1079 S Specify suffix priority for name-sorting |netrw-S|
1080 t Enter the file/directory under the cursor in a new tab|netrw-t|
1081 u Change to recently-visited directory |netrw-u|
1082 U Change to subsequently-visited directory |netrw-U|
1083 v Enter the file/directory under the cursor in a new |netrw-v|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001084 browser window. A vertical split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001085 x View file with an associated program |netrw-x|
Bram Moolenaar97d62492012-11-15 21:28:22 +01001086 X Execute filename under cursor via |system()| |netrw-X|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001087
Bram Moolenaarc236c162008-07-13 17:41:49 +00001088 % Open a new file in netrw's current directory |netrw-%|
1089
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001090 *netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001091 <leftmouse> (gvim only) selects word under mouse as if a <cr>
1092 had been pressed (ie. edit file, change directory)
1093 <middlemouse> (gvim only) same as P selecting word under mouse;
1094 see |netrw-P|
1095 <rightmouse> (gvim only) delete file/directory using word under
1096 mouse
1097 <2-leftmouse> (gvim only) when:
1098 * in a netrw-selected file, AND
1099 * |g:netrw_retmap| == 1 AND
Bram Moolenaarff034192013-04-24 18:51:19 +02001100 * the user doesn't already have a <2-leftmouse>
1101 mapping defined before netrw is autoloaded,
Bram Moolenaar446cb832008-06-24 21:56:24 +00001102 then a double clicked leftmouse button will return
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001103 to the netrw browser window. See |g:netrw_retmap|.
Bram Moolenaar8d043172014-01-23 14:24:41 +01001104 <s-leftmouse> (gvim only) like mf, will mark files. Dragging
1105 the shifted leftmouse will mark multiple files.
1106 (see |netrw-mf|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001107
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001108 (to disable mouse buttons while browsing: |g:netrw_mousemaps|)
1109
Bram Moolenaar446cb832008-06-24 21:56:24 +00001110 *netrw-quickcom* *netrw-quickcoms*
1111QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01001112 :NetrwClean[!]............................................|netrw-clean|
1113 :NetrwSettings............................................|netrw-settings|
1114 :Ntree....................................................|netrw-ntree|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001115 :Explore[!] [dir] Explore directory of current file......|netrw-explore|
1116 :Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
Bram Moolenaar8d043172014-01-23 14:24:41 +01001117 :Lexplore [dir] Left Explorer Toggle...................|netrw-explore|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001118 :Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1119 :Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1120 :Rexplore Return to Explorer.....................|netrw-explore|
1121 :Sexplore[!] [dir] Split & Explore directory .............|netrw-explore|
1122 :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
1123 :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1124
1125BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001126
Bram Moolenaar446cb832008-06-24 21:56:24 +00001127One may easily "bookmark" a directory by using >
1128
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001129 mb
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001130<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001131Bookmarks are retained in between sessions in a $HOME/.netrwbook file, and are
1132kept in sorted order.
1133
1134Related Topics:
1135 |netrw-gb| how to return (go) to a bookmark
1136 |netrw-mB| how to delete bookmarks
1137 |netrw-qb| how to list bookmarks
Bram Moolenaar4a85b412006-04-23 22:40:29 +00001138
1139
Bram Moolenaar446cb832008-06-24 21:56:24 +00001140BROWSING *netrw-cr* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001141
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001142Browsing is simple: move the cursor onto a file or directory of interest.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001143Hitting the <cr> (the return key) will select the file or directory.
1144Directories will themselves be listed, and files will be opened using the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001145protocol given in the original read request.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001146
Bram Moolenaar446cb832008-06-24 21:56:24 +00001147 CAVEAT: There are four forms of listing (see |netrw-i|). Netrw assumes that
1148 two or more spaces delimit filenames and directory names for the long and
1149 wide listing formats. Thus, if your filename or directory name has two or
1150 more sequential spaces embedded in it, or any trailing spaces, then you'll
1151 need to use the "thin" format to select it.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001152
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001153The |g:netrw_browse_split| option, which is zero by default, may be used to
Bram Moolenaar446cb832008-06-24 21:56:24 +00001154cause the opening of files to be done in a new window or tab instead of the
1155default. When the option is one or two, the splitting will be taken
1156horizontally or vertically, respectively. When the option is set to three, a
1157<cr> will cause the file to appear in a new tab.
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001158
Bram Moolenaar83bab712005-08-01 21:58:57 +00001159
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001160When using the gui (gvim), one may select a file by pressing the <leftmouse>
1161button. In addition, if
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001162
Bram Moolenaar446cb832008-06-24 21:56:24 +00001163 *|g:netrw_retmap| == 1 AND (its default value is 0)
1164 * in a netrw-selected file, AND
1165 * the user doesn't already have a <2-leftmouse> mapping defined before
1166 netrw is loaded
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001167
Bram Moolenaar446cb832008-06-24 21:56:24 +00001168then a doubly-clicked leftmouse button will return to the netrw browser
1169window.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001170
Bram Moolenaar446cb832008-06-24 21:56:24 +00001171Netrw attempts to speed up browsing, especially for remote browsing where one
1172may have to enter passwords, by keeping and re-using previously obtained
1173directory listing buffers. The |g:netrw_fastbrowse| variable is used to
1174control this behavior; one may have slow browsing (no buffer re-use), medium
1175speed browsing (re-use directory buffer listings only for remote directories),
1176and fast browsing (re-use directory buffer listings as often as possible).
1177The price for such re-use is that when changes are made (such as new files
1178are introduced into a directory), the listing may become out-of-date. One may
1179always refresh directory listing buffers by pressing ctrl-L (see
1180|netrw-ctrl-l|).
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001181
1182
Bram Moolenaar446cb832008-06-24 21:56:24 +00001183Related topics: |netrw-o| |netrw-p| |netrw-P| |netrw-t| |netrw-v|
1184Associated setting variables: |g:netrw_browse_split| |g:netrw_fastbrowse|
1185 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1186 |g:netrw_ftp_timelist_cmd| |g:netrw_ssh_cmd|
1187 |g:netrw_ssh_browse_reject| |g:netrw_use_noswf|
1188
1189
1190BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz* {{{2
1191
1192Normally one enters a file or directory using the <cr>. However, the "o" map
1193allows one to open a new window to hold the new directory listing or file. A
1194horizontal split is used. (for vertical splitting, see |netrw-v|)
1195
1196Normally, the o key splits the window horizontally with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001197cursor at the top.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001198
1199Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
1200
Bram Moolenaarff034192013-04-24 18:51:19 +02001201Related Actions |netrw-cr| |netrw-p| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001202Associated setting variables:
1203 |g:netrw_alto| control above/below splitting
1204 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001205
Bram Moolenaarff034192013-04-24 18:51:19 +02001206BROWSING WITH A NEW TAB *netrw-t*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001207
1208Normally one enters a file or directory using the <cr>. The "t" map
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001209allows one to open a new window holding the new directory listing or file in
Bram Moolenaarff034192013-04-24 18:51:19 +02001210a new tab.
1211
1212If you'd like to have the new listing in a background tab, use |gT|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001213
Bram Moolenaar15146672011-10-20 22:22:38 +02001214Related Actions |netrw-cr| |netrw-o| |netrw-p| |netrw-v|
1215Associated setting variables:
1216 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001217
1218BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
1219
1220Normally one enters a file or directory using the <cr>. However, the "v" map
1221allows one to open a new window to hold the new directory listing or file. A
1222vertical split is used. (for horizontal splitting, see |netrw-o|)
1223
1224Normally, the v key splits the window vertically with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001225cursor at the left.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001226
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001227There is only one tree listing buffer; using "v" on a displayed subdirectory
Bram Moolenaar446cb832008-06-24 21:56:24 +00001228will split the screen, but the same buffer will be shown twice.
1229
1230Associated setting variable: |g:netrw_altv| |g:netrw_winsize|
1231
Bram Moolenaarff034192013-04-24 18:51:19 +02001232Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001233Associated setting variables:
1234 |g:netrw_altv| control right/left splitting
1235 |g:netrw_winsize| control initial sizing
1236
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001237
1238CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001239
Bram Moolenaar9964e462007-05-05 17:54:07 +00001240The "i" map cycles between the thin, long, wide, and tree listing formats.
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001241
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001242The thin listing format gives just the files' and directories' names.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001243
Bram Moolenaar8299df92004-07-10 09:47:34 +00001244The long listing is either based on the "ls" command via ssh for remote
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001245directories or displays the filename, file size (in bytes), and the time and
1246date of last modification for local directories. With the long listing
1247format, netrw is not able to recognize filenames which have trailing spaces.
1248Use the thin listing format for such files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001249
Bram Moolenaar9964e462007-05-05 17:54:07 +00001250The wide listing format uses two or more contiguous spaces to delineate
1251filenames; when using that format, netrw won't be able to recognize or use
1252filenames which have two or more contiguous spaces embedded in the name or any
1253trailing spaces. The thin listing format will, however, work with such files.
1254This listing format is the most compact.
1255
1256The tree listing format has a top directory followed by files and directories
1257preceded by a "|". One may open and close directories by pressing the <cr>
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001258key while atop the directory name.
1259
1260One may make a preferred listing style your default; see |g:netrw_liststyle|.
1261As an example, by putting the following line in your .vimrc, >
1262 let g:netrw_liststyle= 4
1263the tree style will become your default listing style.
Bram Moolenaar8299df92004-07-10 09:47:34 +00001264
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001265One typical way to use the netrw tree display is to: >
1266
1267 vim .
1268 (use i until a tree display shows)
1269 navigate to a file
1270 v (edit as desired in vertically split window)
1271 ctrl-w h (to return to the netrw listing)
1272 P (edit newly selected file in the previous window)
1273 ctrl-w h (to return to the netrw listing)
1274 P (edit newly selected file in the previous window)
1275 ...etc...
1276<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001277Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
1278 |g:netrw_timefmt| |g:netrw_list_cmd|
Bram Moolenaar8299df92004-07-10 09:47:34 +00001279
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001280CHANGE FILE PERMISSION *netrw-gp* {{{2
1281
1282"gp" will ask you for a new permission for the file named under the cursor.
1283Currently, this only works for local files.
1284
1285Associated setting variables: |g:netrw_chgperm|
1286
Bram Moolenaar83bab712005-08-01 21:58:57 +00001287
Bram Moolenaar446cb832008-06-24 21:56:24 +00001288CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
Bram Moolenaar843ee412004-06-30 16:16:41 +00001289
Bram Moolenaar446cb832008-06-24 21:56:24 +00001290To change directory back to a bookmarked directory, use
Bram Moolenaar843ee412004-06-30 16:16:41 +00001291
Bram Moolenaar446cb832008-06-24 21:56:24 +00001292 {cnt}gb
Bram Moolenaar843ee412004-06-30 16:16:41 +00001293
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001294Any count may be used to reference any of the bookmarks.
Bram Moolenaarff034192013-04-24 18:51:19 +02001295Note that |netrw-qb| shows both bookmarks and history; to go
1296to a location stored in the history see |netrw-u| and |netrw-U|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001297
1298Related Topics:
1299 |netrw-mB| how to delete bookmarks
1300 |netrw-mb| how to make a bookmark
1301 |netrw-qb| how to list bookmarks
Bram Moolenaar843ee412004-06-30 16:16:41 +00001302
Bram Moolenaar843ee412004-06-30 16:16:41 +00001303
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001304CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001305
1306Every time you change to a new directory (new for the current session),
1307netrw will save the directory in a recently-visited directory history
Bram Moolenaaradc21822011-04-01 18:03:16 +02001308list (unless |g:netrw_dirhistmax| is zero; by default, it's ten). With the
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001309"u" map, one can change to an earlier directory (predecessor). To do
1310the opposite, see |netrw-U|.
1311
Bram Moolenaarff034192013-04-24 18:51:19 +02001312The "u" map also accepts counts to go back in the history several slots.
1313For your convenience, |netrw-qb| lists the history number which can be
1314re-used in that count.
1315
1316See |g:netrw_dirhistmax| for how to control the quantity of history stack
1317slots.
1318
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001319
Bram Moolenaar446cb832008-06-24 21:56:24 +00001320CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001321
1322With the "U" map, one can change to a later directory (successor).
1323This map is the opposite of the "u" map. (see |netrw-u|) Use the
Bram Moolenaar446cb832008-06-24 21:56:24 +00001324q map to list both the bookmarks and history. (see |netrw-qb|)
1325
Bram Moolenaarff034192013-04-24 18:51:19 +02001326The "U" map also accepts counts to go forward in the history several slots.
1327
1328See |g:netrw_dirhistmax| for how to control the quantity of history stack
1329slots.
1330
Bram Moolenaar446cb832008-06-24 21:56:24 +00001331
Bram Moolenaar8d043172014-01-23 14:24:41 +01001332CHANGING TREE TOP *netrw-ntree* *:Ntree*
1333
1334One may specify a new tree top for tree listings using >
1335
1336 :Ntree [dirname]
1337
1338Without a "dirname", the current line is used (and any leading depth
1339information is elided).
1340With a "dirname", the specified directory name is used.
1341
1342
Bram Moolenaar446cb832008-06-24 21:56:24 +00001343NETRW CLEAN *netrw-clean* *:NetrwClean*
1344
1345With :NetrwClean one may easily remove netrw from one's home directory;
1346more precisely, from the first directory on your |'runtimepath'|.
1347
1348With :NetrwClean!, netrw will remove netrw from all directories on your
1349|'runtimepath'|.
1350
1351With either form of the command, netrw will first ask for confirmation
1352that the removal is in fact what you want to do. If netrw doesn't have
1353permission to remove a file, it will issue an error message.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001354
Bram Moolenaar9964e462007-05-05 17:54:07 +00001355 *netrw-gx*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001356CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x* *netrw-handler* {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00001357 (also see |netrw_filehandler|)
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001358
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001359Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
1360best seen with a special handler (ie. a tool provided with your computer).
1361Netrw allows one to invoke such special handlers by: >
1362
1363 * when Exploring, hit the "x" key
1364 * when editing, hit gx with the cursor atop the special filename
Bram Moolenaar9964e462007-05-05 17:54:07 +00001365< (not available if the |g:netrw_nogx| variable exists)
1366
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001367Netrw determines which special handler by the following method:
1368
1369 * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
1370 view files. Examples of useful settings (place into your <.vimrc>): >
1371
1372 :let g:netrw_browsex_viewer= "kfmclient exec"
1373< or >
1374 :let g:netrw_browsex_viewer= "gnome-open"
1375<
1376 If g:netrw_browsex_viewer == '-', then netrwFileHandler() will be
1377 invoked first (see |netrw_filehandler|).
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001378
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001379 * for Windows 32 or 64, the url and FileProtocolHandler dlls are used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001380 * for Gnome (with gnome-open): gnome-open is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001381 * for KDE (with kfmclient) : kfmclient is used.
1382 * for Mac OS X : open is used.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001383 * otherwise the netrwFileHandler plugin is used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001384
1385The file's suffix is used by these various approaches to determine an
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001386appropriate application to use to "handle" these files. Such things as
1387OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
1388*.eps) can be handled.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001389
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001390 *netrw_filehandler*
Bram Moolenaar9964e462007-05-05 17:54:07 +00001391
1392The "x" map applies a function to a file, based on its extension. Of course,
1393the handler function must exist for it to be called!
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001394>
1395 Ex. mypgm.html x ->
Bram Moolenaar9964e462007-05-05 17:54:07 +00001396 NFH_html("scp://user@host/some/path/mypgm.html")
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001397<
Bram Moolenaar9964e462007-05-05 17:54:07 +00001398Users may write their own netrw File Handler functions to support more
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001399suffixes with special handling. See <autoload/netrwFileHandlers.vim> for
Bram Moolenaar9964e462007-05-05 17:54:07 +00001400examples on how to make file handler functions. As an example: >
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001401
Bram Moolenaar9964e462007-05-05 17:54:07 +00001402 " NFH_suffix(filename)
1403 fun! NFH_suffix(filename)
1404 ..do something special with filename..
1405 endfun
1406<
1407These functions need to be defined in some file in your .vim/plugin
1408(vimfiles\plugin) directory. Vim's function names may not have punctuation
1409characters (except for the underscore) in them. To support suffices that
1410contain such characters, netrw will first convert the suffix using the
1411following table: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001412
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001413 @ -> AT ! -> EXCLAMATION % -> PERCENT
1414 : -> COLON = -> EQUAL ? -> QUESTION
Bram Moolenaar9964e462007-05-05 17:54:07 +00001415 , -> COMMA - -> MINUS ; -> SEMICOLON
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001416 $ -> DOLLAR + -> PLUS ~ -> TILDE
1417<
Bram Moolenaar9964e462007-05-05 17:54:07 +00001418So, for example: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001419
Bram Moolenaar9964e462007-05-05 17:54:07 +00001420 file.rcs,v -> NFH_rcsCOMMAv()
1421<
1422If more such translations are necessary, please send me email: >
1423 NdrOchip at ScampbellPfamily.AbizM - NOSPAM
1424with a request.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001425
Bram Moolenaar446cb832008-06-24 21:56:24 +00001426Associated setting variable: |g:netrw_browsex_viewer|
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001427
Bram Moolenaar446cb832008-06-24 21:56:24 +00001428 *netrw-curdir*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001429DELETING BOOKMARKS *netrw-mB* {{{2
1430
1431To delete a bookmark, use >
1432
1433 {cnt}mB
1434<
1435Related Topics:
1436 |netrw-gb| how to return (go) to a bookmark
1437 |netrw-mb| how to make a bookmark
1438 |netrw-qb| how to list bookmarks
1439
1440
Bram Moolenaar446cb832008-06-24 21:56:24 +00001441DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001442
Bram Moolenaar446cb832008-06-24 21:56:24 +00001443If files have not been marked with |netrw-mf|: (local marked file list)
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001444
Bram Moolenaar446cb832008-06-24 21:56:24 +00001445 Deleting/removing files and directories involves moving the cursor to the
1446 file/directory to be deleted and pressing "D". Directories must be empty
1447 first before they can be successfully removed. If the directory is a
1448 softlink to a directory, then netrw will make two requests to remove the
1449 directory before succeeding. Netrw will ask for confirmation before doing
1450 the removal(s). You may select a range of lines with the "V" command
1451 (visual selection), and then pressing "D".
Bram Moolenaar9964e462007-05-05 17:54:07 +00001452
Bram Moolenaar446cb832008-06-24 21:56:24 +00001453If files have been marked with |netrw-mf|: (local marked file list)
1454
1455 Marked files (and empty directories) will be deleted; again, you'll be
1456 asked to confirm the deletion before it actually takes place.
1457
1458The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
1459used to control the attempts to remove files and directories. The
1460g:netrw_rm_cmd is used with files, and its default value is:
1461
1462 g:netrw_rm_cmd: ssh HOSTNAME rm
1463
1464The g:netrw_rmdir_cmd variable is used to support the removal of directories.
1465Its default value is:
1466
1467 g:netrw_rmdir_cmd: ssh HOSTNAME rmdir
1468
1469If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
1470to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
1471
1472 g:netrw_rmf_cmd: ssh HOSTNAME rm -f
1473
Bram Moolenaar15146672011-10-20 22:22:38 +02001474Related topics: |netrw-d|
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001475Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001476 |g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001477
1478
Bram Moolenaar446cb832008-06-24 21:56:24 +00001479*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001480*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001481DIRECTORY EXPLORATION COMMANDS {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001482
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001483 :[N]Explore[!] [dir]... Explore directory of current file *:Explore*
1484 :[N]Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore*
1485 :Rexplore ... Return to Explorer *:Rexplore*
1486 :[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
1487 :Texplore [dir]... Tab & Explore *:Texplore*
1488 :[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001489 :Lexplore [dir]... Left Explorer Toggle *:Lexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001490
1491 Used with :Explore **/pattern : (also see |netrw-starstar|)
1492 :Nexplore............. go to next matching file *:Nexplore*
1493 :Pexplore............. go to previous matching file *:Pexplore*
1494
1495:Explore will open the local-directory browser on the current file's
1496 directory (or on directory [dir] if specified). The window will be
1497 split only if the file has been modified, otherwise the browsing
1498 window will take over that window. Normally the splitting is taken
1499 horizontally.
1500:Explore! is like :Explore, but will use vertical splitting.
Bram Moolenaar8d043172014-01-23 14:24:41 +01001501:Lexplore [dir] toggles an Explorer window on the left hand side
1502 of the current tab It will open a netrw window on the current
1503 directory if [dir] is omitted.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001504:Sexplore will always split the window before invoking the local-directory
1505 browser. As with Explore, the splitting is normally done
1506 horizontally.
1507:Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically.
1508:Hexplore [dir] does an :Explore with |:belowright| horizontal splitting.
1509:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
1510:Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
1511:Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
Bram Moolenaar8d043172014-01-23 14:24:41 +01001512:Texplore [dir] does a |:tabnew| before generating the browser window
Bram Moolenaar446cb832008-06-24 21:56:24 +00001513
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001514By default, these commands use the current file's directory. However, one may
1515explicitly provide a directory (path) to use.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001516
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001517The [N] will override |g:netrw_winsize| to specify the quantity of rows and/or
1518columns the new explorer window should have.
1519
1520Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
1521user, is used to control the quantity of rows and/or columns new explorer
1522windows should have.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001523
1524:Rexplore This command is a little different from the others. When one
1525 edits a file, for example by pressing <cr> when atop a file in
1526 a netrw browser window, :Rexplore will return the display to
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001527 that of the last netrw browser window. It is a command version
1528 of the <2-leftmouse> map (which is only available under gvim and
Bram Moolenaar446cb832008-06-24 21:56:24 +00001529 cooperative terms).
1530
Bram Moolenaar8d043172014-01-23 14:24:41 +01001531Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
1532
Bram Moolenaar446cb832008-06-24 21:56:24 +00001533
1534*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat*
1535EXPLORING WITH STARS AND PATTERNS
1536
1537When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
1538following four styles, Explore generates a list of files which satisfy
1539the request. >
1540
1541 */filepat files in current directory which satisfy filepat
1542 **/filepat files in current directory or below which satisfy the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001543 file pattern
Bram Moolenaar446cb832008-06-24 21:56:24 +00001544 *//pattern files in the current directory which contain the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001545 pattern (vimgrep is used)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001546 **//pattern files in the current directory or below which contain
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001547 the pattern (vimgrep is used)
Bram Moolenaar572cb562005-08-05 21:35:02 +00001548<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001549The cursor will be placed on the first file in the list. One may then
1550continue to go to subsequent files on that list via |:Nexplore| or to
1551preceding files on that list with |:Pexplore|. Explore will update the
1552directory and place the cursor appropriately.
1553
1554A plain >
1555 :Explore
1556will clear the explore list.
1557
1558If your console or gui produces recognizable shift-up or shift-down sequences,
1559then you'll likely find using shift-downarrow and shift-uparrow convenient.
1560They're mapped by netrw:
1561
1562 <s-down> == Nexplore, and
1563 <s-up> == Pexplore.
1564
1565As an example, consider
1566>
1567 :Explore */*.c
1568 :Nexplore
1569 :Nexplore
1570 :Pexplore
1571<
1572The status line will show, on the right hand side of the status line, a
1573message like "Match 3 of 20".
1574
1575Associated setting variables: |g:netrw_keepdir| |g:netrw_browse_split|
1576 |g:netrw_fastbrowse| |g:netrw_ftp_browse_reject|
1577 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1578 |g:netrw_ftp_timelist_cmd| |g:netrw_list_cmd|
1579 |g:netrw_liststyle|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001580
1581
Bram Moolenaar446cb832008-06-24 21:56:24 +00001582DISPLAYING INFORMATION ABOUT FILE *netrw-qf* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001583
Bram Moolenaar446cb832008-06-24 21:56:24 +00001584With the cursor atop a filename, pressing "qf" will reveal the file's size
1585and last modification timestamp. Currently this capability is only available
1586for local files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001587
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001588
Bram Moolenaar446cb832008-06-24 21:56:24 +00001589EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001590
Bram Moolenaar446cb832008-06-24 21:56:24 +00001591The "<ctrl-h>" map brings up a requestor allowing the user to change the
1592file/directory hiding list contained in |g:netrw_list_hide|. The hiding list
1593consists of one or more patterns delimited by commas. Files and/or
1594directories satisfying these patterns will either be hidden (ie. not shown) or
1595be the only ones displayed (see |netrw-a|).
1596
1597The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
1598hiding list and the hiding of files or directories that begin with ".".
1599
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001600As an example, >
1601 let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
1602Effectively, this makes the effect of a |netrw-gh| command the initial setting.
1603What it means:
1604
1605 \(^\|\s\s\) : if the line begins with the following, -or-
1606 two consecutive spaces are encountered
1607 \zs : start the hiding match now
1608 \. : if it now begins with a dot
1609 \S\+ : and is followed by one or more non-whitespace
1610 characters
1611
Bram Moolenaar446cb832008-06-24 21:56:24 +00001612Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
1613Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001614
Bram Moolenaar15146672011-10-20 22:22:38 +02001615 *netrw-sort-sequence*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001616EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
1617
1618When "Sorted by" is name, one may specify priority via the sorting sequence
1619(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
1620name-listing by suffix, although any pattern will do. Patterns are delimited
1621by commas. The default sorting sequence is (all one line):
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001622
1623For Unix: >
1624 '[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
1625 \.info$,\.swp$,\.bak$,\~$'
1626<
1627Otherwise: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001628 '[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
1629 \.swp$,\.bak$,\~$'
1630<
1631The lone * is where all filenames not covered by one of the other patterns
1632will end up. One may change the sorting sequence by modifying the
1633g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
1634using the "S" map.
1635
Bram Moolenaarc236c162008-07-13 17:41:49 +00001636Related topics: |netrw-s| |netrw-S|
1637Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001638
1639
Bram Moolenaar97d62492012-11-15 21:28:22 +01001640EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X*
1641
1642Pressing X while the cursor is atop an executable file will yield a prompt
1643using the filename asking for any arguments. Upon pressing a [return], netrw
1644will then call |system()| with that command and arguments. The result will
1645be displayed by |:echomsg|, and so |:messages| will repeat display of the
1646result. Ansi escape sequences will be stripped out.
1647
1648
Bram Moolenaaradc21822011-04-01 18:03:16 +02001649FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
1650
1651Remote symbolic links (ie. those listed via ssh or ftp) are problematic
1652in that it is difficult to tell whether they link to a file or to a
1653directory.
1654
1655To force treatment as a file: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001656 gf
Bram Moolenaaradc21822011-04-01 18:03:16 +02001657<
1658To force treatment as a directory: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001659 gd
Bram Moolenaaradc21822011-04-01 18:03:16 +02001660<
1661
Bram Moolenaar446cb832008-06-24 21:56:24 +00001662GOING UP *netrw--* {{{2
1663
1664To go up a directory, press "-" or press the <cr> when atop the ../ directory
1665entry in the listing.
1666
1667Netrw will use the command in |g:netrw_list_cmd| to perform the directory
1668listing operation after changing HOSTNAME to the host specified by the
1669user-provided url. By default netrw provides the command as:
1670
1671 ssh HOSTNAME ls -FLa
1672
1673where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
1674read. Naturally, the user may override this command with whatever is
1675preferred. The NetList function which implements remote browsing
1676expects that directories will be flagged by a trailing slash.
1677
1678
1679HIDING FILES OR DIRECTORIES *netrw-a* *netrw-hiding* {{{2
1680
1681Netrw's browsing facility allows one to use the hiding list in one of three
1682ways: ignore it, hide files which match, and show only those files which
1683match.
1684
1685If no files have been marked via |netrw-mf|:
1686
1687The "a" map allows the user to cycle through the three hiding modes.
1688
1689The |g:netrw_list_hide| variable holds a comma delimited list of patterns
1690based on regular expressions (ex. ^.*\.obj$,^\.) which specify the hiding list.
1691(also see |netrw-ctrl-h|) To set the hiding list, use the <c-h> map. As an
1692example, to hide files which begin with a ".", one may use the <c-h> map to
1693set the hiding list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*'
1694in one's <.vimrc>). One may then use the "a" key to show all files, hide
1695matching files, or to show only the matching files.
1696
1697 Example: \.[ch]$
1698 This hiding list command will hide/show all *.c and *.h files.
1699
1700 Example: \.c$,\.h$
1701 This hiding list command will also hide/show all *.c and *.h
1702 files.
1703
1704Don't forget to use the "a" map to select the mode (normal/hiding/show) you
1705want!
1706
1707If files have been marked using |netrw-mf|, then this command will:
1708
1709 if showing all files or non-hidden files:
1710 modify the g:netrw_list_hide list by appending the marked files to it
1711 and showing only non-hidden files.
1712
1713 else if showing hidden files only:
1714 modify the g:netrw_list_hide list by removing the marked files from it
1715 and showing only non-hidden files.
1716 endif
1717
1718 *netrw-gh* *netrw-hide*
1719As a quick shortcut, one may press >
1720 gh
1721to toggle between hiding files which begin with a period (dot) and not hiding
1722them.
1723
Bram Moolenaar8d043172014-01-23 14:24:41 +01001724Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001725Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
1726
Bram Moolenaar8d043172014-01-23 14:24:41 +01001727 *netrw-gitignore*
1728Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
1729|g:netrw_list_hide| automatically hides all git-ignored files.
1730
1731'netrw_gitignore#Hide' searches for patterns in the following files:
1732 './.gitignore'
1733 './.git/info/exclude'
1734 global gitignore file: `git config --global core.excludesfile`
1735 system gitignore file: `git config --system core.excludesfile`
1736
1737Files that do not exist, are ignored.
1738Git-ignore patterns are taken from existing files, and converted to patterns for
1739hiding files. For example, if you had '*.log' in your '.gitignore' file, it
1740would be converted to '.*\.log'.
1741
1742To use this function, simply assign it's output to |g:netrw_list_hide| option.
1743
1744 Example: let g:netrw_list_hide= netrw_gitignore#Hide()
1745 Git-ignored files are hidden in Netrw.
1746
1747 Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
1748 Function can take additional files with git-ignore patterns.
1749
1750 Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
1751 Combining 'netrw_gitignore#Hide' with custom patterns.
1752
1753
Bram Moolenaar446cb832008-06-24 21:56:24 +00001754IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001755
1756Especially with the remote directory browser, constantly entering the password
1757is tedious.
1758
Bram Moolenaar9964e462007-05-05 17:54:07 +00001759For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00001760tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip
1761for setting up no-password ssh and scp and discusses associated security
Bram Moolenaar9964e462007-05-05 17:54:07 +00001762issues. It used to be available at http://hacks.oreilly.com/pub/h/66 ,
1763but apparently that address is now being redirected to some "hackzine".
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001764I'll attempt a summary based on that article and on a communication from
1765Ben Schmidt:
Bram Moolenaar843ee412004-06-30 16:16:41 +00001766
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001767 1. Generate a public/private key pair on the local machine
1768 (ssh client): >
1769 ssh-keygen -t rsa
1770 (saving the file in ~/.ssh/id_rsa as prompted)
1771<
1772 2. Just hit the <CR> when asked for passphrase (twice) for no
1773 passphrase. If you do use a passphrase, you will also need to use
1774 ssh-agent so you only have to type the passphrase once per session.
1775 If you don't use a passphrase, simply logging onto your local
1776 computer or getting access to the keyfile in any way will suffice
1777 to access any ssh servers which have that key authorized for login.
1778
1779 3. This creates two files: >
1780 ~/.ssh/id_rsa
1781 ~/.ssh/id_rsa.pub
1782<
1783 4. On the target machine (ssh server): >
1784 cd
1785 mkdir -p .ssh
1786 chmod 0700 .ssh
1787<
1788 5. On your local machine (ssh client): (one line) >
1789 ssh {serverhostname}
1790 cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
1791<
1792 or, for OpenSSH, (one line) >
1793 ssh {serverhostname}
1794 cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
1795<
1796You can test it out with >
1797 ssh {serverhostname}
1798and you should be log onto the server machine without further need to type
1799anything.
1800
1801If you decided to use a passphrase, do: >
1802 ssh-agent $SHELL
1803 ssh-add
1804 ssh {serverhostname}
1805You will be prompted for your key passphrase when you use ssh-add, but not
1806subsequently when you use ssh. For use with vim, you can use >
1807 ssh-agent vim
1808and, when next within vim, use >
1809 :!ssh-add
1810Alternatively, you can apply ssh-agent to the terminal you're planning on
1811running vim in: >
1812 ssh-agent xterm &
1813and do ssh-add whenever you need.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001814
Bram Moolenaar9964e462007-05-05 17:54:07 +00001815For Windows, folks on the vim mailing list have mentioned that Pageant helps
1816with avoiding the constant need to enter the password.
Bram Moolenaar433f7c82006-03-21 21:29:36 +00001817
Bram Moolenaar446cb832008-06-24 21:56:24 +00001818Kingston Fung wrote about another way to avoid constantly needing to enter
1819passwords:
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001820
Bram Moolenaar446cb832008-06-24 21:56:24 +00001821 In order to avoid the need to type in the password for scp each time, you
1822 provide a hack in the docs to set up a non password ssh account. I found a
1823 better way to do that: I can use a regular ssh account which uses a
1824 password to access the material without the need to key-in the password
1825 each time. It's good for security and convenience. I tried ssh public key
1826 authorization + ssh-agent, implementing this, and it works! Here are two
1827 links with instructions:
1828
1829 http://www.ibm.com/developerworks/library/l-keyc2/
1830 http://sial.org/howto/openssh/publickey-auth/
1831
1832
Bram Moolenaar8d043172014-01-23 14:24:41 +01001833 Ssh hints:
1834
1835 Thomer Gil has provided a hint on how to speed up netrw+ssh:
1836 http://thomer.com/howtos/netrw_ssh.html
1837
1838 Alex Young has several hints on speeding ssh up:
1839 http://usevim.com/2012/03/16/editing-remote-files/
1840
1841
Bram Moolenaar446cb832008-06-24 21:56:24 +00001842LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
1843
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001844Pressing "qb" (query bookmarks) will list both the bookmarked directories and
1845directory traversal history.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001846
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001847Related Topics:
1848 |netrw-gb| how to return (go) to a bookmark
1849 |netrw-mb| how to make a bookmark
1850 |netrw-mB| how to delete bookmarks
1851 |netrw-u| change to a predecessor directory via the history stack
1852 |netrw-U| change to a successor directory via the history stack
Bram Moolenaar446cb832008-06-24 21:56:24 +00001853
1854MAKING A NEW DIRECTORY *netrw-d* {{{2
1855
1856With the "d" map one may make a new directory either remotely (which depends
1857on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001858global variable g:netrw_localmkdir). Netrw will issue a request for the new
Bram Moolenaar446cb832008-06-24 21:56:24 +00001859directory's name. A bare <CR> at that point will abort the making of the
1860directory. Attempts to make a local directory that already exists (as either
1861a file or a directory) will be detected, reported on, and ignored.
1862
Bram Moolenaar15146672011-10-20 22:22:38 +02001863Related topics: |netrw-D|
Bram Moolenaar8d043172014-01-23 14:24:41 +01001864Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
1865 |g:netrw_remote_mkdir| |netrw-%|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001866
1867
1868MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* {{{2
1869
1870By default, |g:netrw_keepdir| is 1. This setting means that the current
Bram Moolenaarff034192013-04-24 18:51:19 +02001871directory will not track the browsing directory. (done for backwards
1872compatibility with v6's file explorer).
Bram Moolenaar446cb832008-06-24 21:56:24 +00001873
Bram Moolenaarff034192013-04-24 18:51:19 +02001874Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00001875track netrw's browsing directory.
1876
1877However, given the default setting for g:netrw_keepdir of 1 where netrw
1878maintains its own separate notion of the current directory, in order to make
1879the two directories the same, use the "c" map (just type c). That map will
1880set Vim's notion of the current directory to netrw's current browsing
1881directory.
1882
1883Associated setting variable: |g:netrw_keepdir|
1884
1885MARKING FILES *netrw-mf* {{{2
1886 (also see |netrw-mr|)
1887
1888One may mark files with the cursor atop a filename and then pressing "mf".
1889With gvim, one may also mark files with <s-leftmouse>. The following netrw
1890maps make use of marked files:
1891
1892 |netrw-a| Hide marked files/directories
1893 |netrw-D| Delete marked files/directories
1894 |netrw-mc| Copy marked files to target
1895 |netrw-md| Apply vimdiff to marked files
1896 |netrw-me| Edit marked files
Bram Moolenaarff034192013-04-24 18:51:19 +02001897 |netrw-mF| Unmark marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00001898 |netrw-mg| Apply vimgrep to marked files
1899 |netrw-mm| Move marked files
1900 |netrw-mp| Print marked files
1901 |netrw-mt| Set target for |netrw-mm| and |netrw-mc|
1902 |netrw-mT| Generate tags using marked files
1903 |netrw-mx| Apply shell command to marked files
1904 |netrw-mz| Compress/Decompress marked files
Bram Moolenaarff034192013-04-24 18:51:19 +02001905 |netrw-qF| Mark files using quickfix list
Bram Moolenaar446cb832008-06-24 21:56:24 +00001906 |netrw-O| Obtain marked files
1907 |netrw-R| Rename marked files
1908
1909One may unmark files one at a time the same way one marks them; ie. place
1910the cursor atop a marked file and press "mf". This process also works
1911with <s-leftmouse> using gvim. One may unmark all files by pressing
1912"mu" (see |netrw-mu|).
1913
Bram Moolenaaradc21822011-04-01 18:03:16 +02001914Marked files are highlighted using the "netrwMarkFile" highlighting group,
1915which by default is linked to "Identifier" (see Identifier under
1916|group-name|). You may change the highlighting group by putting something
1917like >
1918
1919 highlight clear netrwMarkFile
1920 hi link netrwMarkFile ..whatever..
1921<
1922into $HOME/.vim/after/syntax/netrw.vim .
1923
Bram Moolenaar8d043172014-01-23 14:24:41 +01001924If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
1925mark one or more files. You may mark multiple files by dragging the shifted
1926leftmouse. (see |netrw-mouse|)
1927
Bram Moolenaar446cb832008-06-24 21:56:24 +00001928*markfilelist* *global_markfilelist* *local_markfilelist*
1929All marked files are entered onto the global marked file list; there is only
1930one such list. In addition, every netrw buffer also has its own local marked
1931file list; since netrw buffers are associated with specific directories, this
1932means that each directory has its own local marked file list. The various
1933commands which operate on marked files use one or the other of the marked file
1934lists.
1935
1936
Bram Moolenaarff034192013-04-24 18:51:19 +02001937UNMARKING FILES *netrw-mF* {{{2
1938 (also see |netrw-mf|)
1939
1940This command will unmark all files in the current buffer. One may also use
1941mf (|netrw-mf|) on a specific file to unmark just that file.
1942
1943
1944MARKING FILES BY QUICKFIX LIST *netrw-qF*
1945 (also see |netrw-mf|)
1946
1947One may convert the |quickfix-error-lists| into a marked file list using
1948"qF". You may then proceed with commands such as me (|netrw-me|) to
1949edit them. Quickfix error lists are generated, for example, by calls
1950to |:vimgrep|.
1951
1952
Bram Moolenaar446cb832008-06-24 21:56:24 +00001953MARKING FILES BY REGULAR EXPRESSION *netrw-mr* {{{2
1954 (also see |netrw-mf|)
1955
1956One may also mark files by pressing "mr"; netrw will then issue a prompt,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001957"Enter regexp: ". You may then enter a shell-style regular expression such
1958as *.c$ (see |glob()|). For remote systems, glob() doesn't work -- so netrw
1959converts "*" into ".*" (see |regexp|) and marks files based on that. In the
1960future I may make it possible to use |regexp|s instead of glob()-style
1961expressions (yet-another-option).
Bram Moolenaar446cb832008-06-24 21:56:24 +00001962
1963
1964MARKED FILES: ARBITRARY COMMAND *netrw-mx* {{{2
1965 (See |netrw-mf| and |netrw-mr| for how to mark files)
1966 (uses the local marked-file list)
1967
1968Upon activation of the "mx" map, netrw will query the user for some (external)
1969command to be applied to all marked files. All "%"s in the command will be
1970substituted with the name of each marked file in turn. If no "%"s are in the
1971command, then the command will be followed by a space and a marked filename.
1972
1973
1974MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
1975 (See |netrw-mf| and |netrw-mr| for how to mark files)
1976 (uses the local marked file list)
1977
1978If any marked files are compressed, then "mz" will decompress them.
1979If any marked files are decompressed, then "mz" will compress them
1980using the command specified by |g:netrw_compress|; by default,
1981that's "gzip".
1982
1983For decompression, netrw provides a |Dictionary| of suffices and their
1984associated decompressing utilities; see |g:netrw_decompress|.
1985
1986Associated setting variables: |g:netrw_compress| |g:netrw_decompress|
1987
1988MARKED FILES: COPYING *netrw-mc* {{{2
1989 (See |netrw-mf| and |netrw-mr| for how to mark files)
1990 (Uses the global marked file list)
1991
1992Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02001993select file(s) (see |netrw-mf|), and press "mc". The copy is done
1994from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001995
1996Associated setting variable: |g:netrw_localcopycmd| |g:netrw_ssh_cmd|
1997
1998MARKED FILES: DIFF *netrw-md* {{{2
1999 (See |netrw-mf| and |netrw-mr| for how to mark files)
2000 (uses the global marked file list)
2001
2002Use |vimdiff| to visualize difference between selected files (two or
2003three may be selected for this). Uses the global marked file list.
2004
2005MARKED FILES: EDITING *netrw-me* {{{2
2006 (See |netrw-mf| and |netrw-mr| for how to mark files)
2007 (uses the global marked file list)
2008
2009This command will place the marked files on the |arglist| and commence
2010editing them. One may return the to explorer window with |:Rexplore|.
Bram Moolenaarff034192013-04-24 18:51:19 +02002011(use |:n| and |:p| to edit next and previous files in the arglist)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002012
2013MARKED FILES: GREP *netrw-mg* {{{2
2014 (See |netrw-mf| and |netrw-mr| for how to mark files)
2015 (uses the global marked file list)
2016
Bram Moolenaarff034192013-04-24 18:51:19 +02002017This command will apply |:vimgrep| to the marked files.
2018The command will ask for the requested pattern; one may then enter: >
2019
Bram Moolenaar446cb832008-06-24 21:56:24 +00002020 /pattern/[g][j]
2021 ! /pattern/[g][j]
2022 pattern
2023<
Bram Moolenaarff034192013-04-24 18:51:19 +02002024In the cases of "j" option usage as shown above, "mg" will winnow the current
2025marked file list to just those possessing the specified pattern.
2026Thus, one may use >
2027 mr ...file-pattern
2028 mg ..contents-pattern
2029to have a marked file list satisfying the file-pattern but containing the
2030desried contents-pattern.
2031
Bram Moolenaar446cb832008-06-24 21:56:24 +00002032MARKED FILES: HIDING AND UNHIDING BY SUFFIX *netrw-mh* {{{2
2033 (See |netrw-mf| and |netrw-mr| for how to mark files)
2034 (uses the local marked file list)
2035
2036This command extracts the suffices of the marked files and toggles their
2037presence on the hiding list. Please note that marking the same suffix
2038this way multiple times will result in the suffix's presence being toggled
2039for each file (so an even quantity of marked files having the same suffix
2040is the same as not having bothered to select them at all).
2041
2042Related topics: |netrw-a| |g:netrw_list_hide|
2043
2044MARKED FILES: MOVING *netrw-mm* {{{2
2045 (See |netrw-mf| and |netrw-mr| for how to mark files)
2046 (uses the global marked file list)
2047
Bram Moolenaare37d50a2008-08-06 17:06:04 +00002048 WARNING: moving files is more dangerous than copying them.
2049 A file being moved is first copied and then deleted; if the
2050 copy operation fails and the delete succeeds, you will lose
2051 the file. Either try things out with unimportant files
2052 first or do the copy and then delete yourself using mc and D.
2053 Use at your own risk!
2054
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002055Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02002056select file(s) (see |netrw-mf|), and press "mm". The move is done
2057from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002058
2059Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
2060
2061MARKED FILES: PRINTING *netrw-mp* {{{2
2062 (See |netrw-mf| and |netrw-mr| for how to mark files)
2063 (uses the local marked file list)
2064
2065Netrw will apply the |:hardcopy| command to marked files. What it does
2066is open each file in a one-line window, execute hardcopy, then close the
2067one-line window.
2068
2069
2070MARKED FILES: SOURCING *netrw-ms* {{{2
2071 (See |netrw-mf| and |netrw-mr| for how to mark files)
2072 (uses the local marked file list)
2073
2074Netrw will source the marked files (using vim's |:source| command)
2075
2076
Bram Moolenaarff034192013-04-24 18:51:19 +02002077MARKED FILES: SETTING THE TARGET DIRECTORY *netrw-mt* {{{2
2078 (See |netrw-mf| and |netrw-mr| for how to mark files)
2079
2080Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):
2081
2082 * If the cursor is atop a file name, then the netrw window's currently
2083 displayed directory is used for the copy/move-to target.
2084
2085 * Also, if the cursor is in the banner, then the netrw window's currently
2086 displayed directory is used for the copy/move-to target.
2087 Unless the target already is the current directory. In which case,
2088 remove the target.
2089
2090 * However, if the cursor is atop a directory name, then that directory is
2091 used for the copy/move-to target
2092
2093There is only one copy/move-to target per vim session; ie. the target is a
2094script variable (see |s:var|) and is shared between all netrw windows (in an
2095instance of vim).
2096
2097When using menus and gvim, netrw provides a "Targets" entry which allows one
2098to pick a target from the list of bookmarks and history.
2099
2100Related topics:
2101 Marking Files......................................|netrw-mf|
2102 Marking Files by Regular Expression................|netrw-mr|
2103 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2104 Marked Files: Target Directory Using History.......|netrw-Th|
2105
2106
Bram Moolenaar446cb832008-06-24 21:56:24 +00002107MARKED FILES: TAGGING *netrw-mT* {{{2
2108 (See |netrw-mf| and |netrw-mr| for how to mark files)
2109 (uses the global marked file list)
2110
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002111The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
Bram Moolenaar446cb832008-06-24 21:56:24 +00002112"ctags") to marked files. For remote browsing, in order to create a tags file
2113netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
2114this to work on remote systems. For your local system, see |ctags| on how to
2115get a version. I myself use hdrtags, currently available at
Bram Moolenaar97d62492012-11-15 21:28:22 +01002116http://www.drchip.org/astronaut/src/index.html , and have >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002117
2118 let g:netrw_ctags= "hdrtag"
2119<
2120in my <.vimrc>.
2121
2122When a remote set of files are tagged, the resulting tags file is "obtained";
2123ie. a copy is transferred to the local system's directory. The local tags
2124file is then modified so that one may use it through the network. The
2125modification is concerns the names of the files in the tags; each filename is
2126preceded by the netrw-compatible url used to obtain it. When one subsequently
2127uses one of the go to tag actions (|tags|), the url will be used by netrw to
2128edit the desired file and go to the tag.
2129
Bram Moolenaarc236c162008-07-13 17:41:49 +00002130Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002131
Bram Moolenaarff034192013-04-24 18:51:19 +02002132MARKED FILES: TARGET DIRECTORY USING BOOKMARKS *netrw-Tb* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002133
Bram Moolenaarff034192013-04-24 18:51:19 +02002134Sets the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002135
Bram Moolenaarff034192013-04-24 18:51:19 +02002136The |netrw-qb| map will give you a list of bookmarks (and history).
2137One may choose one of the bookmarks to become your marked file
2138target by using [count]Tb (default count: 1).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002139
Bram Moolenaarff034192013-04-24 18:51:19 +02002140Related topics:
2141 Listing Bookmarks and History......................|netrw-qb|
2142 Marked Files: Setting The Target Directory.........|netrw-mt|
2143 Marked Files: Target Directory Using History.......|netrw-Th|
2144 Marking Files......................................|netrw-mf|
2145 Marking Files by Regular Expression................|netrw-mr|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002146
Bram Moolenaar446cb832008-06-24 21:56:24 +00002147
Bram Moolenaarff034192013-04-24 18:51:19 +02002148MARKED FILES: TARGET DIRECTORY USING HISTORY *netrw-Th* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002149
Bram Moolenaarff034192013-04-24 18:51:19 +02002150Sets the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|).
2151
2152The |netrw-qb| map will give you a list of history (and bookmarks).
2153One may choose one of the history entries to become your marked file
2154target by using [count]Th (default count: 0; ie. the current directory).
2155
2156Related topics:
2157 Listing Bookmarks and History......................|netrw-qb|
2158 Marked Files: Setting The Target Directory.........|netrw-mt|
2159 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2160 Marking Files......................................|netrw-mf|
2161 Marking Files by Regular Expression................|netrw-mr|
2162
Bram Moolenaar446cb832008-06-24 21:56:24 +00002163
2164MARKED FILES: UNMARKING *netrw-mu* {{{2
2165 (See |netrw-mf| and |netrw-mr| for how to mark files)
2166
2167The "mu" mapping will unmark all currently marked files.
2168
Bram Moolenaar15146672011-10-20 22:22:38 +02002169 *netrw-browser-settings*
Bram Moolenaar446cb832008-06-24 21:56:24 +00002170NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
2171
Bram Moolenaar15146672011-10-20 22:22:38 +02002172(if you're interested in the netrw file transfer settings, see |netrw-options|
2173 and |netrw-protocol|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002174
2175The <netrw.vim> browser provides settings in the form of variables which
2176you may modify; by placing these settings in your <.vimrc>, you may customize
2177your browsing preferences. (see also: |netrw-settings|)
2178>
2179 --- -----------
2180 Var Explanation
2181 --- -----------
Bram Moolenaar8d043172014-01-23 14:24:41 +01002182< *g:netrw_altfile* some like |CTRL-^| to return to the last
2183 edited file. Choose that by setting this
2184 parameter to 1.
2185 Others like |CTRL-^| to return to the
2186 netrw browsing buffer. Choose that by setting
2187 this parameter to 0.
2188 default: =0
2189
2190 *g:netrw_alto* change from above splitting to below splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002191 by setting this variable (see |netrw-o|)
2192 default: =&sb (see |'sb'|)
2193
Bram Moolenaarff034192013-04-24 18:51:19 +02002194 *g:netrw_altv* change from left splitting to right splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002195 by setting this variable (see |netrw-v|)
2196 default: =&spr (see |'spr'|)
2197
Bram Moolenaarff034192013-04-24 18:51:19 +02002198 *g:netrw_banner* enable/suppress the banner
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002199 =0: suppress the banner
2200 =1: banner is enabled (default)
2201 NOTE: suppressing the banner is a new feature
2202 which may cause problems.
2203
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002204 *g:netrw_bannerbackslash* if this variable exists and is not zero, the
2205 banner will be displayed with backslashes
2206 rather than forward slashes.
2207
Bram Moolenaarff034192013-04-24 18:51:19 +02002208 *g:netrw_browse_split* when browsing, <cr> will open the file by:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002209 =0: re-using the same window
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002210 =1: horizontally splitting the window first
2211 =2: vertically splitting the window first
Bram Moolenaar446cb832008-06-24 21:56:24 +00002212 =3: open file in new tab
2213 =4: act like "P" (ie. open previous window)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002214 Note that |g:netrw_preview| may be used
2215 to get vertical splitting instead of
2216 horizontal splitting.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002217
Bram Moolenaar8d043172014-01-23 14:24:41 +01002218 Related topics:
2219 |netrw-cr| |netrw-C|
2220 |g:netrw_alto| |g:netrw_altv|
2221
Bram Moolenaarff034192013-04-24 18:51:19 +02002222 *g:netrw_browsex_viewer* specify user's preference for a viewer: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002223 "kfmclient exec"
2224 "gnome-open"
2225< If >
2226 "-"
2227< is used, then netrwFileHandler() will look for
2228 a script/function to handle the given
2229 extension. (see |netrw_filehandler|).
2230
Bram Moolenaarff034192013-04-24 18:51:19 +02002231 *g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002232 Windows: "cacls FILENAME /e /p PERM"
2233 Used to change access permission for a file.
2234
Bram Moolenaarff034192013-04-24 18:51:19 +02002235 *g:netrw_compress* ="gzip"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002236 Will compress marked files with this
2237 command
2238
Bram Moolenaarff034192013-04-24 18:51:19 +02002239 *g:Netrw_corehandler* Allows one to specify something additional
Bram Moolenaar15146672011-10-20 22:22:38 +02002240 to do when handling <core> files via netrw's
2241 browser's "x" command (see |netrw-x|). If
2242 present, g:Netrw_corehandler specifies
2243 either one or more function references
2244 (see |Funcref|). (the capital g:Netrw...
2245 is required its holding a function reference)
2246
2247
Bram Moolenaarff034192013-04-24 18:51:19 +02002248 *g:netrw_ctags* ="ctags"
2249 The default external program used to create
2250 tags
Bram Moolenaarc236c162008-07-13 17:41:49 +00002251
Bram Moolenaarff034192013-04-24 18:51:19 +02002252 *g:netrw_cursor* = 2 (default)
Bram Moolenaaradc21822011-04-01 18:03:16 +02002253 This option controls the use of the
2254 |'cursorline'| (cul) and |'cursorcolumn'|
2255 (cuc) settings by netrw:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002256
Bram Moolenaaradc21822011-04-01 18:03:16 +02002257 Value Thin-Long-Tree Wide
2258 =0 u-cul u-cuc u-cul u-cuc
2259 =1 u-cul u-cuc cul u-cuc
2260 =2 cul u-cuc cul u-cuc
2261 =3 cul u-cuc cul cuc
2262 =4 cul cuc cul cuc
2263
2264 Where
2265 u-cul : user's |'cursorline'| setting used
2266 u-cuc : user's |'cursorcolumn'| setting used
2267 cul : |'cursorline'| locally set
2268 cuc : |'cursorcolumn'| locally set
2269
Bram Moolenaarff034192013-04-24 18:51:19 +02002270 *g:netrw_decompress* = { ".gz" : "gunzip" ,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002271 ".bz2" : "bunzip2" ,
2272 ".zip" : "unzip" ,
2273 ".tar" : "tar -xf"}
2274 A dictionary mapping suffices to
2275 decompression programs.
2276
Bram Moolenaaradc21822011-04-01 18:03:16 +02002277 *g:netrw_dirhistmax* =10: controls maximum quantity of past
2278 history. May be zero to supppress
2279 history.
2280 (related: |netrw-qb| |netrw-u| |netrw-U|)
2281
Bram Moolenaar97d62492012-11-15 21:28:22 +01002282 *g:netrw_dynamic_maxfilenamelen* =32: enables dynamic determination of
2283 |g:netrw_maxfilenamelen|, which affects
2284 local file long listing.
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002285 *g:netrw_errorlvl* =0: error levels greater than or equal to
2286 this are permitted to be displayed
2287 0: notes
2288 1: warnings
2289 2: errors
2290
Bram Moolenaarff034192013-04-24 18:51:19 +02002291 *g:netrw_fastbrowse* =0: slow speed directory browsing;
Bram Moolenaar446cb832008-06-24 21:56:24 +00002292 never re-uses directory listings,
2293 always obtains directory listings.
2294 =1: medium speed directory browsing;
2295 re-use directory listings only
2296 when remote directory browsing.
2297 (default value)
2298 =2: fast directory browsing;
2299 only obtains directory listings when the
2300 directory hasn't been seen before
2301 (or |netrw-ctrl-l| is used).
2302
2303 Fast browsing retains old directory listing
2304 buffers so that they don't need to be
2305 re-acquired. This feature is especially
2306 important for remote browsing. However, if
2307 a file is introduced or deleted into or from
2308 such directories, the old directory buffer
2309 becomes out-of-date. One may always refresh
2310 such a directory listing with |netrw-ctrl-l|.
2311 This option gives the user the choice of
2312 trading off accuracy (ie. up-to-date listing)
2313 versus speed.
2314
Bram Moolenaarff034192013-04-24 18:51:19 +02002315 *g:netrw_fname_escape* =' ?&;%'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002316 Used on filenames before remote reading/writing
Bram Moolenaar446cb832008-06-24 21:56:24 +00002317
Bram Moolenaarff034192013-04-24 18:51:19 +02002318 *g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
Bram Moolenaar446cb832008-06-24 21:56:24 +00002319 that can show up as "directories" and "files"
2320 in the listing. This pattern is used to
2321 remove such embedded messages. By default its
2322 value is:
2323 '^total\s\+\d\+$\|
2324 ^Trying\s\+\d\+.*$\|
2325 ^KERBEROS_V\d rejected\|
2326 ^Security extensions not\|
2327 No such file\|
2328 : connect to address [0-9a-fA-F:]*
2329 : No route to host$'
2330
Bram Moolenaarff034192013-04-24 18:51:19 +02002331 *g:netrw_ftp_list_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002332 listing. Defaults:
2333 unix or g:netrw_cygwin set: : "ls -lF"
2334 otherwise "dir"
2335
2336
Bram Moolenaarff034192013-04-24 18:51:19 +02002337 *g:netrw_ftp_sizelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002338 listing, sorted by size of file.
2339 Defaults:
2340 unix or g:netrw_cygwin set: : "ls -slF"
2341 otherwise "dir"
2342
Bram Moolenaarff034192013-04-24 18:51:19 +02002343 *g:netrw_ftp_timelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002344 listing, sorted by time of last modification.
2345 Defaults:
2346 unix or g:netrw_cygwin set: : "ls -tlF"
2347 otherwise "dir"
2348
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002349 *g:netrw_glob_escape* ='[]*?`{~$' (unix)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002350 ='[]*?`{$' (windows
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002351 These characters in directory names are
Bram Moolenaar446cb832008-06-24 21:56:24 +00002352 escaped before applying glob()
2353
Bram Moolenaarff034192013-04-24 18:51:19 +02002354 *g:netrw_hide* Controlled by the "a" map (see |netrw-a|)
2355 =0 : show all
2356 =1 : show not-hidden files
2357 =2 : show hidden files only
Bram Moolenaar446cb832008-06-24 21:56:24 +00002358 default: =0
2359
Bram Moolenaarff034192013-04-24 18:51:19 +02002360 *g:netrw_home* The home directory for where bookmarks and
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002361 history are saved (as .netrwbook and
2362 .netrwhist).
2363 default: the first directory on the
2364 |'runtimepath'|
2365
Bram Moolenaarff034192013-04-24 18:51:19 +02002366 *g:netrw_keepdir* =1 (default) keep current directory immune from
Bram Moolenaar446cb832008-06-24 21:56:24 +00002367 the browsing directory.
2368 =0 keep the current directory the same as the
2369 browsing directory.
2370 The current browsing directory is contained in
2371 b:netrw_curdir (also see |netrw-c|)
2372
Bram Moolenaarff034192013-04-24 18:51:19 +02002373 *g:netrw_list_cmd* command for listing remote directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002374 default: (if ssh is executable)
2375 "ssh HOSTNAME ls -FLa"
2376
Bram Moolenaarff034192013-04-24 18:51:19 +02002377 *g:netrw_liststyle* Set the default listing style:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002378 = 0: thin listing (one file per line)
2379 = 1: long listing (one file per line with time
2380 stamp information and file size)
2381 = 2: wide listing (multiple files in columns)
2382 = 3: tree style listing
Bram Moolenaar8d043172014-01-23 14:24:41 +01002383
Bram Moolenaarff034192013-04-24 18:51:19 +02002384 *g:netrw_list_hide* comma separated pattern list for hiding files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002385 Patterns are regular expressions (see |regexp|)
Bram Moolenaar8d043172014-01-23 14:24:41 +01002386 There's some special support for git-ignore
2387 files: you may add the output from the helper
2388 function 'netrw_gitignore#Hide() automatically
2389 hiding all gitignored files.
2390 For more details see |netrw-gitignore|.
2391
2392 Examples:
2393 let g:netrw_list_hide= '.*\.swp$'
2394 let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
2395 default: ""
Bram Moolenaar446cb832008-06-24 21:56:24 +00002396
Bram Moolenaarff034192013-04-24 18:51:19 +02002397 *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002398 ="copy" Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002399 Copies marked files (|netrw-mf|) to target
2400 directory (|netrw-mt|, |netrw-mc|)
2401
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002402 *g:netrw_localmkdir* command for making a local directory
2403 default: "mkdir"
2404
Bram Moolenaarff034192013-04-24 18:51:19 +02002405 *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002406 ="move" Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002407 Moves marked files (|netrw-mf|) to target
2408 directory (|netrw-mt|, |netrw-mm|)
2409
Bram Moolenaarff034192013-04-24 18:51:19 +02002410 *g:netrw_localrmdir* remove directory command (rmdir)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002411 default: "rmdir"
2412
Bram Moolenaarff034192013-04-24 18:51:19 +02002413 *g:netrw_maxfilenamelen* =32 by default, selected so as to make long
Bram Moolenaar446cb832008-06-24 21:56:24 +00002414 listings fit on 80 column displays.
2415 If your screen is wider, and you have file
2416 or directory names longer than 32 bytes,
2417 you may set this option to keep listings
2418 columnar.
2419
Bram Moolenaarff034192013-04-24 18:51:19 +02002420 *g:netrw_mkdir_cmd* command for making a remote directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002421 via ssh (also see |g:netrw_remote_mkdir|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002422 default: "ssh USEPORT HOSTNAME mkdir"
2423
Bram Moolenaar251e1912011-06-19 05:09:16 +02002424 *g:netrw_mousemaps* =1 (default) enables mouse buttons while
2425 browsing to:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002426 leftmouse : open file/directory
2427 shift-leftmouse : mark file
2428 middlemouse : same as P
2429 rightmouse : remove file/directory
2430 =0: disables mouse maps
2431
Bram Moolenaar15146672011-10-20 22:22:38 +02002432 *g:netrw_nobeval* doesn't exist (default)
2433 If this variable exists, then balloon
2434 evaluation will be suppressed
2435 (see |'ballooneval'|)
2436
Bram Moolenaarff034192013-04-24 18:51:19 +02002437 *g:netrw_remote_mkdir* command for making a local directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002438 via ftp (also see |g:netrw_mkdir_cmd|)
2439 default: "mkdir"
2440
Bram Moolenaarff034192013-04-24 18:51:19 +02002441 *g:netrw_retmap* if it exists and is set to one, then:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002442 * if in a netrw-selected file, AND
2443 * no normal-mode <2-leftmouse> mapping exists,
2444 then the <2-leftmouse> will be mapped for easy
Bram Moolenaar446cb832008-06-24 21:56:24 +00002445 return to the netrw browser window.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002446 example: click once to select and open a file,
2447 double-click to return.
2448
2449 Note that one may instead choose to:
2450 * let g:netrw_retmap= 1, AND
2451 * nmap <silent> YourChoice <Plug>NetrwReturn
2452 and have another mapping instead of
2453 <2-leftmouse> to invoke the return.
2454
2455 You may also use the |:Rexplore| command to do
2456 the same thing.
2457
Bram Moolenaar446cb832008-06-24 21:56:24 +00002458 default: =0
2459
Bram Moolenaarff034192013-04-24 18:51:19 +02002460 *g:netrw_rm_cmd* command for removing files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002461 default: "ssh USEPORT HOSTNAME rm"
2462
Bram Moolenaarff034192013-04-24 18:51:19 +02002463 *g:netrw_rmdir_cmd* command for removing directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002464 default: "ssh USEPORT HOSTNAME rmdir"
2465
Bram Moolenaarff034192013-04-24 18:51:19 +02002466 *g:netrw_rmf_cmd* command for removing softlinks
Bram Moolenaar446cb832008-06-24 21:56:24 +00002467 default: "ssh USEPORT HOSTNAME rm -f"
2468
Bram Moolenaarff034192013-04-24 18:51:19 +02002469 *g:netrw_sort_by* sort by "name", "time", or "size"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002470 default: "name"
2471
Bram Moolenaarff034192013-04-24 18:51:19 +02002472 *g:netrw_sort_direction* sorting direction: "normal" or "reverse"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002473 default: "normal"
2474
Bram Moolenaarff034192013-04-24 18:51:19 +02002475 *g:netrw_sort_options* sorting is done using |:sort|; this
Bram Moolenaarc236c162008-07-13 17:41:49 +00002476 variable's value is appended to the
2477 sort command. Thus one may ignore case,
2478 for example, with the following in your
2479 .vimrc: >
2480 let g:netrw_sort_options="i"
2481< default: ""
2482
Bram Moolenaarff034192013-04-24 18:51:19 +02002483 *g:netrw_sort_sequence* when sorting by name, first sort by the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002484 comma-separated pattern sequence. Note that
2485 the filigree added to indicate filetypes
2486 should be accounted for in your pattern.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002487 default: '[\/]$,*,\.bak$,\.o$,\.h$,
2488 \.info$,\.swp$,\.obj$'
2489
Bram Moolenaarff034192013-04-24 18:51:19 +02002490 *g:netrw_special_syntax* If true, then certain files will be shown
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002491 using special syntax in the browser:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002492
2493 netrwBak : *.bak
2494 netrwCompress: *.gz *.bz2 *.Z *.zip
2495 netrwData : *.dat
2496 netrwHdr : *.h
2497 netrwLib : *.a *.so *.lib *.dll
2498 netrwMakefile: [mM]akefile *.mak
2499 netrwObj : *.o *.obj
2500 netrwTags : tags ANmenu ANtags
Bram Moolenaaradc21822011-04-01 18:03:16 +02002501 netrwTilde : *~
Bram Moolenaar446cb832008-06-24 21:56:24 +00002502 netrwTmp : tmp* *tmp
2503
2504 These syntax highlighting groups are linked
2505 to Folded or DiffChange by default
2506 (see |hl-Folded| and |hl-DiffChange|), but
2507 one may put lines like >
2508 hi link netrwCompress Visual
2509< into one's <.vimrc> to use one's own
2510 preferences.
2511
Bram Moolenaarff034192013-04-24 18:51:19 +02002512 *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002513 messages, banners, and whatnot that one doesn't
2514 want masquerading as "directories" and "files".
2515 Use this pattern to remove such embedded
2516 messages. By default its value is:
2517 '^total\s\+\d\+$'
2518
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002519 *g:netrw_ssh_cmd* One may specify an executable command
2520 to use instead of ssh for remote actions
2521 such as listing, file removal, etc.
2522 default: ssh
2523
Bram Moolenaar446cb832008-06-24 21:56:24 +00002524
Bram Moolenaarff034192013-04-24 18:51:19 +02002525 *g:netrw_tmpfile_escape* =' &;'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002526 escape() is applied to all temporary files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002527 to escape these characters.
2528
Bram Moolenaarff034192013-04-24 18:51:19 +02002529 *g:netrw_timefmt* specify format string to vim's strftime().
Bram Moolenaar446cb832008-06-24 21:56:24 +00002530 The default, "%c", is "the preferred date
2531 and time representation for the current
2532 locale" according to my manpage entry for
2533 strftime(); however, not all are satisfied
2534 with it. Some alternatives:
2535 "%a %d %b %Y %T",
2536 " %a %Y-%m-%d %I-%M-%S %p"
2537 default: "%c"
2538
Bram Moolenaarff034192013-04-24 18:51:19 +02002539 *g:netrw_use_noswf* netrw normally avoids writing swapfiles
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002540 for browser buffers. However, under some
Bram Moolenaar446cb832008-06-24 21:56:24 +00002541 systems this apparently is causing nasty
2542 ml_get errors to appear; if you're getting
2543 ml_get errors, try putting
2544 let g:netrw_use_noswf= 0
2545 in your .vimrc.
2546
Bram Moolenaarff034192013-04-24 18:51:19 +02002547 *g:netrw_winsize* specify initial size of new windows made with
Bram Moolenaar446cb832008-06-24 21:56:24 +00002548 "o" (see |netrw-o|), "v" (see |netrw-v|),
Bram Moolenaar251e1912011-06-19 05:09:16 +02002549 |:Hexplore| or |:Vexplore|. The g:netrw_winsize
2550 is an integer describing the percentage of the
2551 current netrw buffer's window to be used for
2552 the new window.
Bram Moolenaar15146672011-10-20 22:22:38 +02002553 If g:netrw_winsize is less than zero, then
2554 the absolute value of g:netrw_winsize lines
2555 or columns will be used for the new window.
Bram Moolenaar251e1912011-06-19 05:09:16 +02002556 default: 50 (for 50%)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002557
Bram Moolenaarff034192013-04-24 18:51:19 +02002558 *g:netrw_xstrlen* Controls how netrw computes string lengths,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002559 including multi-byte characters' string
Bram Moolenaar446cb832008-06-24 21:56:24 +00002560 length. (thanks to N Weibull, T Mechelynck)
2561 =0: uses Vim's built-in strlen()
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002562 =1: number of codepoints (Latin a + combining
Bram Moolenaar446cb832008-06-24 21:56:24 +00002563 circumflex is two codepoints) (DEFAULT)
2564 =2: number of spacing codepoints (Latin a +
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002565 combining circumflex is one spacing
Bram Moolenaar446cb832008-06-24 21:56:24 +00002566 codepoint; a hard tab is one; wide and
2567 narrow CJK are one each; etc.)
2568 =3: virtual length (counting tabs as anything
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002569 between 1 and |'tabstop'|, wide CJK as 2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002570 rather than 1, Arabic alif as zero when
2571 immediately preceded by lam, one
2572 otherwise, etc)
2573
Bram Moolenaarff034192013-04-24 18:51:19 +02002574 *g:NetrwTopLvlMenu* This variable specifies the top level
Bram Moolenaar446cb832008-06-24 21:56:24 +00002575 menu name; by default, it's "Netrw.". If
2576 you wish to change this, do so in your
2577 .vimrc.
2578
2579NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible* {{{2
2580
2581Netrw has been designed to handle user options by saving them, setting the
2582options to something that's compatible with netrw's needs, and then restoring
2583them. However, the autochdir option: >
2584 :set acd
2585is problematical. Autochdir sets the current directory to that containing the
2586file you edit; this apparently also applies to directories. In other words,
2587autochdir sets the current directory to that containing the "file" (even if
2588that "file" is itself a directory).
2589
Bram Moolenaar15146672011-10-20 22:22:38 +02002590NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00002591
2592With the NetrwSettings.vim plugin, >
2593 :NetrwSettings
2594will bring up a window with the many variables that netrw uses for its
Bram Moolenaar1afcace2005-11-25 19:54:28 +00002595settings. You may change any of their values; when you save the file, the
2596settings therein will be used. One may also press "?" on any of the lines for
2597help on what each of the variables do.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00002598
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002599(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)
Bram Moolenaar9964e462007-05-05 17:54:07 +00002600
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00002601
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00002602==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00002603OBTAINING A FILE *netrw-O* {{{2
2604
2605If there are no marked files:
2606
2607 When browsing a remote directory, one may obtain a file under the cursor
2608 (ie. get a copy on your local machine, but not edit it) by pressing the O
2609 key.
2610
2611If there are marked files:
2612
2613 The marked files will be obtained (ie. a copy will be transferred to your
2614 local machine, but not set up for editing).
2615
2616Only ftp and scp are supported for this operation (but since these two are
2617available for browsing, that shouldn't be a problem). The status bar will
2618then show, on its right hand side, a message like "Obtaining filename". The
2619statusline will be restored after the transfer is complete.
2620
2621Netrw can also "obtain" a file using the local browser. Netrw's display
2622of a directory is not necessarily the same as Vim's "current directory",
2623unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select
2624a file using the local browser (by putting the cursor on it) and pressing
2625"O" will then "obtain" the file; ie. copy it to Vim's current directory.
2626
2627Related topics:
2628 * To see what the current directory is, use |:pwd|
2629 * To make the currently browsed directory the current directory, see |netrw-c|
2630 * To automatically make the currently browsed directory the current
2631 directory, see |g:netrw_keepdir|.
2632
Bram Moolenaaradc21822011-04-01 18:03:16 +02002633 *netrw-createfile*
Bram Moolenaarc236c162008-07-13 17:41:49 +00002634OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%*
2635
2636To open a file in netrw's current directory, press "%". This map will
2637query the user for a new filename; an empty file by that name will be
2638placed in the netrw's current directory (ie. b:netrw_curdir).
2639
Bram Moolenaar8d043172014-01-23 14:24:41 +01002640Related topics: |netrw-d|
2641
Bram Moolenaarc236c162008-07-13 17:41:49 +00002642
Bram Moolenaar446cb832008-06-24 21:56:24 +00002643PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
2644
2645One may use a preview window by using the "p" key when the cursor is atop the
2646desired filename to be previewed. The display will then split to show both
2647the browser (where the cursor will remain) and the file (see |:pedit|).
2648By default, the split will be taken horizontally; one may use vertical
2649splitting if one has set |g:netrw_preview| first.
2650
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002651An interesting set of netrw settings is: >
2652
2653 let g:netrw_preview = 1
2654 let g:netrw_liststyle = 3
2655 let g:netrw_winsize = 30
2656
2657These will:
2658 1. Make vertical splitting the default for previewing files
2659 2. Make the default listing style "tree"
2660 3. When a vertical preview window is opened, the directory listing
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002661 will use only 30% of the columns available; the rest of the window
2662 is used for the preview window.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002663
2664PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
2665
2666To edit a file or directory in the previously used (last accessed) window (see
2667:he |CTRL-W_p|), press a "P". If there's only one window, then the one window
Bram Moolenaar15146672011-10-20 22:22:38 +02002668will be horizontally split (by default).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002669
2670If there's more than one window, the previous window will be re-used on
2671the selected file/directory. If the previous window's associated buffer
2672has been modified, and there's only one window with that buffer, then
2673the user will be asked if s/he wishes to save the buffer first (yes,
2674no, or cancel).
2675
Bram Moolenaarff034192013-04-24 18:51:19 +02002676Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02002677Associated setting variables:
2678 |g:netrw_alto| control above/below splitting
2679 |g:netrw_altv| control right/left splitting
2680 |g:netrw_preview| control horizontal vs vertical splitting
2681 |g:netrw_winsize| control initial sizing
2682
Bram Moolenaar446cb832008-06-24 21:56:24 +00002683
2684REFRESHING THE LISTING *netrw-ctrl-l* *netrw-ctrl_l* {{{2
2685
2686To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
2687hit the <cr> when atop the ./ directory entry in the listing. One may also
2688refresh a local directory by using ":e .".
2689
2690
Bram Moolenaarff034192013-04-24 18:51:19 +02002691REVERSING SORTING ORDER *netrw-r* *netrw-reverse* {{{2
2692
2693One may toggle between normal and reverse sorting order by pressing the
2694"r" key.
2695
2696Related topics: |netrw-s|
2697Associated setting variable: |g:netrw_sort_direction|
2698
2699
Bram Moolenaar446cb832008-06-24 21:56:24 +00002700RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R* {{{2
2701
2702If there are no marked files: (see |netrw-mf|)
2703
2704 Renaming/moving files and directories involves moving the cursor to the
2705 file/directory to be moved (renamed) and pressing "R". You will then be
2706 queried for where you want the file/directory to be moved. You may select
2707 a range of lines with the "V" command (visual selection), and then
2708 pressing "R".
2709
2710If there are marked files: (see |netrw-mf|)
2711
2712 Marked files will be renamed (moved). You will be queried as above in
2713 order to specify where you want the file/directory to be moved.
2714
2715 WARNING:~
2716
2717 Note that moving files is a dangerous operation; copies are safer. That's
2718 because a "move" for remote files is actually a copy + delete -- and if
2719 the copy fails and the delete does not, you may lose the file.
2720
2721The g:netrw_rename_cmd variable is used to implement renaming. By default its
2722value is:
2723
2724 ssh HOSTNAME mv
2725
2726One may rename a block of files and directories by selecting them with
2727the V (|linewise-visual|).
2728
2729
Bram Moolenaar446cb832008-06-24 21:56:24 +00002730SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
2731
2732One may select the sorting style by name, time, or (file) size. The "s" map
2733allows one to circulate amongst the three choices; the directory listing will
2734automatically be refreshed to reflect the selected style.
2735
2736Related topics: |netrw-r| |netrw-S|
2737Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
2738
2739
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002740SETTING EDITING WINDOW *netrw-C* {{{2
2741
2742One may select a netrw window for editing with the "C" mapping, or by setting
2743g:netrw_chgwin to the selected window number. Subsequent selection of a file
2744to edit (|netrw-cr|) will use that window.
2745
Bram Moolenaar8d043172014-01-23 14:24:41 +01002746Related topics: |netrw-cr| |g:netrw_browse_split|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002747Associated setting variables: |g:netrw_chgwin|
2748
2749
Bram Moolenaar446cb832008-06-24 21:56:24 +0000275010. Problems and Fixes *netrw-problems* {{{1
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002751
2752 (This section is likely to grow as I get feedback)
2753 (also see |netrw-debug|)
Bram Moolenaar488c6512005-08-11 20:09:58 +00002754 *netrw-p1*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002755 P1. I use windows 95, and my ftp dumps four blank lines at the
2756 end of every read.
2757
2758 See |netrw-fixup|, and put the following into your
2759 <.vimrc> file:
2760
2761 let g:netrw_win95ftp= 1
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00002762
Bram Moolenaar488c6512005-08-11 20:09:58 +00002763 *netrw-p2*
Bram Moolenaar9964e462007-05-05 17:54:07 +00002764 P2. I use Windows, and my network browsing with ftp doesn't sort by
2765 time or size! -or- The remote system is a Windows server; why
2766 don't I get sorts by time or size?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002767
2768 Windows' ftp has a minimal support for ls (ie. it doesn't
2769 accept sorting options). It doesn't support the -F which
2770 gives an explanatory character (ABC/ for "ABC is a directory").
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002771 Netrw then uses "dir" to get both its thin and long listings.
Bram Moolenaar9964e462007-05-05 17:54:07 +00002772 If you think your ftp does support a full-up ls, put the
2773 following into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002774
Bram Moolenaar9964e462007-05-05 17:54:07 +00002775 let g:netrw_ftp_list_cmd = "ls -lF"
2776 let g:netrw_ftp_timelist_cmd= "ls -tlF"
2777 let g:netrw_ftp_sizelist_cmd= "ls -slF"
2778<
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002779 Alternatively, if you have cygwin on your Windows box, put
Bram Moolenaar9964e462007-05-05 17:54:07 +00002780 into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002781
2782 let g:netrw_cygwin= 1
Bram Moolenaar9964e462007-05-05 17:54:07 +00002783<
2784 This problem also occurs when the remote system is Windows.
2785 In this situation, the various g:netrw_ftp_[time|size]list_cmds
2786 are as shown above, but the remote system will not correctly
2787 modify its listing behavior.
2788
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002789
Bram Moolenaar488c6512005-08-11 20:09:58 +00002790 *netrw-p3*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002791 P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw
2792 used ssh! That wasn't what I asked for...
2793
2794 Netrw has two methods for browsing remote directories: ssh
2795 and ftp. Unless you specify ftp specifically, ssh is used.
2796 When it comes time to do download a file (not just a directory
2797 listing), netrw will use the given protocol to do so.
2798
Bram Moolenaar488c6512005-08-11 20:09:58 +00002799 *netrw-p4*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002800 P4. I would like long listings to be the default.
2801
Bram Moolenaar446cb832008-06-24 21:56:24 +00002802 Put the following statement into your |.vimrc|: >
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00002803
Bram Moolenaar446cb832008-06-24 21:56:24 +00002804 let g:netrw_liststyle= 1
2805<
2806 Check out |netrw-browser-var| for more customizations that
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00002807 you can set.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002808
Bram Moolenaar488c6512005-08-11 20:09:58 +00002809 *netrw-p5*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002810 P5. My times come up oddly in local browsing
2811
2812 Does your system's strftime() accept the "%c" to yield dates
Bram Moolenaarff034192013-04-24 18:51:19 +02002813 such as "Sun Apr 27 11:49:23 1997"? If not, do a
2814 "man strftime" and find out what option should be used. Then
2815 put it into your |.vimrc|: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002816
Bram Moolenaar446cb832008-06-24 21:56:24 +00002817 let g:netrw_timefmt= "%X" (where X is the option)
2818<
Bram Moolenaar488c6512005-08-11 20:09:58 +00002819 *netrw-p6*
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00002820 P6. I want my current directory to track my browsing.
2821 How do I do that?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002822
Bram Moolenaar446cb832008-06-24 21:56:24 +00002823 Put the following line in your |.vimrc|:
2824>
Bram Moolenaar433f7c82006-03-21 21:29:36 +00002825 let g:netrw_keepdir= 0
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002826<
Bram Moolenaar9964e462007-05-05 17:54:07 +00002827 *netrw-p7*
2828 P7. I use Chinese (or other non-ascii) characters in my filenames, and
2829 netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00002830
Bram Moolenaar9964e462007-05-05 17:54:07 +00002831 (taken from an answer provided by Wu Yongwei on the vim
2832 mailing list)
2833 I now see the problem. You code page is not 936, right? Vim
2834 seems only able to open files with names that are valid in the
2835 current code page, as are many other applications that do not
2836 use the Unicode version of Windows APIs. This is an OS-related
2837 issue. You should not have such problems when the system
2838 locale uses UTF-8, such as modern Linux distros.
2839
2840 (...it is one more reason to recommend that people use utf-8!)
2841
2842 *netrw-p8*
2843 P8. I'm getting "ssh is not executable on your system" -- what do I
2844 do?
2845
2846 (Dudley Fox) Most people I know use putty for windows ssh. It
2847 is a free ssh/telnet application. You can read more about it
2848 here:
2849
2850 http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also:
2851
2852 (Marlin Unruh) This program also works for me. It's a single
2853 executable, so he/she can copy it into the Windows\System32
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002854 folder and create a shortcut to it.
Bram Moolenaar9964e462007-05-05 17:54:07 +00002855
2856 (Dudley Fox) You might also wish to consider plink, as it
2857 sounds most similar to what you are looking for. plink is an
2858 application in the putty suite.
2859
2860 http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink
2861
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002862 (Vissale Neang) Maybe you can try OpenSSH for windows, which
Bram Moolenaar9964e462007-05-05 17:54:07 +00002863 can be obtained from:
2864
2865 http://sshwindows.sourceforge.net/
2866
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002867 It doesn't need the full Cygwin package.
Bram Moolenaar9964e462007-05-05 17:54:07 +00002868
2869 (Antoine Mechelynck) For individual Unix-like programs needed
2870 for work in a native-Windows environment, I recommend getting
2871 them from the GnuWin32 project on sourceforge if it has them:
2872
2873 http://gnuwin32.sourceforge.net/
2874
2875 Unlike Cygwin, which sets up a Unix-like virtual machine on
2876 top of Windows, GnuWin32 is a rewrite of Unix utilities with
2877 Windows system calls, and its programs works quite well in the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002878 cmd.exe "Dos box".
Bram Moolenaar9964e462007-05-05 17:54:07 +00002879
2880 (dave) Download WinSCP and use that to connect to the server.
2881 In Preferences > Editors, set gvim as your editor:
2882
2883 - Click "Add..."
2884 - Set External Editor (adjust path as needed, include
2885 the quotes and !.! at the end):
2886 "c:\Program Files\Vim\vim70\gvim.exe" !.!
2887 - Check that the filetype in the box below is
2888 {asterisk}.{asterisk} (all files), or whatever types
2889 you want (cec: change {asterisk} to * ; I had to
2890 write it that way because otherwise the helptags
Bram Moolenaar446cb832008-06-24 21:56:24 +00002891 system thinks it's a tag)
2892 - Make sure it's at the top of the listbox (click it,
2893 then click "Up" if it's not)
Bram Moolenaar9964e462007-05-05 17:54:07 +00002894 If using the Norton Commander style, you just have to hit <F4>
2895 to edit a file in a local copy of gvim.
2896
2897 (Vit Gottwald) How to generate public/private key and save
2898 public key it on server: >
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02002899 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
2900 (8.3 Getting ready for public key authentication)
Bram Moolenaar9964e462007-05-05 17:54:07 +00002901<
Bram Moolenaar446cb832008-06-24 21:56:24 +00002902 How to use a private key with 'pscp': >
2903
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02002904 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
2905 (5.2.4 Using public key authentication with PSCP)
Bram Moolenaar9964e462007-05-05 17:54:07 +00002906<
Bram Moolenaar446cb832008-06-24 21:56:24 +00002907 (Ben Schmidt) I find the ssh included with cwRsync is
2908 brilliant, and install cwRsync or cwRsyncServer on most
2909 Windows systems I come across these days. I guess COPSSH,
2910 packed by the same person, is probably even better for use as
2911 just ssh on Windows, and probably includes sftp, etc. which I
2912 suspect the cwRsync doesn't, though it might
2913
Bram Moolenaar9964e462007-05-05 17:54:07 +00002914 (cec) To make proper use of these suggestions above, you will
2915 need to modify the following user-settable variables in your
2916 .vimrc:
2917
Bram Moolenaar446cb832008-06-24 21:56:24 +00002918 |g:netrw_ssh_cmd| |g:netrw_list_cmd| |g:netrw_mkdir_cmd|
2919 |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd|
Bram Moolenaar9964e462007-05-05 17:54:07 +00002920
2921 The first one (|g:netrw_ssh_cmd|) is the most important; most
2922 of the others will use the string in g:netrw_ssh_cmd by
2923 default.
2924 *netrw-p9* *netrw-ml_get*
2925 P9. I'm browsing, changing directory, and bang! ml_get errors
2926 appear and I have to kill vim. Any way around this?
2927
2928 Normally netrw attempts to avoid writing swapfiles for
2929 its temporary directory buffers. However, on some systems
2930 this attempt appears to be causing ml_get errors to
2931 appear. Please try setting |g:netrw_use_noswf| to 0
2932 in your <.vimrc>: >
2933 let g:netrw_use_noswf= 0
2934<
Bram Moolenaar446cb832008-06-24 21:56:24 +00002935 *netrw-p10*
2936 P10. I'm being pestered with "[something] is a directory" and
2937 "Press ENTER or type command to continue" prompts...
2938
2939 The "[something] is a directory" prompt is issued by Vim,
2940 not by netrw, and there appears to be no way to work around
2941 it. Coupled with the default cmdheight of 1, this message
2942 causes the "Press ENTER..." prompt. So: read |hit-enter|;
2943 I also suggest that you set your |'cmdheight'| to 2 (or more) in
2944 your <.vimrc> file.
2945
2946 *netrw-p11*
2947 P11. I want to have two windows; a thin one on the left and my editing
Bram Moolenaar251e1912011-06-19 05:09:16 +02002948 window on the right. How may I accomplish this?
Bram Moolenaar446cb832008-06-24 21:56:24 +00002949
2950 * Put the following line in your <.vimrc>:
2951 let g:netrw_altv = 1
2952 * Edit the current directory: :e .
2953 * Select some file, press v
2954 * Resize the windows as you wish (see |CTRL-W_<| and
2955 |CTRL-W_>|). If you're using gvim, you can drag
2956 the separating bar with your mouse.
2957 * When you want a new file, use ctrl-w h to go back to the
2958 netrw browser, select a file, then press P (see |CTRL-W_h|
2959 and |netrw-P|). If you're using gvim, you can press
2960 <leftmouse> in the browser window and then press the
2961 <middlemouse> to select the file.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00002962
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002963 *netrw-p12*
2964 P12. My directory isn't sorting correctly, or unwanted letters are
2965 appearing in the listed filenames, or things aren't lining
2966 up properly in the wide listing, ...
2967
2968 This may be due to an encoding problem. I myself usually use
2969 utf-8, but really only use ascii (ie. bytes from 32-126).
2970 Multibyte encodings use two (or more) bytes per character.
2971 You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
2972
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002973 *netrw-p13*
2974 P13. I'm a Windows + putty + ssh user, and when I attempt to browse,
2975 the directories are missing trailing "/"s so netrw treats them
2976 as file transfers instead of as attempts to browse
2977 subdirectories. How may I fix this?
2978
2979 (mikeyao) If you want to use vim via ssh and putty under Windows,
2980 try combining the use of pscp/psftp with plink. pscp/psftp will
2981 be used to connect and plink will be used to execute commands on
2982 the server, for example: list files and directory using 'ls'.
2983
2984 These are the settings I use to do this:
2985>
2986 " list files, it's the key setting, if you haven't set,
2987 " you will get a blank buffer
2988 let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
2989 " if you haven't add putty directory in system path, you should
2990 " specify scp/sftp command. For examples:
2991 "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
2992 "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
2993<
Bram Moolenaar251e1912011-06-19 05:09:16 +02002994 *netrw-p14*
2995 P14. I'd would like to speed up writes using Nwrite and scp/ssh
2996 style connections. How? (Thomer M. Gil)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002997
Bram Moolenaar251e1912011-06-19 05:09:16 +02002998 Try using ssh's ControlMaster and ControlPath (see the ssh_config
2999 man page) to share multiple ssh connections over a single network
3000 connection. That cuts out the cryptographic handshake on each
3001 file write, sometimes speeding it up by an order of magnitude.
3002 (see http://thomer.com/howtos/netrw_ssh.html)
3003 (included by permission)
3004
3005 Add the following to your ~/.ssh/config: >
3006
3007 # you change "*" to the hostname you care about
3008 Host *
3009 ControlMaster auto
3010 ControlPath /tmp/%r@%h:%p
3011
3012< Then create an ssh connection to the host and leave it running: >
3013
3014 ssh -N host.domain.com
3015
3016< Now remotely open a file with Vim's Netrw and enjoy the
3017 zippiness: >
3018
3019 vim scp://host.domain.com//home/user/.bashrc
3020<
3021 *netrw-p15*
3022 P15. How may I use a double-click instead of netrw's usual single click
3023 to open a file or directory? (Ben Fritz)
3024
3025 First, disable netrw's mapping with >
3026 let g:netrw_mousemaps= 0
3027< and then create a netrw buffer only mapping in
3028 $HOME/.vim/after/ftplugin/netrw.vim: >
3029 nmap <buffer> <2-leftmouse> <CR>
3030< Note that setting g:netrw_mousemaps to zero will turn off
3031 all netrw's mouse mappings, not just the <leftmouse> one.
3032 (see |g:netrw_mousemaps|)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003033
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003034==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +0000303511. Debugging Netrw Itself *netrw-debug* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003036
Bram Moolenaaradc21822011-04-01 18:03:16 +02003037The <netrw.vim> script is typically available as something like:
Bram Moolenaar488c6512005-08-11 20:09:58 +00003038>
Bram Moolenaar446cb832008-06-24 21:56:24 +00003039 /usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
3040 /usr/local/share/vim/vim7x/autoload/netrw.vim
Bram Moolenaaradc21822011-04-01 18:03:16 +02003041< -or- >
3042 /usr/local/share/vim/vim6x/plugin/netrwPlugin.vim
3043 /usr/local/share/vim/vim6x/autoload/netrw.vim
Bram Moolenaar488c6512005-08-11 20:09:58 +00003044<
Bram Moolenaar071d4272004-06-13 20:20:40 +00003045which is loaded automatically at startup (assuming :set nocp).
3046
3047 1. Get the <Decho.vim> script, available as:
3048
Bram Moolenaar97d62492012-11-15 21:28:22 +01003049 http://www.drchip.org/astronaut/vim/index.html#DECHO
Bram Moolenaar071d4272004-06-13 20:20:40 +00003050 or
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00003051 http://vim.sourceforge.net/scripts/script.php?script_id=120
Bram Moolenaar071d4272004-06-13 20:20:40 +00003052
Bram Moolenaar446cb832008-06-24 21:56:24 +00003053 It now comes as a "vimball"; if you're using vim 7.0 or earlier,
3054 you'll need to update vimball, too. See
Bram Moolenaar97d62492012-11-15 21:28:22 +01003055 http://www.drchip.org/astronaut/vim/index.html#VIMBALL
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003056
Bram Moolenaar446cb832008-06-24 21:56:24 +00003057 2. Edit the <netrw.vim> file by typing: >
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003058
3059 vim netrw.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00003060 :DechoOn
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003061 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003062<
3063 To restore to normal non-debugging behavior, re-edit <netrw.vim>
3064 and type >
Bram Moolenaar071d4272004-06-13 20:20:40 +00003065
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003066 vim netrw.vim
3067 :DechoOff
3068 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003069<
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003070 This command, provided by <Decho.vim>, will comment out all
3071 Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).
3072
Bram Moolenaar446cb832008-06-24 21:56:24 +00003073 3. Then bring up vim and attempt to evoke the problem by doing a
3074 transfer or doing some browsing. A set of messages should appear
3075 concerning the steps that <netrw.vim> took in attempting to
3076 read/write your file over the network in a separate tab.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003077
Bram Moolenaar9964e462007-05-05 17:54:07 +00003078 To save the file, use >
Bram Moolenaar8d043172014-01-23 14:24:41 +01003079
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003080 :tabnext
Bram Moolenaar9964e462007-05-05 17:54:07 +00003081 :set bt=
3082 :w! DBG
Bram Moolenaar8d043172014-01-23 14:24:41 +01003083
3084< Furthermore, it'd be helpful if you would type >
3085 :Dsep
3086< after each command you issue, thereby making it easier to
3087 associate which part of the debugging trace is due to which
3088 command.
3089
3090 Please send that information to <netrw.vim>'s maintainer, >
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00003091 NdrOchip at ScampbellPfamily.AbizM - NOSPAM
Bram Moolenaar9964e462007-05-05 17:54:07 +00003092<
Bram Moolenaar071d4272004-06-13 20:20:40 +00003093==============================================================================
Bram Moolenaar9964e462007-05-05 17:54:07 +0000309412. History *netrw-history* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003095
Bram Moolenaar8d043172014-01-23 14:24:41 +01003096 v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to
3097 return to the netrw directory listing
3098 Jul 13, 2013 * (Jonas Diemer) suggested changing
3099 a <cWORD> to <cfile>.
3100 Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
3101 use of mkdir did not produce directories
3102 following umask.
3103 Aug 27, 2013 * introduced |g:netrw_altfile| option
3104 Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
3105 when available, by default
3106 Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
3107 opening some directories properly from the
3108 command line.
3109 Nov 09, 2013 * |:Lexplore| introduced
3110 * (Ondrej Platek) reported an issue with
3111 netrw's trees (P15). Fixed.
3112 * (Jorge Solis) reported that "t" in
3113 tree mode caused netrw to forget its
3114 line position.
3115 Dec 05, 2013 * Added <s-leftmouse> file marking
3116 (see |netrw-mf|)
3117 Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
3118 strlen() instead s:Strlen() when handling
3119 multibyte chars with strpart()
3120 (ie. strpart() is byte oriented, not
3121 display-width oriented).
3122 Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
3123 and a portion of timestamps were wrongly
3124 highlighted with the directory color when
3125 setting `:let g:netrw_liststyle=1` on Windows.
3126 * (Paul Domaskis) noted that sometimes
3127 cursorline was activating in non-netrw
3128 windows. All but one setting of cursorline
3129 was done via setl; there was one that was
3130 overlooked. Fixed.
3131 Dec 24, 2013 * (esquifit) asked that netrw allow the
3132 /cygdrive prefix be a user-alterable
3133 parameter.
3134 Jan 02, 2014 * Fixed a problem with netrw-based ballon
3135 evaluation (ie. netrw#NetrwBaloonHelp()
3136 not having been loaded error messages)
3137 Jan 03, 2014 * Fixed a problem with tree listings
3138 * New command installed: |:Ntree|
3139 Jan 06, 2014 * (Ivan Brennan) reported a problem with
3140 |netrw-P|. Fixed.
3141 Jan 06, 2014 * Fixed a problem with |netrw-P| when the
3142 modified file was to be abandoned.
3143 Jan 15, 2014 * (Matteo Cavalleri) reported that when the
3144 banner is suppressed and tree listing is
3145 used, a blank line was left at the top of
3146 the display. Fixed.
3147 Jan 20, 2014 * (Gideon Go) reported that, in tree listing
3148 style, with a previous window open, that
3149 the wrong directory was being used to open
3150 a file. Fixed. (P21)
Bram Moolenaare6ae6222013-05-21 21:01:10 +02003151 v149: Apr 18, 2013 * in wide listing format, now have maps for
3152 w and b to move to next/previous file
3153 Apr 26, 2013 * one may now copy files in the same
3154 directory; netrw will issue requests for
3155 what names the files should be copied under
3156 Apr 29, 2013 * Trying Benzinger's problem again. Seems
3157 that commenting out the BufEnter and
3158 installing VimEnter (only) works. Weird
3159 problem! (tree listing, vim -O Dir1 Dir2)
3160 May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
3161 May 02, 2013 * introduced |g:netrw_bannerbackslash| as
3162 requested by Paul Domaskis.
Bram Moolenaar8d043172014-01-23 14:24:41 +01003163 Jul 03, 2013 * Explore now avoids splitting when a buffer
3164 will be hidden.
Bram Moolenaarff034192013-04-24 18:51:19 +02003165 v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct
3166 choice of listing style, hiding style, and
3167 sorting style
3168 v147: Nov 24, 2012 * (James McCoy) Even with g:netrw_dirhistmax
3169 at zero, the .vim/ directory would be
3170 created to support history/bookmarks. I've
3171 gone over netrw to suppress history and
3172 bookmarking when g:netrw_dirhistmax is zero.
3173 For instance, the menus will display
3174 (disabled) when attempts to use
3175 bookmarks/history are made.
3176 Nov 29, 2012 * (Kim Jang-hwan) reported that with
3177 g:Align_xstrlen set to 3 that the cursor was
3178 moved (linewise) after invocation. This
3179 problem also afflicted netrw.
3180 (see |g:netrw_xstrlen|) Fixed.
3181 Jan 21, 2013 * (mattn) provided a patch to insert some
3182 endifs needed with the code implementing
3183 |netrw-O|.
3184 Jan 24, 2013 * (John Szakmeister) found that remote file
3185 editing resulted in filetype options being
3186 overwritten by NetrwOptionRestore(). I
3187 moved filetype detect from NetrwGetFile()
3188 to NetrwOptionRestore.
3189 Feb 17, 2013 * (Yukhiro Nakadaira) provided a patch
3190 correcting some syntax errors.
3191 Feb 28, 2013 * (Ingo Karkat) provided a patch preventing
3192 receipt of an |E95| when revisiting a
3193 file://... style url.
3194 Mar 18, 2013 * (Gary Johnson) pointed out that changing
3195 cedit to <Esc> caused problems with visincr;
3196 the cedit setting is now bypassed in netrw too.
3197 Apr 02, 2013 * (Paul Domaskis) reported an undefined
3198 variable error (s:didstarstar) was
3199 occurring. It is now defined at
3200 initialization.
3201 * included additional sanity checking for the
3202 marked file functions.
3203 * included |netrw-qF| and special "j" option
3204 handling for |netrw-mg|
3205 Apr 12, 2013 * |netrw-u| and |netrw-U| now handle counts
3206 * the former mapping for "T" has been removed;
3207 in its place are new maps, |netrw-Tb| and |netrw-Th|.
3208 * the menu now supports a "Targets" entry for
3209 easier target selection. (see |netrw-mt|)
3210 * (Paul Domaskis) reported some problems with
3211 moving/copying files under Windows' gvim
3212 (ie. not cygwin). Fixed.
3213 * (Paul Mueller) provided a patch to get
3214 start and rundll working via |netrw-gx|
3215 by bypassing the user's |'shellslash'| option.
Bram Moolenaar97d62492012-11-15 21:28:22 +01003216 v146: Oct 20, 2012 * (David Kotchan) reported that under Windows,
3217 directories named with unusual characters
3218 such as "#" or "$" were not being listed
3219 properly.
3220 * (Kenny Lee) reported that the buffer list
3221 was being populated by netrw buffers.
3222 Netrw will now |:bwipe| netrw buffers
3223 upon editing a file if g:netrw_fastbrowse
3224 is zero and its not in tree listing style.
Bram Moolenaarff034192013-04-24 18:51:19 +02003225 * fixed a bug with s:NetrwInit() that
3226 prevented initialization with |Lists| and
3227 |Dictionaries|.
3228 * |netrw-mu| now unmarks marked-file lists
Bram Moolenaar97d62492012-11-15 21:28:22 +01003229 v145: Apr 05, 2012 * moved some command from a g:netrw_local_...
3230 format to g:netwr_local... format
3231 * included some NOTE level messages about
3232 commands that aren't executable
3233 * |g:netrw_errorlvl| (default: NOTE=0)
3234 option introduced
3235 May 18, 2012 * (Ilya Dogolazky) a scenario where a
3236 |g:netrw_fastbrowse| of zero did not
3237 have a local directory refreshed fixed.
3238 Jul 10, 2012 * (Donatas) |netrw-gb| wasn't working due
3239 to an incorrectly used variable.
3240 Aug 09, 2012 * (Bart Baker) netrw was doubling
3241 of entries after a split.
3242 * (code by Takahiro Yoshihara) implemented
3243 |g:netrw_dynamic_maxfilenamelen|
3244 Aug 31, 2012 * (Andrew Wong) netrw refresh overwriting
3245 the yank buffer.
3246 v144: Mar 12, 2012 * when |CTRL-W_s| or |CTRL-W_v| are used,
3247 or their wincmd equivalents, on a netrw
3248 buffer, the netrw's w: variables were
3249 not copied over. Fixed.
3250 Mar 13, 2012 * nbcd_curpos_{bufnr('%')} was commented
3251 out, and was mistakenly used during
3252 RestorePosn. Unfortunately, I'm not
3253 sure why it was commented out, so this
3254 "fix" may re-introduce an earlier problem.
3255 Mar 21, 2012 * included s:rexposn internally to make
3256 :Rex return the cursor to the same pos'n
3257 upon restoration of netrw buffer
3258 Mar 27, 2012 * (sjbesse) s:NetrwGetFile() needs to remove
3259 "/" from the netrw buffer's usual |'isk'|
3260 in order to allow "filetype detect" to work
3261 properly for scripts.
3262 v143: Jun 01, 2011 * |g:netrw_winsize| will accept a negative
3263 number; the absolute value of it will then
3264 be used to specify lines/columns instead of
3265 a percentage.
3266 Jul 05, 2011 * the "d" map now supports mkdir via ftp
3267 See |netrw-d| and |g:netrw_remote_mkdir|
3268 Jul 11, 2011 * Changed Explore!, Sexplore!, and Vexplore
3269 to use a percentage of |winwidth()| instead
3270 of a percentage of |winheight()|.
3271 Jul 11, 2011 * included support for https://... I'm just
3272 beginning to test this, however.
3273 Aug 01, 2011 * changed RestoreOptions to also restore
3274 cursor position in netrw buffers.
3275 Aug 12, 2011 * added a note about "%" to the balloon
3276 Aug 30, 2011 * if |g:netrw_nobeval| exists, then balloon
3277 evaluation is suppressed.
3278 Aug 31, 2011 * (Benjamin R Haskell) provided a patch that
3279 implements non-standard port handling for
3280 files opened via the remote browser.
3281 Aug 31, 2011 * Fixed a **//pattern Explorer bug
3282 Sep 15, 2011 * (reported by Francesco Campana) netrw
3283 now permits the "@" to be part of the
3284 user id (if there's an @ that appears
3285 to the right).
3286 Nov 21, 2011 * New option: |g:netrw_ftp_options|
3287 Dec 07, 2011 * (James Sinclair) provided a fix handling
3288 attempts to use a uid and password when
3289 they weren't defined. This affected
3290 NetWrite (NetRead already had that fix).
Bram Moolenaar071d4272004-06-13 20:20:40 +00003291
3292
3293==============================================================================
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100329413. Todo *netrw-todo* {{{1
3295
329607/29/09 : banner :|g:netrw_banner| can be used to suppress the
3297 suppression banner. This feature is new and experimental,
3298 so its in the process of being debugged.
329909/04/09 : "gp" : See if it can be made to work for remote systems.
3300 : See if it can be made to work with marked files.
3301
3302==============================================================================
330314. Credits *netrw-credits* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003304
3305 Vim editor by Bram Moolenaar (Thanks, Bram!)
3306 dav support by C Campbell
3307 fetch support by Bram Moolenaar and C Campbell
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00003308 ftp support by C Campbell <NdrOchip@ScampbellPfamily.AbizM>
Bram Moolenaar071d4272004-06-13 20:20:40 +00003309 http support by Bram Moolenaar <bram@moolenaar.net>
3310 rcp
3311 rsync support by C Campbell (suggested by Erik Warendorph)
3312 scp support by raf <raf@comdyn.com.au>
3313 sftp support by C Campbell
3314
3315 inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell
3316
3317 Jérôme Augé -- also using new buffer method with ftp+.netrc
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00003318 Bram Moolenaar -- obviously vim itself, :e and v:cmdarg use,
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00003319 fetch,...
Bram Moolenaar071d4272004-06-13 20:20:40 +00003320 Yasuhiro Matsumoto -- pointing out undo+0r problem and a solution
3321 Erik Warendorph -- for several suggestions (g:netrw_..._cmd
3322 variables, rsync etc)
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00003323 Doug Claar -- modifications to test for success with ftp
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00003324 operation
Bram Moolenaar071d4272004-06-13 20:20:40 +00003325
3326==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00003327Modelines: {{{1
Bram Moolenaar83bab712005-08-01 21:58:57 +00003328 vim:tw=78:ts=8:ft=help:norl:fdm=marker