blob: 9a75a95f237f7dca5efe5effe29d664697cec4f1 [file] [log] [blame]
Bram Moolenaar85850f32019-07-19 22:05:51 +02001*pi_netrw.txt* For Vim version 8.1. Last change: 2019 Jul 17
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 Moolenaarb0d45e72017-11-05 18:19:24 +01009Copyright: Copyright (C) 2017 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 Moolenaar8feef4f2015-01-07 16:57:10 +010020 *netrw*
Bram Moolenaar00a927d2010-05-14 23:24:24 +020021 *dav* *ftp* *netrw-file* *rcp* *scp*
22 *davs* *http* *netrw.vim* *rsync* *sftp*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010023 *fetch* *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|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010050 Banner Display......................................|netrw-I|
Bram Moolenaarff034192013-04-24 18:51:19 +020051 Bookmarking A Directory.............................|netrw-mb|
52 Browsing............................................|netrw-cr|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010053 Squeezing the Current Tree-Listing Directory........|netrw-s-cr|
Bram Moolenaarff034192013-04-24 18:51:19 +020054 Browsing With A Horizontally Split Window...........|netrw-o|
55 Browsing With A New Tab.............................|netrw-t|
56 Browsing With A Vertically Split Window.............|netrw-v|
57 Change Listing Style.(thin wide long tree)..........|netrw-i|
58 Changing To A Bookmarked Directory..................|netrw-gb|
59 Changing To A Predecessor Directory.................|netrw-u|
60 Changing To A Successor Directory...................|netrw-U|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010061 Customizing Browsing With A Special Handler.........|netrw-x|
Bram Moolenaarff034192013-04-24 18:51:19 +020062 Deleting Bookmarks..................................|netrw-mB|
63 Deleting Files Or Directories.......................|netrw-D|
64 Directory Exploring Commands........................|netrw-explore|
65 Exploring With Stars and Patterns...................|netrw-star|
66 Displaying Information About File...................|netrw-qf|
67 Edit File Or Directory Hiding List..................|netrw-ctrl-h|
68 Editing The Sorting Sequence........................|netrw-S|
69 Forcing treatment as a file or directory............|netrw-gd| |netrw-gf|
70 Going Up............................................|netrw--|
71 Hiding Files Or Directories.........................|netrw-a|
72 Improving Browsing..................................|netrw-ssh-hack|
73 Listing Bookmarks And History.......................|netrw-qb|
74 Making A New Directory..............................|netrw-d|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010075 Making The Browsing Directory The Current Directory.|netrw-cd|
Bram Moolenaarff034192013-04-24 18:51:19 +020076 Marking Files.......................................|netrw-mf|
77 Unmarking Files.....................................|netrw-mF|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010078 Marking Files By Location List......................|netrw-qL|
Bram Moolenaarff034192013-04-24 18:51:19 +020079 Marking Files By QuickFix List......................|netrw-qF|
80 Marking Files By Regular Expression.................|netrw-mr|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010081 Marked Files: Arbitrary Shell Command...............|netrw-mx|
82 Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
83 Marked Files: Arbitrary Vim Command.................|netrw-mv|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010084 Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010085 Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
Bram Moolenaarff034192013-04-24 18:51:19 +020086 Marked Files: Compression And Decompression.........|netrw-mz|
87 Marked Files: Copying...............................|netrw-mc|
88 Marked Files: Diff..................................|netrw-md|
89 Marked Files: Editing...............................|netrw-me|
90 Marked Files: Grep..................................|netrw-mg|
91 Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
92 Marked Files: Moving................................|netrw-mm|
93 Marked Files: Printing..............................|netrw-mp|
94 Marked Files: Sourcing..............................|netrw-ms|
95 Marked Files: Setting the Target Directory..........|netrw-mt|
96 Marked Files: Tagging...............................|netrw-mT|
97 Marked Files: Target Directory Using Bookmarks......|netrw-Tb|
98 Marked Files: Target Directory Using History........|netrw-Th|
99 Marked Files: Unmarking.............................|netrw-mu|
100 Netrw Browser Variables.............................|netrw-browser-var|
101 Netrw Browsing And Option Incompatibilities.........|netrw-incompatible|
102 Netrw Settings Window...............................|netrw-settings-window|
103 Obtaining A File....................................|netrw-O|
104 Preview Window......................................|netrw-p|
105 Previous Window.....................................|netrw-P|
106 Refreshing The Listing..............................|netrw-ctrl-l|
107 Reversing Sorting Order.............................|netrw-r|
108 Renaming Files Or Directories.......................|netrw-R|
109 Selecting Sorting Style.............................|netrw-s|
110 Setting Editing Window..............................|netrw-C|
11110. Problems and Fixes....................................|netrw-problems|
11211. Debugging Netrw Itself................................|netrw-debug|
11312. History...............................................|netrw-history|
11413. Todo..................................................|netrw-todo|
11514. Credits...............................................|netrw-credits|
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116
Bram Moolenaar071d4272004-06-13 20:20:40 +0000117==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00001182. Starting With Netrw *netrw-start* {{{1
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000119
Bram Moolenaar446cb832008-06-24 21:56:24 +0000120Netrw makes reading files, writing files, browsing over a network, and
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100121local browsing easy! First, make sure that you have plugins enabled, so
Bram Moolenaar446cb832008-06-24 21:56:24 +0000122you'll need to have at least the following in your <.vimrc>:
123(or see |netrw-activate|) >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000124
Bram Moolenaar9964e462007-05-05 17:54:07 +0000125 set nocp " 'compatible' is not set
126 filetype plugin on " plugins are enabled
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000127<
128(see |'cp'| and |:filetype-plugin-on|)
129
130Netrw supports "transparent" editing of files on other machines using urls
131(see |netrw-transparent|). As an example of this, let's assume you have an
Bram Moolenaar446cb832008-06-24 21:56:24 +0000132account on some other machine; if you can use scp, try: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000133
134 vim scp://hostname/path/to/file
135<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000136Want to make ssh/scp easier to use? Check out |netrw-ssh-hack|!
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000137
Bram Moolenaar446cb832008-06-24 21:56:24 +0000138So, what if you have ftp, not ssh/scp? That's easy, too; try >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000139
140 vim ftp://hostname/path/to/file
141<
142Want to make ftp simpler to use? See if your ftp supports a file called
143<.netrc> -- typically it goes in your home directory, has read/write
144permissions for only the user to read (ie. not group, world, other, etc),
145and has lines resembling >
146
147 machine HOSTNAME login USERID password "PASSWORD"
148 machine HOSTNAME login USERID password "PASSWORD"
149 ...
Bram Moolenaar9964e462007-05-05 17:54:07 +0000150 default login USERID password "PASSWORD"
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000151<
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200152Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
153
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200154 let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
Bram Moolenaar97d62492012-11-15 21:28:22 +0100155<
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100156Netrw will substitute the host's machine name for "MACHINE" from the URL it is
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200157attempting to open, and so one may specify >
158 userid
159 password
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200160for each site in a separate file: c:\Users\MyUserName\MachineName.
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200161
Bram Moolenaar446cb832008-06-24 21:56:24 +0000162Now about browsing -- when you just want to look around before editing a
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000163file. For browsing on your current host, just "edit" a directory: >
164
165 vim .
166 vim /home/userid/path
167<
168For browsing on a remote host, "edit" a directory (but make sure that
169the directory name is followed by a "/"): >
170
171 vim scp://hostname/
172 vim ftp://hostname/path/to/dir/
173<
174See |netrw-browse| for more!
175
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100176There are more protocols supported by netrw than just scp and ftp, too: see the
177next section, |netrw-externapp|, on how to use these external applications with
178netrw and vim.
179
Bram Moolenaar13600302014-05-22 18:26:40 +0200180PREVENTING LOADING *netrw-noload*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000181
182If you want to use plugins, but for some reason don't wish to use netrw, then
183you need to avoid loading both the plugin and the autoload portions of netrw.
184You may do so by placing the following two lines in your <.vimrc>: >
185
186 :let g:loaded_netrw = 1
187 :let g:loaded_netrwPlugin = 1
188<
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000189
190==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02001913. Netrw Reference *netrw-ref* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000192
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100193 Netrw supports several protocols in addition to scp and ftp as mentioned
Bram Moolenaar446cb832008-06-24 21:56:24 +0000194 in |netrw-start|. These include dav, fetch, http,... well, just look
195 at the list in |netrw-externapp|. Each protocol is associated with a
196 variable which holds the default command supporting that protocol.
197
198EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
Bram Moolenaar071d4272004-06-13 20:20:40 +0000199
Bram Moolenaar8d043172014-01-23 14:24:41 +0100200 Protocol Variable Default Value
201 -------- ---------------- -------------
202 dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
203 dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
204 fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
205 ftp: *g:netrw_ftp_cmd* = "ftp"
206 http: *g:netrw_http_cmd* = "elinks" if elinks is available
207 http: g:netrw_http_cmd = "links" elseif links is available
208 http: g:netrw_http_cmd = "curl" elseif curl is available
209 http: g:netrw_http_cmd = "wget" elseif wget is available
210 http: g:netrw_http_cmd = "fetch" elseif fetch is available
211 http: *g:netrw_http_put_cmd* = "curl -T"
212 rcp: *g:netrw_rcp_cmd* = "rcp"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100213 rsync: *g:netrw_rsync_cmd* = "rsync" (see |g:netrw_rsync_sep|)
Bram Moolenaar8d043172014-01-23 14:24:41 +0100214 scp: *g:netrw_scp_cmd* = "scp -q"
215 sftp: *g:netrw_sftp_cmd* = "sftp"
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100216 file: *g:netrw_file_cmd* = "elinks" or "links"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100217
218 *g:netrw_http_xcmd* : the option string for http://... protocols are
219 specified via this variable and may be independently overridden. By
220 default, the option arguments for the http-handling commands are: >
221
222 elinks : "-source >"
Bram Moolenaar97d62492012-11-15 21:28:22 +0100223 links : "-dump >"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100224 curl : "-L -o"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100225 wget : "-q -O"
226 fetch : "-o"
227<
228 For example, if your system has elinks, and you'd rather see the
229 page using an attempt at rendering the text, you may wish to have >
230 let g:netrw_http_xcmd= "-dump >"
231< in your .vimrc.
232
Bram Moolenaar8d043172014-01-23 14:24:41 +0100233 g:netrw_http_put_cmd: this option specifies both the executable and
234 any needed options. This command does a PUT operation to the url.
235
Bram Moolenaar071d4272004-06-13 20:20:40 +0000236
Bram Moolenaar446cb832008-06-24 21:56:24 +0000237READING *netrw-read* *netrw-nread* {{{2
238
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100239 Generally, one may just use the URL notation with a normal editing
Bram Moolenaar446cb832008-06-24 21:56:24 +0000240 command, such as >
241
242 :e ftp://[user@]machine/path
243<
244 Netrw also provides the Nread command:
245
Bram Moolenaar071d4272004-06-13 20:20:40 +0000246 :Nread ? give help
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000247 :Nread "machine:path" uses rcp
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000248 :Nread "machine path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000249 :Nread "machine id password path" uses ftp
250 :Nread "dav://machine[:port]/path" uses cadaver
251 :Nread "fetch://[user@]machine/path" uses fetch
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000252 :Nread "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000253 :Nread "http://[user@]machine/path" uses http uses wget
254 :Nread "rcp://[user@]machine/path" uses rcp
255 :Nread "rsync://[user@]machine[:port]/path" uses rsync
256 :Nread "scp://[user@]machine[[:#]port]/path" uses scp
257 :Nread "sftp://[user@]machine/path" uses sftp
Bram Moolenaar071d4272004-06-13 20:20:40 +0000258
Bram Moolenaar446cb832008-06-24 21:56:24 +0000259WRITING *netrw-write* *netrw-nwrite* {{{2
260
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100261 One may just use the URL notation with a normal file writing
Bram Moolenaar446cb832008-06-24 21:56:24 +0000262 command, such as >
263
264 :w ftp://[user@]machine/path
265<
266 Netrw also provides the Nwrite command:
267
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000268 :Nwrite ? give help
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000269 :Nwrite "machine:path" uses rcp
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000270 :Nwrite "machine path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000271 :Nwrite "machine id password path" uses ftp
272 :Nwrite "dav://machine[:port]/path" uses cadaver
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000273 :Nwrite "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000274 :Nwrite "rcp://[user@]machine/path" uses rcp
275 :Nwrite "rsync://[user@]machine[:port]/path" uses rsync
276 :Nwrite "scp://[user@]machine[[:#]port]/path" uses scp
277 :Nwrite "sftp://[user@]machine/path" uses sftp
Bram Moolenaar071d4272004-06-13 20:20:40 +0000278 http: not supported!
279
Bram Moolenaar446cb832008-06-24 21:56:24 +0000280SOURCING *netrw-source* {{{2
281
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100282 One may just use the URL notation with the normal file sourcing
Bram Moolenaar446cb832008-06-24 21:56:24 +0000283 command, such as >
284
285 :so ftp://[user@]machine/path
286<
287 Netrw also provides the Nsource command:
288
Bram Moolenaar9964e462007-05-05 17:54:07 +0000289 :Nsource ? give help
290 :Nsource "dav://machine[:port]/path" uses cadaver
291 :Nsource "fetch://[user@]machine/path" uses fetch
292 :Nsource "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
293 :Nsource "http://[user@]machine/path" uses http uses wget
294 :Nsource "rcp://[user@]machine/path" uses rcp
295 :Nsource "rsync://[user@]machine[:port]/path" uses rsync
296 :Nsource "scp://[user@]machine[[:#]port]/path" uses scp
297 :Nsource "sftp://[user@]machine/path" uses sftp
298
Bram Moolenaar13600302014-05-22 18:26:40 +0200299DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +0000300
301 One may browse a directory to get a listing by simply attempting to
302 edit the directory: >
303
304 :e scp://[user]@hostname/path/
305 :e ftp://[user]@hostname/path/
306<
Bram Moolenaar251e1912011-06-19 05:09:16 +0200307 For remote directory listings (ie. those using scp or ftp), that
308 trailing "/" is necessary (the slash tells netrw to treat the argument
309 as a directory to browse instead of as a file to download).
Bram Moolenaar446cb832008-06-24 21:56:24 +0000310
Bram Moolenaar251e1912011-06-19 05:09:16 +0200311 The Nread command may also be used to accomplish this (again, that
312 trailing slash is necessary): >
Bram Moolenaar446cb832008-06-24 21:56:24 +0000313
Bram Moolenaar251e1912011-06-19 05:09:16 +0200314 :Nread [protocol]://[user]@hostname/path/
315<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000316 *netrw-login* *netrw-password*
317CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000318
Bram Moolenaar071d4272004-06-13 20:20:40 +0000319 Attempts to use ftp will prompt you for a user-id and a password.
Bram Moolenaar15146672011-10-20 22:22:38 +0200320 These will be saved in global variables |g:netrw_uid| and
321 |s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
322 thereby simplifying use of ftp. However, if you need to use a
323 different user id and/or password, you'll want to call |NetUserPass()|
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000324 first. To work around the need to enter passwords, check if your ftp
325 supports a <.netrc> file in your home directory. Also see
326 |netrw-passwd| (and if you're using ssh/scp hoping to figure out how
Bram Moolenaar15146672011-10-20 22:22:38 +0200327 to not need to use passwords for scp, look at |netrw-ssh-hack|).
Bram Moolenaar071d4272004-06-13 20:20:40 +0000328
329 :NetUserPass [uid [password]] -- prompts as needed
330 :call NetUserPass() -- prompts for uid and password
331 :call NetUserPass("uid") -- prompts for password
332 :call NetUserPass("uid","password") -- sets global uid and password
333
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200334(Related topics: |ftp| |netrw-userpass| |netrw-start|)
335
Bram Moolenaar446cb832008-06-24 21:56:24 +0000336NETRW VARIABLES AND SETTINGS *netrw-variables* {{{2
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200337 (Also see:
338 |netrw-browser-var| : netrw browser option variables
339 |netrw-protocol| : file transfer protocol option variables
340 |netrw-settings| : additional file transfer options
341 |netrw-browser-options| : these options affect browsing directories
342 )
Bram Moolenaar9964e462007-05-05 17:54:07 +0000343
Bram Moolenaar446cb832008-06-24 21:56:24 +0000344Netrw provides a lot of variables which allow you to customize netrw to your
345preferences. One way to look at them is via the command :NetrwSettings (see
346|netrw-settings|) which will display your current netrw settings. Most such
347settings are described below, in |netrw-browser-options|, and in
348|netrw-externapp|:
Bram Moolenaar9964e462007-05-05 17:54:07 +0000349
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100350 *b:netrw_lastfile* last file Network-read/written retained on a
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200351 per-buffer basis (supports plain :Nw )
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100352
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200353 *g:netrw_bufsettings* the settings that netrw buffers have
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100354 (default) noma nomod nonu nowrap ro nobl
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200355
Bram Moolenaar13600302014-05-22 18:26:40 +0200356 *g:netrw_chgwin* specifies a window number where subsequent file edits
357 will take place. (also see |netrw-C|)
358 (default) -1
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100359
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200360 *g:Netrw_funcref* specifies a function (or functions) to be called when
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200361 netrw edits a file. The file is first edited, and
362 then the function reference (|Funcref|) is called.
363 This variable may also hold a |List| of Funcrefs.
364 (default) not defined. (the capital in g:Netrw...
365 is required by its holding a function reference)
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200366>
367 Example: place in .vimrc; affects all file opening
368 fun! MyFuncRef()
369 endfun
370 let g:Netrw_funcref= function("MyFuncRef")
Bram Moolenaara0f849e2015-10-30 14:37:44 +0100371
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200372<
Bram Moolenaara0f849e2015-10-30 14:37:44 +0100373 *g:Netrw_UserMaps* specifies a function or |List| of functions which can
374 be used to set up user-specified maps and functionality.
375 See |netrw-usermaps|
376
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200377 *g:netrw_ftp* if it doesn't exist, use default ftp
378 =0 use default ftp (uid password)
379 =1 use alternate ftp method (user uid password)
380 If you're having trouble with ftp, try changing the
381 value of this variable to see if the alternate ftp
382 method works for your setup.
383
Bram Moolenaar13600302014-05-22 18:26:40 +0200384 *g:netrw_ftp_options* Chosen by default, these options are supposed to
385 turn interactive prompting off and to restrain ftp
386 from attempting auto-login upon initial connection.
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200387 However, it appears that not all ftp implementations
388 support this (ex. ncftp).
389 ="-i -n"
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000390
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100391 *g:netrw_ftpextracmd* default: doesn't exist
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200392 If this variable exists, then any string it contains
393 will be placed into the commands set to your ftp
394 client. As an example:
395 ="passive"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000396
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000397 *g:netrw_ftpmode* ="binary" (default)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200398 ="ascii"
Bram Moolenaarf6cf9872005-08-08 22:00:59 +0000399
Bram Moolenaar9964e462007-05-05 17:54:07 +0000400 *g:netrw_ignorenetrc* =0 (default for linux, cygwin)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200401 =1 If you have a <.netrc> file but it doesn't work and
402 you want it ignored, then set this variable as
403 shown. (default for Windows + cmd.exe)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000404
405 *g:netrw_menu* =0 disable netrw's menu
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200406 =1 (default) netrw's menu enabled
Bram Moolenaar9964e462007-05-05 17:54:07 +0000407
408 *g:netrw_nogx* if this variable exists, then the "gx" map will not
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200409 be available (see |netrw-gx|)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000410
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100411 *g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100412 *s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
Bram Moolenaar446cb832008-06-24 21:56:24 +0000413
414 *g:netrw_preview* =0 (default) preview window shown in a horizontally
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200415 split window
416 =1 preview window shown in a vertically split window.
Bram Moolenaar13600302014-05-22 18:26:40 +0200417 Also affects the "previous window" (see |netrw-P|)
418 in the same way.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100419 The |g:netrw_alto| variable may be used to provide
420 additional splitting control:
421 g:netrw_preview g:netrw_alto result
422 0 0 |:aboveleft|
423 0 1 |:belowright|
424 1 0 |:topleft|
425 1 1 |:botright|
426 To control sizing, see |g:netrw_winsize|
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000427
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200428 *g:netrw_scpport* = "-P" : option to use to set port for scp
429 *g:netrw_sshport* = "-p" : option to use to set port for ssh
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000430
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100431 *g:netrw_sepchr* =\0xff
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200432 =\0x01 for enc == euc-jp (and perhaps it should be for
433 others, too, please let me know)
434 Separates priority codes from filenames internally.
435 See |netrw-p12|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100436
Bram Moolenaar446cb832008-06-24 21:56:24 +0000437 *g:netrw_silent* =0 : transfers done normally
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200438 =1 : transfers done silently
Bram Moolenaar446cb832008-06-24 21:56:24 +0000439
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000440 *g:netrw_use_errorwindow* =1 : messages from netrw will use a separate one
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200441 line window. This window provides reliable
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200442 delivery of messages. (default)
443 =0 : messages from netrw will use echoerr ;
444 messages don't always seem to show up this
445 way, but one doesn't have to quit the window.
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000446
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000447 *g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200448 lines that o/s's ftp "provides" on transfers
449 =0 force normal ftp behavior (no trailing line removal)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000450
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100451 *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200452 permits network browsing to use ls with time and
453 size sorting (default if windows)
454 =0 assume Windows' scp accepts windows-style paths
455 Network browsing uses dir instead of ls
456 This option is ignored if you're using unix
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000457
458 *g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200459 =1 use WinNT's rcp in binary mode (default)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000460
Bram Moolenaar446cb832008-06-24 21:56:24 +0000461PATHS *netrw-path* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000462
463Paths to files are generally user-directory relative for most protocols.
464It is possible that some protocol will make paths relative to some
465associated directory, however.
466>
467 example: vim scp://user@host/somefile
468 example: vim scp://user@host/subdir1/subdir2/somefile
469<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000470where "somefile" is in the "user"'s home directory. If you wish to get a
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000471file using root-relative paths, use the full path:
472>
473 example: vim scp://user@host//somefile
474 example: vim scp://user@host//subdir1/subdir2/somefile
475<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000476
477==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00004784. Network-Oriented File Transfer *netrw-xfer* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000479
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100480Network-oriented file transfer under Vim is implemented by a vim script
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000481(<netrw.vim>) using plugin techniques. It currently supports both reading and
482writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000483dav/cadaver, rsync, or sftp.
484
485http is currently supported read-only via use of wget or fetch.
486
487<netrw.vim> is a standard plugin which acts as glue between Vim and the
488various file transfer programs. It uses autocommand events (BufReadCmd,
489FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >
490
491 ex. vim ftp://hostname/path/to/file
492<
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000493The characters preceding the colon specify the protocol to use; in the
Bram Moolenaar446cb832008-06-24 21:56:24 +0000494example, it's ftp. The <netrw.vim> script then formulates a command or a
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000495series of commands (typically ftp) which it issues to an external program
496(ftp, scp, etc) which does the actual file transfer/protocol. Files are read
497from/written to a temporary file (under Unix/Linux, /tmp/...) which the
498<netrw.vim> script will clean up.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000499
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100500Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
501ftp is not a secure protocol. User names and passwords are transmitted "in
502the clear" over the internet; any snooper tool can pick these up; this is not
503a netrw thing, this is a ftp thing. If you're concerned about this, please
504try to use scp or sftp instead.
505
506Netrw re-uses the user id and password during the same vim session and so long
507as the remote hostname remains the same.
508
509Jan seems to be a bit confused about how netrw handles ftp; normally multiple
510commands are performed in a "ftp session", and he seems to feel that the
511uid/password should only be retained over one ftp session. However, netrw
512does every ftp operation in a separate "ftp session"; so remembering the
513uid/password for just one "ftp session" would be the same as not remembering
514the uid/password at all. IMHO this would rapidly grow tiresome as one
515browsed remote directories, for example.
516
517On the other hand, thanks go to Jan M. for pointing out the many
518vulnerabilities that netrw (and vim itself) had had in handling "crafted"
519filenames. The |shellescape()| and |fnameescape()| functions were written in
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200520response by Bram Moolenaar to handle these sort of problems, and netrw has
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100521been modified to use them. Still, my advice is, if the "filename" looks like
522a vim command that you aren't comfortable with having executed, don't open it.
523
Bram Moolenaar9964e462007-05-05 17:54:07 +0000524 *netrw-putty* *netrw-pscp* *netrw-psftp*
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000525One may modify any protocol's implementing external application by setting a
526variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000527"scp -q"). As an example, consider using PuTTY: >
Bram Moolenaar9964e462007-05-05 17:54:07 +0000528
529 let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
530 let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000531<
Bram Moolenaar15146672011-10-20 22:22:38 +0200532(note: it has been reported that windows 7 with putty v0.6's "-batch" option
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100533 doesn't work, so its best to leave it off for that system)
Bram Moolenaar15146672011-10-20 22:22:38 +0200534
Bram Moolenaar9964e462007-05-05 17:54:07 +0000535See |netrw-p8| for more about putty, pscp, psftp, etc.
536
Bram Moolenaar071d4272004-06-13 20:20:40 +0000537Ftp, an old protocol, seems to be blessed by numerous implementations.
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000538Unfortunately, some implementations are noisy (ie., add junk to the end of the
539file). Thus, concerned users may decide to write a NetReadFixup() function
540that will clean up after reading with their ftp. Some Unix systems (ie.,
541FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
542not noisy and more convenient, actually, for <netrw.vim> to use.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100543Consequently, if "fetch" is available (ie. executable), it may be preferable
544to use it for ftp://... based transfers.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000545
546For rcp, scp, sftp, and http, one may use network-oriented file transfers
Bram Moolenaar83bab712005-08-01 21:58:57 +0000547transparently; ie.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000548>
549 vim rcp://[user@]machine/path
550 vim scp://[user@]machine/path
551<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100552If your ftp supports <.netrc>, then it too can be transparently used
Bram Moolenaar071d4272004-06-13 20:20:40 +0000553if the needed triad of machine name, user id, and password are present in
554that file. Your ftp must be able to use the <.netrc> file on its own, however.
555>
556 vim ftp://[user@]machine[[:#]portnumber]/path
557<
Bram Moolenaaradc21822011-04-01 18:03:16 +0200558Windows provides an ftp (typically c:\Windows\System32\ftp.exe) which uses
559an option, -s:filename (filename can and probably should be a full path)
560which contains ftp commands which will be automatically run whenever ftp
561starts. You may use this feature to enter a user and password for one site: >
562 userid
563 password
Bram Moolenaar13600302014-05-22 18:26:40 +0200564< *netrw-windows-netrc* *netrw-windows-s*
565If |g:netrw_ftp_cmd| contains -s:[path/]MACHINE, then (on Windows machines
566only) netrw will substitute the current machine name requested for ftp
567connections for MACHINE. Hence one can have multiple machine.ftp files
568containing login and password for ftp. Example: >
Bram Moolenaaradc21822011-04-01 18:03:16 +0200569
Bram Moolenaarff034192013-04-24 18:51:19 +0200570 let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
571 vim ftp://myhost.somewhere.net/
Bram Moolenaar13600302014-05-22 18:26:40 +0200572
Bram Moolenaaradc21822011-04-01 18:03:16 +0200573will use a file >
Bram Moolenaar13600302014-05-22 18:26:40 +0200574
Bram Moolenaaradc21822011-04-01 18:03:16 +0200575 C:\Users\Myself\myhost.ftp
576<
577Often, ftp will need to query the user for the userid and password.
Bram Moolenaar83bab712005-08-01 21:58:57 +0000578The latter will be done "silently"; ie. asterisks will show up instead of
Bram Moolenaar071d4272004-06-13 20:20:40 +0000579the actually-typed-in password. Netrw will retain the userid and password
580for subsequent read/writes from the most recent transfer so subsequent
581transfers (read/write) to or from that machine will take place without
582additional prompting.
583
584 *netrw-urls*
585 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000586 | Reading | Writing | Uses |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000587 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000588 | DAV: | | |
589 | dav://host/path | | cadaver |
590 | :Nread dav://host/path | :Nwrite dav://host/path | cadaver |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000591 +---------------------------------+----------------------------+------------+
Bram Moolenaar446cb832008-06-24 21:56:24 +0000592 | DAV + SSL: | | |
593 | davs://host/path | | cadaver |
594 | :Nread davs://host/path | :Nwrite davs://host/path | cadaver |
595 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000596 | FETCH: | | |
597 | fetch://[user@]host/path | | |
598 | fetch://[user@]host:http/path | Not Available | fetch |
599 | :Nread fetch://[user@]host/path| | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000600 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000601 | FILE: | | |
602 | file:///* | file:///* | |
603 | file://localhost/* | file://localhost/* | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000604 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000605 | FTP: (*3) | (*3) | |
606 | ftp://[user@]host/path | ftp://[user@]host/path | ftp (*2) |
607 | :Nread ftp://host/path | :Nwrite ftp://host/path | ftp+.netrc |
608 | :Nread host path | :Nwrite host path | ftp+.netrc |
609 | :Nread host uid pass path | :Nwrite host uid pass path | ftp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000610 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000611 | HTTP: wget is executable: (*4) | | |
612 | http://[user@]host/path | Not Available | wget |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000613 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000614 | HTTP: fetch is executable (*4) | | |
615 | http://[user@]host/path | Not Available | fetch |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000616 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000617 | RCP: | | |
618 | rcp://[user@]host/path | rcp://[user@]host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000619 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000620 | RSYNC: | | |
621 | rsync://[user@]host/path | rsync://[user@]host/path | rsync |
622 | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync |
623 | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000624 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000625 | SCP: | | |
626 | scp://[user@]host/path | scp://[user@]host/path | scp |
627 | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000628 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000629 | SFTP: | | |
630 | sftp://[user@]host/path | sftp://[user@]host/path | sftp |
631 | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000632 +=================================+============================+============+
633
634 (*1) For an absolute path use scp://machine//path.
635
636 (*2) if <.netrc> is present, it is assumed that it will
637 work with your ftp client. Otherwise the script will
Bram Moolenaar9964e462007-05-05 17:54:07 +0000638 prompt for user-id and password.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000639
Bram Moolenaar9964e462007-05-05 17:54:07 +0000640 (*3) for ftp, "machine" may be machine#port or machine:port
Bram Moolenaar071d4272004-06-13 20:20:40 +0000641 if a different port is needed than the standard ftp port
642
643 (*4) for http:..., if wget is available it will be used. Otherwise,
644 if fetch is available it will be used.
645
646Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.
647
648
649NETRC *netrw-netrc*
650
Bram Moolenaar446cb832008-06-24 21:56:24 +0000651The <.netrc> file, typically located in your home directory, contains lines
652therein which map a hostname (machine name) to the user id and password you
653prefer to use with it.
654
Bram Moolenaar071d4272004-06-13 20:20:40 +0000655The typical syntax for lines in a <.netrc> file is given as shown below.
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000656Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000657>
658 machine {full machine name} login {user-id} password "{password}"
659 default login {user-id} password "{password}"
660
661Your ftp client must handle the use of <.netrc> on its own, but if the
662<.netrc> file exists, an ftp transfer will not ask for the user-id or
663password.
664
665 Note:
666 Since this file contains passwords, make very sure nobody else can
667 read this file! Most programs will refuse to use a .netrc that is
668 readable for others. Don't forget that the system administrator can
Bram Moolenaar446cb832008-06-24 21:56:24 +0000669 still read the file! Ie. for Linux/Unix: chmod 600 .netrc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000670
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200671Even though Windows' ftp clients typically do not support .netrc, netrw has
672a work-around: see |netrw-windows-s|.
673
Bram Moolenaar071d4272004-06-13 20:20:40 +0000674
675PASSWORD *netrw-passwd*
676
677The script attempts to get passwords for ftp invisibly using |inputsecret()|,
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200678a built-in Vim function. See |netrw-userpass| for how to change the password
Bram Moolenaar071d4272004-06-13 20:20:40 +0000679after one has set it.
680
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000681Unfortunately there doesn't appear to be a way for netrw to feed a password to
682scp. Thus every transfer via scp will require re-entry of the password.
Bram Moolenaar446cb832008-06-24 21:56:24 +0000683However, |netrw-ssh-hack| can help with this problem.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000684
685
686==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00006875. Activation *netrw-activate* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000688
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000689Network-oriented file transfers are available by default whenever Vim's
Bram Moolenaar446cb832008-06-24 21:56:24 +0000690|'nocompatible'| mode is enabled. Netrw's script files reside in your
691system's plugin, autoload, and syntax directories; just the
692plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
693vim. The main script in autoload/netrw.vim is only loaded when you actually
694use netrw. I suggest that, at a minimum, you have at least the following in
695your <.vimrc> customization file: >
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000696
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000697 set nocp
698 if version >= 600
699 filetype plugin indent on
700 endif
701<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100702By also including the following lines in your .vimrc, one may have netrw
703immediately activate when using [g]vim without any filenames, showing the
704current directory: >
705
706 " Augroup VimStartup:
707 augroup VimStartup
708 au!
709 au VimEnter * if expand("%") == "" | e . | endif
710 augroup END
711<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000712
713==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02007146. Transparent Remote File Editing *netrw-transparent* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000715
716Transparent file transfers occur whenever a regular file read or write
Bram Moolenaar446cb832008-06-24 21:56:24 +0000717(invoked via an |:autocmd| for |BufReadCmd|, |BufWriteCmd|, or |SourceCmd|
718events) is made. Thus one may read, write, or source files across networks
719just as easily as if they were local files! >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000720
721 vim ftp://[user@]machine/path
722 ...
723 :wq
724
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000725See |netrw-activate| for more on how to encourage your vim to use plugins
726such as netrw.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000727
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000728
Bram Moolenaar071d4272004-06-13 20:20:40 +0000729==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00007307. Ex Commands *netrw-ex* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000731
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000732The usual read/write commands are supported. There are also a few
Bram Moolenaar446cb832008-06-24 21:56:24 +0000733additional commands available. Often you won't need to use Nwrite or
Bram Moolenaar9964e462007-05-05 17:54:07 +0000734Nread as shown in |netrw-transparent| (ie. simply use >
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100735 :e URL
736 :r URL
737 :w URL
Bram Moolenaar9964e462007-05-05 17:54:07 +0000738instead, as appropriate) -- see |netrw-urls|. In the explanations
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100739below, a {netfile} is a URL to a remote file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000740
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200741 *:Nwrite* *:Nw*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000742:[range]Nw[rite] Write the specified lines to the current
Bram Moolenaar071d4272004-06-13 20:20:40 +0000743 file as specified in b:netrw_lastfile.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200744 (related: |netrw-nwrite|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000745
Bram Moolenaar446cb832008-06-24 21:56:24 +0000746:[range]Nw[rite] {netfile} [{netfile}]...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000747 Write the specified lines to the {netfile}.
748
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200749 *:Nread* *:Nr*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100750:Nr[ead] Read the lines from the file specified in b:netrw_lastfile
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200751 into the current buffer. (related: |netrw-nread|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000752
Bram Moolenaar446cb832008-06-24 21:56:24 +0000753:Nr[ead] {netfile} {netfile}...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000754 Read the {netfile} after the current line.
755
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200756 *:Nsource* *:Ns*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000757:Ns[ource] {netfile}
Bram Moolenaar9964e462007-05-05 17:54:07 +0000758 Source the {netfile}.
759 To start up vim using a remote .vimrc, one may use
760 the following (all on one line) (tnx to Antoine Mechelynck) >
761 vim -u NORC -N
762 --cmd "runtime plugin/netrwPlugin.vim"
763 --cmd "source scp://HOSTNAME/.vimrc"
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200764< (related: |netrw-source|)
765
766:call NetUserPass() *NetUserPass()*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000767 If g:netrw_uid and s:netrw_passwd don't exist,
768 this function will query the user for them.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200769 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000770
771:call NetUserPass("userid")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000772 This call will set the g:netrw_uid and, if
Bram Moolenaar071d4272004-06-13 20:20:40 +0000773 the password doesn't exist, will query the user for it.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200774 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000775
776:call NetUserPass("userid","passwd")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000777 This call will set both the g:netrw_uid and s:netrw_passwd.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000778 The user-id and password are used by ftp transfers. One may
Bram Moolenaar446cb832008-06-24 21:56:24 +0000779 effectively remove the user-id and password by using empty
780 strings (ie. "").
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200781 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000782
Bram Moolenaar9964e462007-05-05 17:54:07 +0000783:NetrwSettings This command is described in |netrw-settings| -- used to
784 display netrw settings and change netrw behavior.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000785
Bram Moolenaar071d4272004-06-13 20:20:40 +0000786
787==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02007888. Variables and Options *netrw-var* *netrw-settings* {{{1
Bram Moolenaar446cb832008-06-24 21:56:24 +0000789
Bram Moolenaar15146672011-10-20 22:22:38 +0200790(also see: |netrw-options| |netrw-variables| |netrw-protocol|
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200791 |netrw-browser-settings| |netrw-browser-options| )
Bram Moolenaar071d4272004-06-13 20:20:40 +0000792
Bram Moolenaar9964e462007-05-05 17:54:07 +0000793The <netrw.vim> script provides several variables which act as options to
Bram Moolenaar446cb832008-06-24 21:56:24 +0000794affect <netrw.vim>'s file transfer behavior. These variables typically may be
795set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
Bram Moolenaar15146672011-10-20 22:22:38 +0200796 *netrw-options*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000797>
Bram Moolenaar9964e462007-05-05 17:54:07 +0000798 -------------
799 Netrw Options
800 -------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000801 Option Meaning
802 -------------- -----------------------------------------------
803<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000804 b:netrw_col Holds current cursor position (during NetWrite)
805 g:netrw_cygwin =1 assume scp under windows is from cygwin
806 (default/windows)
807 =0 assume scp under windows accepts windows
808 style paths (default/else)
809 g:netrw_ftp =0 use default ftp (uid password)
810 g:netrw_ftpmode ="binary" (default)
811 ="ascii" (your choice)
812 g:netrw_ignorenetrc =1 (default)
813 if you have a <.netrc> file but you don't
Bram Moolenaar071d4272004-06-13 20:20:40 +0000814 want it used, then set this variable. Its
815 mere existence is enough to cause <.netrc>
816 to be ignored.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000817 b:netrw_lastfile Holds latest method/machine/path.
818 b:netrw_line Holds current line number (during NetWrite)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000819 g:netrw_silent =0 transfers done normally
820 =1 transfers done silently
821 g:netrw_uid Holds current user-id for ftp.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000822 g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
823 =1 use WinNT/2K/XP's rcp, binary mode
824 g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc
825 =1 use default method to do ftp >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000826 -----------------------------------------------------------------------
827<
Bram Moolenaar13600302014-05-22 18:26:40 +0200828 *netrw-internal-variables*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000829The script will also make use of the following variables internally, albeit
830temporarily.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000831>
832 -------------------
833 Temporary Variables
834 -------------------
835 Variable Meaning
836 -------- ------------------------------------
837<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100838 b:netrw_method Index indicating rcp/ftp+.netrc/ftp
839 w:netrw_method (same as b:netrw_method)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000840 g:netrw_machine Holds machine name parsed from input
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100841 b:netrw_fname Holds filename being accessed >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000842 ------------------------------------------------------------
843<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000844 *netrw-protocol*
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000845
846Netrw supports a number of protocols. These protocols are invoked using the
847variables listed below, and may be modified by the user.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000848>
849 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000850 Protocol Control Options
Bram Moolenaar071d4272004-06-13 20:20:40 +0000851 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000852 Option Type Setting Meaning
853 --------- -------- -------------- ---------------------------
Bram Moolenaar8d043172014-01-23 14:24:41 +0100854< netrw_ftp variable =doesn't exist userid set by "user userid"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000855 =0 userid set by "user userid"
856 =1 userid set by "userid"
857 NetReadFixup function =doesn't exist no change
858 =exists Allows user to have files
859 read via ftp automatically
860 transformed however they wish
861 by NetReadFixup()
Bram Moolenaar8d043172014-01-23 14:24:41 +0100862 g:netrw_dav_cmd var ="cadaver" if cadaver is executable
863 g:netrw_dav_cmd var ="curl -o" elseif curl is executable
864 g:netrw_fetch_cmd var ="fetch -o" if fetch is available
865 g:netrw_ftp_cmd var ="ftp"
866 g:netrw_http_cmd var ="fetch -o" if fetch is available
867 g:netrw_http_cmd var ="wget -O" else if wget is available
868 g:netrw_http_put_cmd var ="curl -T"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100869 |g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
Bram Moolenaar8d043172014-01-23 14:24:41 +0100870 g:netrw_rcp_cmd var ="rcp"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100871 g:netrw_rsync_cmd var ="rsync"
872 *g:netrw_rsync_sep* var ="/" used to separate the hostname
873 from the file spec
Bram Moolenaar8d043172014-01-23 14:24:41 +0100874 g:netrw_scp_cmd var ="scp -q"
875 g:netrw_sftp_cmd var ="sftp" >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000876 -------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000877<
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000878 *netrw-ftp*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000879
Bram Moolenaar9964e462007-05-05 17:54:07 +0000880The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
881specify the external program to use handle the ftp protocol. They may
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200882include command line options (such as -p for passive mode). Example: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000883
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200884 let g:netrw_ftp_cmd= "ftp -p"
885<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000886Browsing is supported by using the |g:netrw_list_cmd|; the substring
887"HOSTNAME" will be changed via substitution with whatever the current request
888is for a hostname.
889
890Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's
891that give trouble . In order to best understand how to use these options if
892ftp is giving you troubles, a bit of discussion is provided on how netrw does
893ftp reads.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000894
895For ftp, netrw typically builds up lines of one of the following formats in a
Bram Moolenaar071d4272004-06-13 20:20:40 +0000896temporary file:
897>
898 IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1
899 ---------------------------------- ------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000900<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000901 open machine [port] open machine [port]
902 user userid password userid password
903 [g:netrw_ftpmode] password
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200904 [g:netrw_ftpextracmd] [g:netrw_ftpmode]
Bram Moolenaar9964e462007-05-05 17:54:07 +0000905 get filename tempfile [g:netrw_extracmd]
906 get filename tempfile >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000907 ---------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000908<
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200909The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000910
Bram Moolenaar071d4272004-06-13 20:20:40 +0000911Netrw then executes the lines above by use of a filter:
912>
913 :%! {g:netrw_ftp_cmd} -i [-n]
914<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000915where
916 g:netrw_ftp_cmd is usually "ftp",
917 -i tells ftp not to be interactive
918 -n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
919
920If <.netrc> exists it will be used to avoid having to query the user for
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000921userid and password. The transferred file is put into a temporary file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000922The temporary file is then read into the main editing session window that
923requested it and the temporary file deleted.
924
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000925If your ftp doesn't accept the "user" command and immediately just demands a
926userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000927
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000928 *netrw-cadaver*
929To handle the SSL certificate dialog for untrusted servers, one may pull
930down the certificate and place it into /usr/ssl/cert.pem. This operation
931renders the server treatment as "trusted".
932
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000933 *netrw-fixup* *netreadfixup*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000934If your ftp for whatever reason generates unwanted lines (such as AUTH
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100935messages) you may write a NetReadFixup() function:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000936>
937 function! NetReadFixup(method,line1,line2)
938 " a:line1: first new line in current file
939 " a:line2: last new line in current file
940 if a:method == 1 "rcp
941 elseif a:method == 2 "ftp + <.netrc>
942 elseif a:method == 3 "ftp + machine,uid,password,filename
943 elseif a:method == 4 "scp
944 elseif a:method == 5 "http/wget
945 elseif a:method == 6 "dav/cadaver
946 elseif a:method == 7 "rsync
947 elseif a:method == 8 "fetch
948 elseif a:method == 9 "sftp
Bram Moolenaar9964e462007-05-05 17:54:07 +0000949 else " complain
Bram Moolenaar071d4272004-06-13 20:20:40 +0000950 endif
951 endfunction
952>
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000953The NetReadFixup() function will be called if it exists and thus allows you to
954customize your reading process. As a further example, <netrw.vim> contains
955just such a function to handle Windows 95 ftp. For whatever reason, Windows
95695's ftp dumps four blank lines at the end of a transfer, and so it is
957desirable to automate their removal. Here's some code taken from <netrw.vim>
958itself:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000959>
960 if has("win95") && g:netrw_win95ftp
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000961 fun! NetReadFixup(method, line1, line2)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000962 if method == 3 " ftp (no <.netrc>)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000963 let fourblanklines= line2 - 3
964 silent fourblanklines.",".line2."g/^\s*/d"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000965 endif
966 endfunction
967 endif
968>
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200969(Related topics: |ftp| |netrw-userpass| |netrw-start|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000970
971==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00009729. Browsing *netrw-browsing* *netrw-browse* *netrw-help* {{{1
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100973 *netrw-browser* *netrw-dir* *netrw-list*
Bram Moolenaar83bab712005-08-01 21:58:57 +0000974
Bram Moolenaar446cb832008-06-24 21:56:24 +0000975INTRODUCTION TO BROWSING *netrw-intro-browse* {{{2
976 (Quick References: |netrw-quickmaps| |netrw-quickcoms|)
Bram Moolenaar83bab712005-08-01 21:58:57 +0000977
Bram Moolenaar446cb832008-06-24 21:56:24 +0000978Netrw supports the browsing of directories on your local system and on remote
979hosts; browsing includes listing files and directories, entering directories,
980editing files therein, deleting files/directories, making new directories,
981moving (renaming) files and directories, copying files and directories, etc.
982One may mark files and execute any system command on them! The Netrw browser
983generally implements the previous explorer's maps and commands for remote
984directories, although details (such as pertinent global variable names)
985necessarily differ. To browse a directory, simply "edit" it! >
Bram Moolenaar269ec652004-07-29 08:43:53 +0000986
Bram Moolenaar446cb832008-06-24 21:56:24 +0000987 vim /your/directory/
988 vim .
989 vim c:\your\directory\
990<
991(Related topics: |netrw-cr| |netrw-o| |netrw-p| |netrw-P| |netrw-t|
992 |netrw-mf| |netrw-mx| |netrw-D| |netrw-R| |netrw-v| )
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000993
994The Netrw remote file and directory browser handles two protocols: ssh and
Bram Moolenaar446cb832008-06-24 21:56:24 +0000995ftp. The protocol in the url, if it is ftp, will cause netrw also to use ftp
996in its remote browsing. Specifying any other protocol will cause it to be
997used for file transfers; but the ssh protocol will be used to do remote
998browsing.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000999
Bram Moolenaar446cb832008-06-24 21:56:24 +00001000To use Netrw's remote directory browser, simply attempt to read a "file" with
1001a trailing slash and it will be interpreted as a request to list a directory:
1002>
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001003 vim [protocol]://[user@]hostname/path/
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +00001004<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001005where [protocol] is typically scp or ftp. As an example, try: >
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +00001006
Bram Moolenaar446cb832008-06-24 21:56:24 +00001007 vim ftp://ftp.home.vim.org/pub/vim/
1008<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001009For local directories, the trailing slash is not required. Again, because it's
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001010easy to miss: to browse remote directories, the URL must terminate with a
Bram Moolenaar446cb832008-06-24 21:56:24 +00001011slash!
Bram Moolenaar83bab712005-08-01 21:58:57 +00001012
Bram Moolenaar446cb832008-06-24 21:56:24 +00001013If you'd like to avoid entering the password repeatedly for remote directory
1014listings with ssh or scp, see |netrw-ssh-hack|. To avoid password entry with
1015ftp, see |netrw-netrc| (if your ftp supports it).
Bram Moolenaar83bab712005-08-01 21:58:57 +00001016
Bram Moolenaar446cb832008-06-24 21:56:24 +00001017There are several things you can do to affect the browser's display of files:
Bram Moolenaar83bab712005-08-01 21:58:57 +00001018
Bram Moolenaar446cb832008-06-24 21:56:24 +00001019 * To change the listing style, press the "i" key (|netrw-i|).
1020 Currently there are four styles: thin, long, wide, and tree.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001021 To make that change "permanent", see |g:netrw_liststyle|.
Bram Moolenaar83bab712005-08-01 21:58:57 +00001022
Bram Moolenaar446cb832008-06-24 21:56:24 +00001023 * To hide files (don't want to see those xyz~ files anymore?) see
1024 |netrw-ctrl-h|.
Bram Moolenaar83bab712005-08-01 21:58:57 +00001025
Bram Moolenaar446cb832008-06-24 21:56:24 +00001026 * Press s to sort files by name, time, or size.
1027
1028See |netrw-browse-cmds| for all the things you can do with netrw!
1029
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001030 *netrw-getftype* *netrw-filigree* *netrw-ftype*
1031The |getftype()| function is used to append a bit of filigree to indicate
1032filetype to locally listed files:
1033
1034 directory : /
1035 executable : *
1036 fifo : |
1037 links : @
1038 sockets : =
1039
1040The filigree also affects the |g:netrw_sort_sequence|.
1041
Bram Moolenaar446cb832008-06-24 21:56:24 +00001042
1043QUICK HELP *netrw-quickhelp* {{{2
1044 (Use ctrl-] to select a topic)~
1045 Intro to Browsing...............................|netrw-intro-browse|
1046 Quick Reference: Maps.........................|netrw-quickmap|
1047 Quick Reference: Commands.....................|netrw-browse-cmds|
1048 Hiding
1049 Edit hiding list..............................|netrw-ctrl-h|
1050 Hiding Files or Directories...................|netrw-a|
1051 Hiding/Unhiding by suffix.....................|netrw-mh|
1052 Hiding dot-files.............................|netrw-gh|
1053 Listing Style
1054 Select listing style (thin/long/wide/tree)....|netrw-i|
1055 Associated setting variable...................|g:netrw_liststyle|
1056 Shell command used to perform listing.........|g:netrw_list_cmd|
1057 Quick file info...............................|netrw-qf|
1058 Sorted by
1059 Select sorting style (name/time/size).........|netrw-s|
1060 Editing the sorting sequence..................|netrw-S|
Bram Moolenaarc236c162008-07-13 17:41:49 +00001061 Sorting options...............................|g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001062 Associated setting variable...................|g:netrw_sort_sequence|
1063 Reverse sorting order.........................|netrw-r|
1064
1065
1066 *netrw-quickmap* *netrw-quickmaps*
1067QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001068>
Bram Moolenaar446cb832008-06-24 21:56:24 +00001069 --- ----------------- ----
1070 Map Quick Explanation Link
1071 --- ----------------- ----
1072< <F1> Causes Netrw to issue help
1073 <cr> Netrw will enter the directory or read the file |netrw-cr|
1074 <del> Netrw will attempt to remove the file/directory |netrw-del|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001075 <c-h> Edit file hiding list |netrw-ctrl-h|
1076 <c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l|
1077 <c-r> Browse using a gvim server |netrw-ctrl-r|
1078 <c-tab> Shrink/expand a netrw/explore window |netrw-c-tab|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001079 - Makes Netrw go up one directory |netrw--|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001080 a Cycles between normal display, |netrw-a|
Bram Moolenaar13600302014-05-22 18:26:40 +02001081 hiding (suppress display of files matching g:netrw_list_hide)
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001082 and showing (display only files which match g:netrw_list_hide)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001083 c Make browsing directory the current directory |netrw-c|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001084 C Setting the editing window |netrw-C|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001085 d Make a directory |netrw-d|
1086 D Attempt to remove the file(s)/directory(ies) |netrw-D|
1087 gb Go to previous bookmarked directory |netrw-gb|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001088 gd Force treatment as directory |netrw-gd|
1089 gf Force treatment as file |netrw-gf|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001090 gh Quick hide/unhide of dot-files |netrw-gh|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001091 gn Make top of tree the directory below the cursor |netrw-gn|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001092 i Cycle between thin, long, wide, and tree listings |netrw-i|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001093 I Toggle the displaying of the banner |netrw-I|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001094 mb Bookmark current directory |netrw-mb|
1095 mc Copy marked files to marked-file target directory |netrw-mc|
1096 md Apply diff to marked files (up to 3) |netrw-md|
1097 me Place marked files on arg list and edit them |netrw-me|
1098 mf Mark a file |netrw-mf|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001099 mF Unmark files |netrw-mF|
1100 mg Apply vimgrep to marked files |netrw-mg|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001101 mh Toggle marked file suffices' presence on hiding list |netrw-mh|
1102 mm Move marked files to marked-file target directory |netrw-mm|
1103 mp Print marked files |netrw-mp|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001104 mr Mark files using a shell-style |regexp| |netrw-mr|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001105 mt Current browsing directory becomes markfile target |netrw-mt|
1106 mT Apply ctags to marked files |netrw-mT|
1107 mu Unmark all marked files |netrw-mu|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001108 mv Apply arbitrary vim command to marked files |netrw-mv|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001109 mx Apply arbitrary shell command to marked files |netrw-mx|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001110 mX Apply arbitrary shell command to marked files en bloc|netrw-mX|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001111 mz Compress/decompress marked files |netrw-mz|
1112 o Enter the file/directory under the cursor in a new |netrw-o|
Bram Moolenaar13600302014-05-22 18:26:40 +02001113 browser window. A horizontal split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001114 O Obtain a file specified by cursor |netrw-O|
1115 p Preview the file |netrw-p|
1116 P Browse in the previously used window |netrw-P|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001117 qb List bookmarked directories and history |netrw-qb|
1118 qf Display information on file |netrw-qf|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001119 qF Mark files using a quickfix list |netrw-qF|
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001120 qL Mark files using a |location-list| |netrw-qL|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001121 r Reverse sorting order |netrw-r|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001122 R Rename the designated file(s)/directory(ies) |netrw-R|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001123 s Select sorting style: by name, time, or file size |netrw-s|
1124 S Specify suffix priority for name-sorting |netrw-S|
1125 t Enter the file/directory under the cursor in a new tab|netrw-t|
1126 u Change to recently-visited directory |netrw-u|
1127 U Change to subsequently-visited directory |netrw-U|
1128 v Enter the file/directory under the cursor in a new |netrw-v|
Bram Moolenaar13600302014-05-22 18:26:40 +02001129 browser window. A vertical split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001130 x View file with an associated program |netrw-x|
Bram Moolenaar97d62492012-11-15 21:28:22 +01001131 X Execute filename under cursor via |system()| |netrw-X|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001132
Bram Moolenaarc236c162008-07-13 17:41:49 +00001133 % Open a new file in netrw's current directory |netrw-%|
1134
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001135 *netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001136 <leftmouse> (gvim only) selects word under mouse as if a <cr>
1137 had been pressed (ie. edit file, change directory)
1138 <middlemouse> (gvim only) same as P selecting word under mouse;
1139 see |netrw-P|
1140 <rightmouse> (gvim only) delete file/directory using word under
1141 mouse
1142 <2-leftmouse> (gvim only) when:
Bram Moolenaar13600302014-05-22 18:26:40 +02001143 * in a netrw-selected file, AND
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001144 * |g:netrw_retmap| == 1 AND
Bram Moolenaar13600302014-05-22 18:26:40 +02001145 * the user doesn't already have a <2-leftmouse>
Bram Moolenaarff034192013-04-24 18:51:19 +02001146 mapping defined before netrw is autoloaded,
Bram Moolenaar446cb832008-06-24 21:56:24 +00001147 then a double clicked leftmouse button will return
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001148 to the netrw browser window. See |g:netrw_retmap|.
Bram Moolenaar8d043172014-01-23 14:24:41 +01001149 <s-leftmouse> (gvim only) like mf, will mark files. Dragging
1150 the shifted leftmouse will mark multiple files.
1151 (see |netrw-mf|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001152
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001153 (to disable mouse buttons while browsing: |g:netrw_mousemaps|)
1154
Bram Moolenaar446cb832008-06-24 21:56:24 +00001155 *netrw-quickcom* *netrw-quickcoms*
1156QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01001157 :NetrwClean[!]............................................|netrw-clean|
1158 :NetrwSettings............................................|netrw-settings|
1159 :Ntree....................................................|netrw-ntree|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001160 :Explore[!] [dir] Explore directory of current file......|netrw-explore|
1161 :Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001162 :Lexplore[!] [dir] Left Explorer Toggle...................|netrw-explore|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001163 :Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1164 :Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1165 :Rexplore Return to Explorer.....................|netrw-explore|
1166 :Sexplore[!] [dir] Split & Explore directory .............|netrw-explore|
1167 :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
1168 :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1169
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001170
1171BANNER DISPLAY *netrw-I*
1172
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001173One may toggle the displaying of the banner by pressing "I".
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001174
1175Also See: |g:netrw_banner|
1176
1177
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001178BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001179
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001180One may easily "bookmark" the currently browsed directory by using >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001181
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001182 mb
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001183<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001184 *.netrwbook*
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001185Bookmarks are retained in between sessions of vim in a file called .netrwbook
1186as a |List|, which is typically stored in the first directory on the user's
Bram Moolenaar85850f32019-07-19 22:05:51 +02001187'runtimepath'; entries are kept in sorted order.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001188
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001189If there are marked files and/or directories, mb will add them to the bookmark
1190list.
1191
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001192 *netrw-:NetrwMB*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001193Addtionally, one may use :NetrwMB to bookmark files or directories. >
1194
1195 :NetrwMB[!] [files/directories]
1196
1197< No bang: enters files/directories into Netrw's bookmark system
1198
1199 No argument and in netrw buffer:
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001200 if there are marked files : bookmark marked files
1201 otherwise : bookmark file/directory under cursor
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001202 No argument and not in netrw buffer: bookmarks current open file
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001203 Has arguments : |glob()|s each arg and bookmarks them
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001204
1205 With bang: deletes files/directories from Netrw's bookmark system
1206
1207The :NetrwMB command is available outside of netrw buffers (once netrw has been
1208invoked in the session).
1209
1210The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001211default, its stored on the first directory on the user's |'runtimepath'|.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001212
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001213Related Topics:
1214 |netrw-gb| how to return (go) to a bookmark
1215 |netrw-mB| how to delete bookmarks
1216 |netrw-qb| how to list bookmarks
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001217 |g:netrw_home| controls where .netrwbook is kept
Bram Moolenaar4a85b412006-04-23 22:40:29 +00001218
1219
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001220BROWSING *netrw-enter* *netrw-cr* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001221
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001222Browsing is simple: move the cursor onto a file or directory of interest.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001223Hitting the <cr> (the return key) will select the file or directory.
1224Directories will themselves be listed, and files will be opened using the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001225protocol given in the original read request.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001226
Bram Moolenaar446cb832008-06-24 21:56:24 +00001227 CAVEAT: There are four forms of listing (see |netrw-i|). Netrw assumes that
1228 two or more spaces delimit filenames and directory names for the long and
1229 wide listing formats. Thus, if your filename or directory name has two or
1230 more sequential spaces embedded in it, or any trailing spaces, then you'll
1231 need to use the "thin" format to select it.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001232
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001233The |g:netrw_browse_split| option, which is zero by default, may be used to
Bram Moolenaar446cb832008-06-24 21:56:24 +00001234cause the opening of files to be done in a new window or tab instead of the
1235default. When the option is one or two, the splitting will be taken
1236horizontally or vertically, respectively. When the option is set to three, a
1237<cr> will cause the file to appear in a new tab.
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001238
Bram Moolenaar83bab712005-08-01 21:58:57 +00001239
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001240When using the gui (gvim), one may select a file by pressing the <leftmouse>
1241button. In addition, if
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001242
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001243 * |g:netrw_retmap| == 1 AND (its default value is 0)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001244 * in a netrw-selected file, AND
1245 * the user doesn't already have a <2-leftmouse> mapping defined before
1246 netrw is loaded
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001247
Bram Moolenaar446cb832008-06-24 21:56:24 +00001248then a doubly-clicked leftmouse button will return to the netrw browser
1249window.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001250
Bram Moolenaar446cb832008-06-24 21:56:24 +00001251Netrw attempts to speed up browsing, especially for remote browsing where one
1252may have to enter passwords, by keeping and re-using previously obtained
1253directory listing buffers. The |g:netrw_fastbrowse| variable is used to
1254control this behavior; one may have slow browsing (no buffer re-use), medium
1255speed browsing (re-use directory buffer listings only for remote directories),
1256and fast browsing (re-use directory buffer listings as often as possible).
1257The price for such re-use is that when changes are made (such as new files
1258are introduced into a directory), the listing may become out-of-date. One may
1259always refresh directory listing buffers by pressing ctrl-L (see
1260|netrw-ctrl-l|).
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001261
1262 *netrw-s-cr*
1263Squeezing the Current Tree-Listing Directory~
1264
1265When the tree listing style is enabled (see |netrw-i|) and one is using
1266gvim, then the <s-cr> mapping may be used to squeeze (close) the
1267directory currently containing the cursor.
1268
1269Otherwise, one may remap a key combination of one's own choice to get
1270this effect: >
1271
1272 nmap <buffer> <silent> <nowait> YOURKEYCOMBO <Plug>NetrwTreeSqueeze
1273<
1274Put this line in $HOME/ftplugin/netrw/netrw.vim; it needs to be generated
1275for netrw buffers only.
Bram Moolenaara6878372014-03-22 21:02:50 +01001276
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001277Related topics:
1278 |netrw-ctrl-r| |netrw-o| |netrw-p|
1279 |netrw-P| |netrw-t| |netrw-v|
1280Associated setting variables:
1281 |g:netrw_browse_split| |g:netrw_fastbrowse|
1282 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1283 |g:netrw_ftp_timelist_cmd| |g:netrw_ssh_browse_reject|
1284 |g:netrw_ssh_cmd| |g:netrw_use_noswf|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001285
1286
1287BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz* {{{2
1288
1289Normally one enters a file or directory using the <cr>. However, the "o" map
1290allows one to open a new window to hold the new directory listing or file. A
1291horizontal split is used. (for vertical splitting, see |netrw-v|)
1292
1293Normally, the o key splits the window horizontally with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001294cursor at the top.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001295
1296Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
1297
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001298Related topics:
1299 |netrw-ctrl-r| |netrw-o| |netrw-p|
1300 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001301Associated setting variables:
1302 |g:netrw_alto| control above/below splitting
1303 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001304
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001305BROWSING WITH A NEW TAB *netrw-t* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001306
1307Normally one enters a file or directory using the <cr>. The "t" map
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001308allows one to open a new window holding the new directory listing or file in
Bram Moolenaarff034192013-04-24 18:51:19 +02001309a new tab.
1310
1311If you'd like to have the new listing in a background tab, use |gT|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001312
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001313Related topics:
1314 |netrw-ctrl-r| |netrw-o| |netrw-p|
1315 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001316Associated setting variables:
1317 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001318
1319BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
1320
1321Normally one enters a file or directory using the <cr>. However, the "v" map
1322allows one to open a new window to hold the new directory listing or file. A
1323vertical split is used. (for horizontal splitting, see |netrw-o|)
1324
1325Normally, the v key splits the window vertically with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001326cursor at the left.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001327
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001328There is only one tree listing buffer; using "v" on a displayed subdirectory
Bram Moolenaar446cb832008-06-24 21:56:24 +00001329will split the screen, but the same buffer will be shown twice.
1330
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001331Related topics:
1332 |netrw-ctrl-r| |netrw-o| |netrw-p|
1333 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001334Associated setting variables:
1335 |g:netrw_altv| control right/left splitting
1336 |g:netrw_winsize| control initial sizing
1337
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001338
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001339BROWSING USING A GVIM SERVER *netrw-ctrl-r* {{{2
1340
1341One may keep a browsing gvim separate from the gvim being used to edit.
1342Use the <c-r> map on a file (not a directory) in the netrw browser, and it
1343will use a gvim server (see |g:netrw_servername|). Subsequent use of <cr>
1344(see |netrw-cr|) will re-use that server for editing files.
1345
1346Related topics:
1347 |netrw-ctrl-r| |netrw-o| |netrw-p|
1348 |netrw-P| |netrw-t| |netrw-v|
1349Associated setting variables:
1350 |g:netrw_servername| : sets name of server
1351 |g:netrw_browse_split| : controls how <cr> will open files
1352
1353
1354CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001355
Bram Moolenaar9964e462007-05-05 17:54:07 +00001356The "i" map cycles between the thin, long, wide, and tree listing formats.
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001357
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001358The thin listing format gives just the files' and directories' names.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001359
Bram Moolenaar8299df92004-07-10 09:47:34 +00001360The long listing is either based on the "ls" command via ssh for remote
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001361directories or displays the filename, file size (in bytes), and the time and
1362date of last modification for local directories. With the long listing
1363format, netrw is not able to recognize filenames which have trailing spaces.
1364Use the thin listing format for such files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001365
Bram Moolenaar9964e462007-05-05 17:54:07 +00001366The wide listing format uses two or more contiguous spaces to delineate
1367filenames; when using that format, netrw won't be able to recognize or use
1368filenames which have two or more contiguous spaces embedded in the name or any
1369trailing spaces. The thin listing format will, however, work with such files.
Bram Moolenaar13600302014-05-22 18:26:40 +02001370The wide listing format is the most compact.
Bram Moolenaar9964e462007-05-05 17:54:07 +00001371
1372The tree listing format has a top directory followed by files and directories
Bram Moolenaar13600302014-05-22 18:26:40 +02001373preceded by one or more "|"s, which indicate the directory depth. One may
1374open and close directories by pressing the <cr> key while atop the directory
1375name.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001376
1377One may make a preferred listing style your default; see |g:netrw_liststyle|.
1378As an example, by putting the following line in your .vimrc, >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001379 let g:netrw_liststyle= 3
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001380the tree style will become your default listing style.
Bram Moolenaar8299df92004-07-10 09:47:34 +00001381
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001382One typical way to use the netrw tree display is to: >
1383
1384 vim .
1385 (use i until a tree display shows)
1386 navigate to a file
1387 v (edit as desired in vertically split window)
1388 ctrl-w h (to return to the netrw listing)
1389 P (edit newly selected file in the previous window)
1390 ctrl-w h (to return to the netrw listing)
1391 P (edit newly selected file in the previous window)
1392 ...etc...
1393<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001394Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
1395 |g:netrw_timefmt| |g:netrw_list_cmd|
Bram Moolenaar8299df92004-07-10 09:47:34 +00001396
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001397CHANGE FILE PERMISSION *netrw-gp* {{{2
1398
1399"gp" will ask you for a new permission for the file named under the cursor.
1400Currently, this only works for local files.
1401
1402Associated setting variables: |g:netrw_chgperm|
1403
Bram Moolenaar83bab712005-08-01 21:58:57 +00001404
Bram Moolenaar446cb832008-06-24 21:56:24 +00001405CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
Bram Moolenaar843ee412004-06-30 16:16:41 +00001406
Bram Moolenaar446cb832008-06-24 21:56:24 +00001407To change directory back to a bookmarked directory, use
Bram Moolenaar843ee412004-06-30 16:16:41 +00001408
Bram Moolenaar446cb832008-06-24 21:56:24 +00001409 {cnt}gb
Bram Moolenaar843ee412004-06-30 16:16:41 +00001410
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001411Any count may be used to reference any of the bookmarks.
Bram Moolenaarff034192013-04-24 18:51:19 +02001412Note that |netrw-qb| shows both bookmarks and history; to go
1413to a location stored in the history see |netrw-u| and |netrw-U|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001414
1415Related Topics:
1416 |netrw-mB| how to delete bookmarks
1417 |netrw-mb| how to make a bookmark
1418 |netrw-qb| how to list bookmarks
Bram Moolenaar843ee412004-06-30 16:16:41 +00001419
Bram Moolenaar843ee412004-06-30 16:16:41 +00001420
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001421CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001422
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001423Every time you change to a new directory (new for the current session), netrw
1424will save the directory in a recently-visited directory history list (unless
1425|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
1426map, one can change to an earlier directory (predecessor). To do the
1427opposite, see |netrw-U|.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001428
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001429The "u" map also accepts counts to go back in the history several slots. For
1430your convenience, qb (see |netrw-qb|) lists the history number which may be
1431used in that count.
Bram Moolenaarff034192013-04-24 18:51:19 +02001432
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001433 *.netrwhist*
Bram Moolenaarff034192013-04-24 18:51:19 +02001434See |g:netrw_dirhistmax| for how to control the quantity of history stack
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001435slots. The file ".netrwhist" holds history when netrw (and vim) is not
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001436active. By default, its stored on the first directory on the user's
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001437|'runtimepath'|.
1438
1439Related Topics:
1440 |netrw-U| changing to a successor directory
1441 |g:netrw_home| controls where .netrwhist is kept
Bram Moolenaarff034192013-04-24 18:51:19 +02001442
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001443
Bram Moolenaar446cb832008-06-24 21:56:24 +00001444CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001445
1446With the "U" map, one can change to a later directory (successor).
1447This map is the opposite of the "u" map. (see |netrw-u|) Use the
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001448qb map to list both the bookmarks and history. (see |netrw-qb|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001449
Bram Moolenaarff034192013-04-24 18:51:19 +02001450The "U" map also accepts counts to go forward in the history several slots.
1451
1452See |g:netrw_dirhistmax| for how to control the quantity of history stack
1453slots.
1454
Bram Moolenaar446cb832008-06-24 21:56:24 +00001455
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001456CHANGING TREE TOP *netrw-ntree* *:Ntree* *netrw-gn* {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01001457
1458One may specify a new tree top for tree listings using >
1459
1460 :Ntree [dirname]
1461
1462Without a "dirname", the current line is used (and any leading depth
1463information is elided).
1464With a "dirname", the specified directory name is used.
1465
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001466The "gn" map will take the word below the cursor and use that for
1467changing the top of the tree listing.
1468
Bram Moolenaar8d043172014-01-23 14:24:41 +01001469
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001470NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001471
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001472With :NetrwClean one may easily remove netrw from one's home directory;
Bram Moolenaar446cb832008-06-24 21:56:24 +00001473more precisely, from the first directory on your |'runtimepath'|.
1474
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001475With :NetrwClean!, netrw will attempt to remove netrw from all directories on
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001476your |'runtimepath'|. Of course, you have to have write/delete permissions
1477correct to do this.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001478
1479With either form of the command, netrw will first ask for confirmation
1480that the removal is in fact what you want to do. If netrw doesn't have
1481permission to remove a file, it will issue an error message.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001482
Bram Moolenaar9964e462007-05-05 17:54:07 +00001483 *netrw-gx*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001484CUSTOMIZING BROWSING WITH A SPECIAL HANDLER *netrw-x* *netrw-handler* {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00001485 (also see |netrw_filehandler|)
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001486
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001487Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001488best seen with a special handler (ie. a tool provided with your computer's
1489operating system). Netrw allows one to invoke such special handlers by: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001490
1491 * when Exploring, hit the "x" key
1492 * when editing, hit gx with the cursor atop the special filename
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001493< (latter not available if the |g:netrw_nogx| variable exists)
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001494
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001495Netrw determines which special handler by the following method:
1496
1497 * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
1498 view files. Examples of useful settings (place into your <.vimrc>): >
1499
1500 :let g:netrw_browsex_viewer= "kfmclient exec"
1501< or >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001502 :let g:netrw_browsex_viewer= "xdg-open"
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001503<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001504 If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
1505 used instead (see |netrw_filehandler|).
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001506
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001507 * for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001508 * for Gnome (with gnome-open): gnome-open is used.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001509 * for KDE (with kfmclient) : kfmclient is used
Bram Moolenaar446cb832008-06-24 21:56:24 +00001510 * for Mac OS X : open is used.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001511 * otherwise the netrwFileHandler plugin is used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001512
1513The file's suffix is used by these various approaches to determine an
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001514appropriate application to use to "handle" these files. Such things as
1515OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
1516*.eps) can be handled.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001517
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001518The gx mapping extends to all buffers; apply "gx" while atop a word and netrw
1519will apply a special handler to it (like "x" works when in a netrw buffer).
1520One may also use visual mode (see |visual-start|) to select the text that the
1521special handler will use. Normally gx uses expand("<cfile>") to pick up the
1522text under the cursor; one may change what |expand()| uses via the
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001523|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
1524expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
1525select the text to be used by gx by making a visual selection (see
1526|visual-block|) and then pressing gx.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001527
1528Associated setting variables:
1529 |g:netrw_gx| control how gx picks up the text under the cursor
1530 |g:netrw_nogx| prevent gx map while editing
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02001531 |g:netrw_suppress_gx_mesg| controls gx's suppression of browser messages
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001532
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001533 *netrw_filehandler*
Bram Moolenaar9964e462007-05-05 17:54:07 +00001534
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001535When |g:netrw_browsex_viewer| exists and is "-", then netrw will attempt to
1536handle the special file with a vim function. The "x" map applies a function
1537to a file, based on its extension. Of course, the handler function must exist
1538for it to be called!
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001539>
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001540 Ex. mypgm.html x -> NFH_html("scp://user@host/some/path/mypgm.html")
1541
1542< Users may write their own netrw File Handler functions to
1543 support more suffixes with special handling. See
1544 <autoload/netrwFileHandlers.vim> for examples on how to make
1545 file handler functions. As an example: >
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001546
Bram Moolenaar9964e462007-05-05 17:54:07 +00001547 " NFH_suffix(filename)
1548 fun! NFH_suffix(filename)
1549 ..do something special with filename..
1550 endfun
1551<
1552These functions need to be defined in some file in your .vim/plugin
1553(vimfiles\plugin) directory. Vim's function names may not have punctuation
1554characters (except for the underscore) in them. To support suffices that
1555contain such characters, netrw will first convert the suffix using the
1556following table: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001557
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001558 @ -> AT ! -> EXCLAMATION % -> PERCENT
1559 : -> COLON = -> EQUAL ? -> QUESTION
Bram Moolenaar9964e462007-05-05 17:54:07 +00001560 , -> COMMA - -> MINUS ; -> SEMICOLON
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001561 $ -> DOLLAR + -> PLUS ~ -> TILDE
1562<
Bram Moolenaar9964e462007-05-05 17:54:07 +00001563So, for example: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001564
Bram Moolenaar9964e462007-05-05 17:54:07 +00001565 file.rcs,v -> NFH_rcsCOMMAv()
1566<
1567If more such translations are necessary, please send me email: >
1568 NdrOchip at ScampbellPfamily.AbizM - NOSPAM
1569with a request.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001570
Bram Moolenaar446cb832008-06-24 21:56:24 +00001571Associated setting variable: |g:netrw_browsex_viewer|
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001572
Bram Moolenaar446cb832008-06-24 21:56:24 +00001573 *netrw-curdir*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001574DELETING BOOKMARKS *netrw-mB* {{{2
1575
1576To delete a bookmark, use >
1577
1578 {cnt}mB
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001579
1580If there are marked files, then mB will remove them from the
1581bookmark list.
1582
1583Alternatively, one may use :NetrwMB! (see |netrw-:NetrwMB|). >
1584
1585 :NetrwMB! [files/directories]
1586
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001587Related Topics:
1588 |netrw-gb| how to return (go) to a bookmark
1589 |netrw-mb| how to make a bookmark
1590 |netrw-qb| how to list bookmarks
1591
1592
Bram Moolenaar446cb832008-06-24 21:56:24 +00001593DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001594
Bram Moolenaar446cb832008-06-24 21:56:24 +00001595If files have not been marked with |netrw-mf|: (local marked file list)
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001596
Bram Moolenaar446cb832008-06-24 21:56:24 +00001597 Deleting/removing files and directories involves moving the cursor to the
1598 file/directory to be deleted and pressing "D". Directories must be empty
1599 first before they can be successfully removed. If the directory is a
1600 softlink to a directory, then netrw will make two requests to remove the
1601 directory before succeeding. Netrw will ask for confirmation before doing
1602 the removal(s). You may select a range of lines with the "V" command
1603 (visual selection), and then pressing "D".
Bram Moolenaar9964e462007-05-05 17:54:07 +00001604
Bram Moolenaar446cb832008-06-24 21:56:24 +00001605If files have been marked with |netrw-mf|: (local marked file list)
1606
1607 Marked files (and empty directories) will be deleted; again, you'll be
1608 asked to confirm the deletion before it actually takes place.
1609
Bram Moolenaar13600302014-05-22 18:26:40 +02001610A further approach is to delete files which match a pattern.
1611
1612 * use :MF pattern (see |netrw-:MF|); then press "D".
1613
1614 * use mr (see |netrw-mr|) which will prompt you for pattern.
1615 This will cause the matching files to be marked. Then,
1616 press "D".
1617
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001618If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
1619is used to remove directories; instead, vim's |delete()| is used with
1620the "d" option. Please note that only empty directories may be deleted
1621with the "D" mapping. Regular files are deleted with |delete()|, too.
1622
Bram Moolenaar446cb832008-06-24 21:56:24 +00001623The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
Bram Moolenaar13600302014-05-22 18:26:40 +02001624used to control the attempts to remove remote files and directories. The
Bram Moolenaar446cb832008-06-24 21:56:24 +00001625g:netrw_rm_cmd is used with files, and its default value is:
1626
1627 g:netrw_rm_cmd: ssh HOSTNAME rm
1628
1629The g:netrw_rmdir_cmd variable is used to support the removal of directories.
1630Its default value is:
1631
Bram Moolenaar13600302014-05-22 18:26:40 +02001632 |g:netrw_rmdir_cmd|: ssh HOSTNAME rmdir
Bram Moolenaar446cb832008-06-24 21:56:24 +00001633
1634If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
1635to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
1636
Bram Moolenaar13600302014-05-22 18:26:40 +02001637 |g:netrw_rmf_cmd|: ssh HOSTNAME rm -f
Bram Moolenaar446cb832008-06-24 21:56:24 +00001638
Bram Moolenaar15146672011-10-20 22:22:38 +02001639Related topics: |netrw-d|
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001640Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001641 |g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001642
1643
Bram Moolenaar446cb832008-06-24 21:56:24 +00001644*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001645*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001646DIRECTORY EXPLORATION COMMANDS {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001647
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001648 :[N]Explore[!] [dir]... Explore directory of current file *:Explore*
1649 :[N]Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001650 :[N]Lexplore[!] [dir]... Left Explorer Toggle *:Lexplore*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001651 :[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001652 :[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001653 :Texplore [dir]... Tab & Explore *:Texplore*
1654 :Rexplore ... Return to/from Explorer *:Rexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001655
1656 Used with :Explore **/pattern : (also see |netrw-starstar|)
1657 :Nexplore............. go to next matching file *:Nexplore*
1658 :Pexplore............. go to previous matching file *:Pexplore*
1659
Bram Moolenaara6878372014-03-22 21:02:50 +01001660 *netrw-:Explore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001661:Explore will open the local-directory browser on the current file's
1662 directory (or on directory [dir] if specified). The window will be
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001663 split only if the file has been modified and |'hidden'| is not set,
1664 otherwise the browsing window will take over that window. Normally
1665 the splitting is taken horizontally.
Bram Moolenaara6878372014-03-22 21:02:50 +01001666 Also see: |netrw-:Rexplore|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001667:Explore! is like :Explore, but will use vertical splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001668
Bram Moolenaara6878372014-03-22 21:02:50 +01001669 *netrw-:Hexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001670:Hexplore [dir] does an :Explore with |:belowright| horizontal splitting.
1671:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001672
1673 *netrw-:Lexplore*
1674:[N]Lexplore [dir] toggles a full height Explorer window on the left hand side
1675 of the current tab. It will open a netrw window on the current
1676 directory if [dir] is omitted; a :Lexplore [dir] will show the
1677 specified directory in the left-hand side browser display no matter
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001678 from which window the command is issued.
1679
1680 By default, :Lexplore will change an uninitialized |g:netrw_chgwin|
1681 to 2; edits will thus preferentially be made in window#2.
1682
1683 The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001684 window.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001685
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001686 Those who like this method often also like tree style displays;
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001687 see |g:netrw_liststyle|.
1688
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001689:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
1690 Explorer window will open on the right hand side and an
1691 uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
1692 preferentially occur in the leftmost window).
1693
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001694 Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
1695 |netrw-p| |netrw-P| |g:netrw_chgwin|
1696 |netrw-c-tab| |g:netrw_winsize|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001697
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001698 *netrw-:Sexplore*
1699:[N]Sexplore will always split the window before invoking the local-directory
1700 browser. As with Explore, the splitting is normally done
1701 horizontally.
1702:[N]Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically.
1703
Bram Moolenaara6878372014-03-22 21:02:50 +01001704 *netrw-:Texplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001705:Texplore [dir] does a |:tabnew| before generating the browser window
Bram Moolenaar446cb832008-06-24 21:56:24 +00001706
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001707 *netrw-:Vexplore*
1708:[N]Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
1709:[N]Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001710
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001711The optional parameters are:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001712
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001713 [N]: This parameter will override |g:netrw_winsize| to specify the quantity of
1714 rows and/or columns the new explorer window should have.
1715 Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
1716 user, is used to control the quantity of rows and/or columns new
1717 explorer windows should have.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001718
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001719 [dir]: By default, these explorer commands use the current file's directory.
1720 However, one may explicitly provide a directory (path) to use instead;
1721 ie. >
1722
1723 :Explore /some/path
1724<
Bram Moolenaara6878372014-03-22 21:02:50 +01001725 *netrw-:Rexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001726:Rexplore This command is a little different from the other Explore commands
1727 as it doesn't necessarily open an Explorer window.
Bram Moolenaara6878372014-03-22 21:02:50 +01001728
1729 Return to Explorer~
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001730 When one edits a file using netrw which can occur, for example,
1731 when pressing <cr> while the cursor is atop a filename in a netrw
1732 browser window, a :Rexplore issued while editing that file will
1733 return the display to that of the last netrw browser display in
1734 that window.
Bram Moolenaara6878372014-03-22 21:02:50 +01001735
1736 Return from Explorer~
1737 Conversely, when one is editing a directory, issuing a :Rexplore
Bram Moolenaar13600302014-05-22 18:26:40 +02001738 will return to editing the file that was last edited in that
Bram Moolenaara6878372014-03-22 21:02:50 +01001739 window.
1740
1741 The <2-leftmouse> map (which is only available under gvim and
1742 cooperative terms) does the same as :Rexplore.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001743
Bram Moolenaar8d043172014-01-23 14:24:41 +01001744Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
1745
Bram Moolenaar446cb832008-06-24 21:56:24 +00001746
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001747*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat* *netrw-grep*
1748EXPLORING WITH STARS AND PATTERNS {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001749
1750When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001751following four patterns Explore generates a list of files which satisfy the
1752request for the local file system. These exploration patterns will not work
1753with remote file browsing.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001754
1755 */filepat files in current directory which satisfy filepat
1756 **/filepat files in current directory or below which satisfy the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001757 file pattern
Bram Moolenaar446cb832008-06-24 21:56:24 +00001758 *//pattern files in the current directory which contain the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001759 pattern (vimgrep is used)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001760 **//pattern files in the current directory or below which contain
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001761 the pattern (vimgrep is used)
Bram Moolenaar572cb562005-08-05 21:35:02 +00001762<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001763The cursor will be placed on the first file in the list. One may then
1764continue to go to subsequent files on that list via |:Nexplore| or to
1765preceding files on that list with |:Pexplore|. Explore will update the
1766directory and place the cursor appropriately.
1767
1768A plain >
1769 :Explore
1770will clear the explore list.
1771
1772If your console or gui produces recognizable shift-up or shift-down sequences,
1773then you'll likely find using shift-downarrow and shift-uparrow convenient.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001774They're mapped by netrw as follows:
Bram Moolenaar446cb832008-06-24 21:56:24 +00001775
1776 <s-down> == Nexplore, and
1777 <s-up> == Pexplore.
1778
1779As an example, consider
1780>
1781 :Explore */*.c
1782 :Nexplore
1783 :Nexplore
1784 :Pexplore
1785<
1786The status line will show, on the right hand side of the status line, a
1787message like "Match 3 of 20".
1788
Bram Moolenaara6878372014-03-22 21:02:50 +01001789Associated setting variables:
1790 |g:netrw_keepdir| |g:netrw_browse_split|
1791 |g:netrw_fastbrowse| |g:netrw_ftp_browse_reject|
1792 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1793 |g:netrw_ftp_timelist_cmd| |g:netrw_list_cmd|
1794 |g:netrw_liststyle|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001795
1796
Bram Moolenaar446cb832008-06-24 21:56:24 +00001797DISPLAYING INFORMATION ABOUT FILE *netrw-qf* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001798
Bram Moolenaar446cb832008-06-24 21:56:24 +00001799With the cursor atop a filename, pressing "qf" will reveal the file's size
1800and last modification timestamp. Currently this capability is only available
1801for local files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001802
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001803
Bram Moolenaar446cb832008-06-24 21:56:24 +00001804EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001805
Bram Moolenaar446cb832008-06-24 21:56:24 +00001806The "<ctrl-h>" map brings up a requestor allowing the user to change the
1807file/directory hiding list contained in |g:netrw_list_hide|. The hiding list
1808consists of one or more patterns delimited by commas. Files and/or
1809directories satisfying these patterns will either be hidden (ie. not shown) or
1810be the only ones displayed (see |netrw-a|).
1811
1812The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
1813hiding list and the hiding of files or directories that begin with ".".
1814
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001815As an example, >
1816 let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
1817Effectively, this makes the effect of a |netrw-gh| command the initial setting.
1818What it means:
1819
1820 \(^\|\s\s\) : if the line begins with the following, -or-
1821 two consecutive spaces are encountered
1822 \zs : start the hiding match now
1823 \. : if it now begins with a dot
1824 \S\+ : and is followed by one or more non-whitespace
1825 characters
1826
Bram Moolenaar446cb832008-06-24 21:56:24 +00001827Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
1828Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001829
Bram Moolenaar15146672011-10-20 22:22:38 +02001830 *netrw-sort-sequence*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001831EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
1832
1833When "Sorted by" is name, one may specify priority via the sorting sequence
1834(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
1835name-listing by suffix, although any pattern will do. Patterns are delimited
1836by commas. The default sorting sequence is (all one line):
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001837
1838For Unix: >
1839 '[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
1840 \.info$,\.swp$,\.bak$,\~$'
1841<
1842Otherwise: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001843 '[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
1844 \.swp$,\.bak$,\~$'
1845<
1846The lone * is where all filenames not covered by one of the other patterns
1847will end up. One may change the sorting sequence by modifying the
1848g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
1849using the "S" map.
1850
Bram Moolenaarc236c162008-07-13 17:41:49 +00001851Related topics: |netrw-s| |netrw-S|
1852Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001853
1854
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001855EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
Bram Moolenaar97d62492012-11-15 21:28:22 +01001856
1857Pressing X while the cursor is atop an executable file will yield a prompt
1858using the filename asking for any arguments. Upon pressing a [return], netrw
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001859will then call |system()| with that command and arguments. The result will be
1860displayed by |:echomsg|, and so |:messages| will repeat display of the result.
1861Ansi escape sequences will be stripped out.
1862
1863See |cmdline-window| for directions for more on how to edit the arguments.
Bram Moolenaar97d62492012-11-15 21:28:22 +01001864
1865
Bram Moolenaaradc21822011-04-01 18:03:16 +02001866FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
1867
1868Remote symbolic links (ie. those listed via ssh or ftp) are problematic
1869in that it is difficult to tell whether they link to a file or to a
1870directory.
1871
1872To force treatment as a file: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001873 gf
Bram Moolenaaradc21822011-04-01 18:03:16 +02001874<
1875To force treatment as a directory: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001876 gd
Bram Moolenaaradc21822011-04-01 18:03:16 +02001877<
1878
Bram Moolenaar446cb832008-06-24 21:56:24 +00001879GOING UP *netrw--* {{{2
1880
1881To go up a directory, press "-" or press the <cr> when atop the ../ directory
1882entry in the listing.
1883
1884Netrw will use the command in |g:netrw_list_cmd| to perform the directory
1885listing operation after changing HOSTNAME to the host specified by the
Bram Moolenaara6878372014-03-22 21:02:50 +01001886user-prpvided url. By default netrw provides the command as: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001887
1888 ssh HOSTNAME ls -FLa
Bram Moolenaara6878372014-03-22 21:02:50 +01001889<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001890where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
1891read. Naturally, the user may override this command with whatever is
1892preferred. The NetList function which implements remote browsing
1893expects that directories will be flagged by a trailing slash.
1894
1895
1896HIDING FILES OR DIRECTORIES *netrw-a* *netrw-hiding* {{{2
1897
1898Netrw's browsing facility allows one to use the hiding list in one of three
1899ways: ignore it, hide files which match, and show only those files which
1900match.
1901
1902If no files have been marked via |netrw-mf|:
1903
1904The "a" map allows the user to cycle through the three hiding modes.
1905
1906The |g:netrw_list_hide| variable holds a comma delimited list of patterns
1907based on regular expressions (ex. ^.*\.obj$,^\.) which specify the hiding list.
1908(also see |netrw-ctrl-h|) To set the hiding list, use the <c-h> map. As an
1909example, to hide files which begin with a ".", one may use the <c-h> map to
1910set the hiding list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*'
1911in one's <.vimrc>). One may then use the "a" key to show all files, hide
1912matching files, or to show only the matching files.
1913
1914 Example: \.[ch]$
1915 This hiding list command will hide/show all *.c and *.h files.
1916
1917 Example: \.c$,\.h$
1918 This hiding list command will also hide/show all *.c and *.h
1919 files.
1920
1921Don't forget to use the "a" map to select the mode (normal/hiding/show) you
1922want!
1923
1924If files have been marked using |netrw-mf|, then this command will:
1925
1926 if showing all files or non-hidden files:
1927 modify the g:netrw_list_hide list by appending the marked files to it
1928 and showing only non-hidden files.
1929
1930 else if showing hidden files only:
1931 modify the g:netrw_list_hide list by removing the marked files from it
1932 and showing only non-hidden files.
1933 endif
1934
1935 *netrw-gh* *netrw-hide*
1936As a quick shortcut, one may press >
1937 gh
1938to toggle between hiding files which begin with a period (dot) and not hiding
1939them.
1940
Bram Moolenaar8d043172014-01-23 14:24:41 +01001941Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001942Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
1943
Bram Moolenaar8d043172014-01-23 14:24:41 +01001944 *netrw-gitignore*
1945Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
1946|g:netrw_list_hide| automatically hides all git-ignored files.
1947
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001948'netrw_gitignore#Hide' searches for patterns in the following files: >
1949
Bram Moolenaar8d043172014-01-23 14:24:41 +01001950 './.gitignore'
1951 './.git/info/exclude'
1952 global gitignore file: `git config --global core.excludesfile`
1953 system gitignore file: `git config --system core.excludesfile`
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001954<
Bram Moolenaar8d043172014-01-23 14:24:41 +01001955Files that do not exist, are ignored.
1956Git-ignore patterns are taken from existing files, and converted to patterns for
1957hiding files. For example, if you had '*.log' in your '.gitignore' file, it
1958would be converted to '.*\.log'.
1959
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001960To use this function, simply assign its output to |g:netrw_list_hide| option. >
Bram Moolenaar8d043172014-01-23 14:24:41 +01001961
1962 Example: let g:netrw_list_hide= netrw_gitignore#Hide()
1963 Git-ignored files are hidden in Netrw.
1964
1965 Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
1966 Function can take additional files with git-ignore patterns.
1967
1968 Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
1969 Combining 'netrw_gitignore#Hide' with custom patterns.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001970<
Bram Moolenaar8d043172014-01-23 14:24:41 +01001971
Bram Moolenaar446cb832008-06-24 21:56:24 +00001972IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001973
1974Especially with the remote directory browser, constantly entering the password
1975is tedious.
1976
Bram Moolenaar9964e462007-05-05 17:54:07 +00001977For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00001978tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip
1979for setting up no-password ssh and scp and discusses associated security
Bram Moolenaar9964e462007-05-05 17:54:07 +00001980issues. It used to be available at http://hacks.oreilly.com/pub/h/66 ,
1981but apparently that address is now being redirected to some "hackzine".
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001982I'll attempt a summary based on that article and on a communication from
1983Ben Schmidt:
Bram Moolenaar843ee412004-06-30 16:16:41 +00001984
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001985 1. Generate a public/private key pair on the local machine
1986 (ssh client): >
1987 ssh-keygen -t rsa
1988 (saving the file in ~/.ssh/id_rsa as prompted)
1989<
1990 2. Just hit the <CR> when asked for passphrase (twice) for no
1991 passphrase. If you do use a passphrase, you will also need to use
1992 ssh-agent so you only have to type the passphrase once per session.
1993 If you don't use a passphrase, simply logging onto your local
1994 computer or getting access to the keyfile in any way will suffice
1995 to access any ssh servers which have that key authorized for login.
1996
1997 3. This creates two files: >
1998 ~/.ssh/id_rsa
1999 ~/.ssh/id_rsa.pub
2000<
2001 4. On the target machine (ssh server): >
2002 cd
2003 mkdir -p .ssh
2004 chmod 0700 .ssh
2005<
2006 5. On your local machine (ssh client): (one line) >
2007 ssh {serverhostname}
2008 cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
2009<
2010 or, for OpenSSH, (one line) >
2011 ssh {serverhostname}
2012 cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
2013<
2014You can test it out with >
2015 ssh {serverhostname}
2016and you should be log onto the server machine without further need to type
2017anything.
2018
2019If you decided to use a passphrase, do: >
2020 ssh-agent $SHELL
2021 ssh-add
2022 ssh {serverhostname}
2023You will be prompted for your key passphrase when you use ssh-add, but not
2024subsequently when you use ssh. For use with vim, you can use >
2025 ssh-agent vim
2026and, when next within vim, use >
2027 :!ssh-add
2028Alternatively, you can apply ssh-agent to the terminal you're planning on
2029running vim in: >
2030 ssh-agent xterm &
2031and do ssh-add whenever you need.
Bram Moolenaar843ee412004-06-30 16:16:41 +00002032
Bram Moolenaar9964e462007-05-05 17:54:07 +00002033For Windows, folks on the vim mailing list have mentioned that Pageant helps
2034with avoiding the constant need to enter the password.
Bram Moolenaar433f7c82006-03-21 21:29:36 +00002035
Bram Moolenaar446cb832008-06-24 21:56:24 +00002036Kingston Fung wrote about another way to avoid constantly needing to enter
2037passwords:
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00002038
Bram Moolenaar446cb832008-06-24 21:56:24 +00002039 In order to avoid the need to type in the password for scp each time, you
2040 provide a hack in the docs to set up a non password ssh account. I found a
2041 better way to do that: I can use a regular ssh account which uses a
2042 password to access the material without the need to key-in the password
2043 each time. It's good for security and convenience. I tried ssh public key
2044 authorization + ssh-agent, implementing this, and it works! Here are two
2045 links with instructions:
2046
2047 http://www.ibm.com/developerworks/library/l-keyc2/
2048 http://sial.org/howto/openssh/publickey-auth/
2049
2050
Bram Moolenaar8d043172014-01-23 14:24:41 +01002051 Ssh hints:
2052
2053 Thomer Gil has provided a hint on how to speed up netrw+ssh:
2054 http://thomer.com/howtos/netrw_ssh.html
2055
2056 Alex Young has several hints on speeding ssh up:
2057 http://usevim.com/2012/03/16/editing-remote-files/
2058
2059
Bram Moolenaar446cb832008-06-24 21:56:24 +00002060LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
2061
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002062Pressing "qb" (query bookmarks) will list both the bookmarked directories and
2063directory traversal history.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002064
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002065Related Topics:
2066 |netrw-gb| how to return (go) to a bookmark
2067 |netrw-mb| how to make a bookmark
2068 |netrw-mB| how to delete bookmarks
2069 |netrw-u| change to a predecessor directory via the history stack
2070 |netrw-U| change to a successor directory via the history stack
Bram Moolenaar446cb832008-06-24 21:56:24 +00002071
2072MAKING A NEW DIRECTORY *netrw-d* {{{2
2073
2074With the "d" map one may make a new directory either remotely (which depends
2075on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002076global variable g:netrw_localmkdir). Netrw will issue a request for the new
Bram Moolenaar446cb832008-06-24 21:56:24 +00002077directory's name. A bare <CR> at that point will abort the making of the
2078directory. Attempts to make a local directory that already exists (as either
2079a file or a directory) will be detected, reported on, and ignored.
2080
Bram Moolenaar15146672011-10-20 22:22:38 +02002081Related topics: |netrw-D|
Bram Moolenaar8d043172014-01-23 14:24:41 +01002082Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
2083 |g:netrw_remote_mkdir| |netrw-%|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002084
2085
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002086MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002087
2088By default, |g:netrw_keepdir| is 1. This setting means that the current
Bram Moolenaarff034192013-04-24 18:51:19 +02002089directory will not track the browsing directory. (done for backwards
2090compatibility with v6's file explorer).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002091
Bram Moolenaarff034192013-04-24 18:51:19 +02002092Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002093track netrw's browsing directory.
2094
2095However, given the default setting for g:netrw_keepdir of 1 where netrw
2096maintains its own separate notion of the current directory, in order to make
Bram Moolenaar85850f32019-07-19 22:05:51 +02002097the two directories the same, use the "cd" map (type cd). That map will
Bram Moolenaar446cb832008-06-24 21:56:24 +00002098set Vim's notion of the current directory to netrw's current browsing
2099directory.
2100
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002101*netrw-c* : This map's name has been changed from "c" to cd (see |netrw-cd|).
2102 This change was done to allow for |netrw-cb| and |netrw-cB| maps.
2103
Bram Moolenaar446cb832008-06-24 21:56:24 +00002104Associated setting variable: |g:netrw_keepdir|
2105
Bram Moolenaara6878372014-03-22 21:02:50 +01002106MARKING FILES *netrw-:MF* *netrw-mf* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002107 (also see |netrw-mr|)
2108
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002109Netrw provides several ways to mark files:
Bram Moolenaara6878372014-03-22 21:02:50 +01002110
2111 * One may mark files with the cursor atop a filename and
Bram Moolenaar13600302014-05-22 18:26:40 +02002112 then pressing "mf".
Bram Moolenaara6878372014-03-22 21:02:50 +01002113
2114 * With gvim, in addition one may mark files with
Bram Moolenaar13600302014-05-22 18:26:40 +02002115 <s-leftmouse>. (see |netrw-mouse|)
Bram Moolenaara6878372014-03-22 21:02:50 +01002116
2117 * One may use the :MF command, which takes a list of
Bram Moolenaar13600302014-05-22 18:26:40 +02002118 files (for local directories, the list may include
2119 wildcards -- see |glob()|) >
Bram Moolenaara6878372014-03-22 21:02:50 +01002120
2121 :MF *.c
2122<
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002123 (Note that :MF uses |<f-args>| to break the line
2124 at spaces)
2125
2126 * Mark files using the |argument-list| (|netrw-mA|)
2127
2128 * Mark files based upon a |location-list| (|netrw-qL|)
Bram Moolenaar13600302014-05-22 18:26:40 +02002129
2130 * Mark files based upon the quickfix list (|netrw-qF|)
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002131 (|quickfix-error-lists|)
Bram Moolenaara6878372014-03-22 21:02:50 +01002132
2133The following netrw maps make use of marked files:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002134
2135 |netrw-a| Hide marked files/directories
2136 |netrw-D| Delete marked files/directories
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002137 |netrw-ma| Move marked files' names to |arglist|
2138 |netrw-mA| Move |arglist| filenames to marked file list
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002139 |netrw-mb| Append marked files to bookmarks
2140 |netrw-mB| Delete marked files from bookmarks
Bram Moolenaar446cb832008-06-24 21:56:24 +00002141 |netrw-mc| Copy marked files to target
2142 |netrw-md| Apply vimdiff to marked files
2143 |netrw-me| Edit marked files
Bram Moolenaarff034192013-04-24 18:51:19 +02002144 |netrw-mF| Unmark marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002145 |netrw-mg| Apply vimgrep to marked files
Bram Moolenaara6878372014-03-22 21:02:50 +01002146 |netrw-mm| Move marked files to target
Bram Moolenaar446cb832008-06-24 21:56:24 +00002147 |netrw-mp| Print marked files
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002148 |netrw-ms| Netrw will source marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002149 |netrw-mt| Set target for |netrw-mm| and |netrw-mc|
2150 |netrw-mT| Generate tags using marked files
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002151 |netrw-mv| Apply vim command to marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002152 |netrw-mx| Apply shell command to marked files
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002153 |netrw-mX| Apply shell command to marked files, en bloc
Bram Moolenaar446cb832008-06-24 21:56:24 +00002154 |netrw-mz| Compress/Decompress marked files
2155 |netrw-O| Obtain marked files
2156 |netrw-R| Rename marked files
2157
2158One may unmark files one at a time the same way one marks them; ie. place
2159the cursor atop a marked file and press "mf". This process also works
2160with <s-leftmouse> using gvim. One may unmark all files by pressing
2161"mu" (see |netrw-mu|).
2162
Bram Moolenaaradc21822011-04-01 18:03:16 +02002163Marked files are highlighted using the "netrwMarkFile" highlighting group,
2164which by default is linked to "Identifier" (see Identifier under
2165|group-name|). You may change the highlighting group by putting something
2166like >
2167
2168 highlight clear netrwMarkFile
2169 hi link netrwMarkFile ..whatever..
2170<
2171into $HOME/.vim/after/syntax/netrw.vim .
2172
Bram Moolenaar8d043172014-01-23 14:24:41 +01002173If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
2174mark one or more files. You may mark multiple files by dragging the shifted
2175leftmouse. (see |netrw-mouse|)
2176
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002177 *markfilelist* *global_markfilelist* *local_markfilelist*
Bram Moolenaar446cb832008-06-24 21:56:24 +00002178All marked files are entered onto the global marked file list; there is only
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002179one such list. In addition, every netrw buffer also has its own buffer-local
2180marked file list; since netrw buffers are associated with specific
2181directories, this means that each directory has its own local marked file
2182list. The various commands which operate on marked files use one or the other
2183of the marked file lists.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002184
Bram Moolenaara6878372014-03-22 21:02:50 +01002185Known Problem: if one is using tree mode (|g:netrw_liststyle|) and several
2186directories have files with the same name, then marking such a file will
2187result in all such files being highlighted as if they were all marked. The
2188|markfilelist|, however, will only have the selected file in it. This problem
2189is unlikely to be fixed.
2190
Bram Moolenaar446cb832008-06-24 21:56:24 +00002191
Bram Moolenaarff034192013-04-24 18:51:19 +02002192UNMARKING FILES *netrw-mF* {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002193 (also see |netrw-mf|, |netrw-mu|)
Bram Moolenaarff034192013-04-24 18:51:19 +02002194
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002195The "mF" command will unmark all files in the current buffer. One may also use
2196mf (|netrw-mf|) on a specific, already marked, file to unmark just that file.
Bram Moolenaarff034192013-04-24 18:51:19 +02002197
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002198MARKING FILES BY LOCATION LIST *netrw-qL* {{{2
2199 (also see |netrw-mf|)
Bram Moolenaarff034192013-04-24 18:51:19 +02002200
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002201One may convert |location-list|s into a marked file list using "qL".
2202You may then proceed with commands such as me (|netrw-me|) to edit them.
2203
2204
2205MARKING FILES BY QUICKFIX LIST *netrw-qF* {{{2
Bram Moolenaarff034192013-04-24 18:51:19 +02002206 (also see |netrw-mf|)
2207
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002208One may convert |quickfix-error-lists| into a marked file list using "qF".
2209You may then proceed with commands such as me (|netrw-me|) to edit them.
2210Quickfix error lists are generated, for example, by calls to |:vimgrep|.
Bram Moolenaarff034192013-04-24 18:51:19 +02002211
2212
Bram Moolenaar446cb832008-06-24 21:56:24 +00002213MARKING FILES BY REGULAR EXPRESSION *netrw-mr* {{{2
2214 (also see |netrw-mf|)
2215
2216One may also mark files by pressing "mr"; netrw will then issue a prompt,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002217"Enter regexp: ". You may then enter a shell-style regular expression such
2218as *.c$ (see |glob()|). For remote systems, glob() doesn't work -- so netrw
2219converts "*" into ".*" (see |regexp|) and marks files based on that. In the
2220future I may make it possible to use |regexp|s instead of glob()-style
2221expressions (yet-another-option).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002222
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002223See |cmdline-window| for directions on more on how to edit the regular
2224expression.
2225
Bram Moolenaar446cb832008-06-24 21:56:24 +00002226
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002227MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
2228 (See |netrw-mf| and |netrw-mr| for how to mark files)
2229 (uses the local marked-file list)
2230
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002231The "mv" map causes netrw to execute an arbitrary vim command on each file on
2232the local marked file list, individually:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002233
2234 * 1split
2235 * sil! keepalt e file
2236 * run vim command
2237 * sil! keepalt wq!
2238
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002239A prompt, "Enter vim command: ", will be issued to elicit the vim command you
2240wish used. See |cmdline-window| for directions for more on how to edit the
2241command.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002242
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002243
2244MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002245 (See |netrw-mf| and |netrw-mr| for how to mark files)
2246 (uses the local marked-file list)
2247
2248Upon activation of the "mx" map, netrw will query the user for some (external)
2249command to be applied to all marked files. All "%"s in the command will be
2250substituted with the name of each marked file in turn. If no "%"s are in the
2251command, then the command will be followed by a space and a marked filename.
2252
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002253Example:
2254 (mark files)
2255 mx
2256 Enter command: cat
2257
2258 The result is a series of shell commands:
2259 cat 'file1'
2260 cat 'file2'
2261 ...
2262
2263
2264MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC *netrw-mX* {{{2
2265 (See |netrw-mf| and |netrw-mr| for how to mark files)
2266 (uses the global marked-file list)
2267
2268Upon activation of the 'mX' map, netrw will query the user for some (external)
2269command to be applied to all marked files on the global marked file list. The
2270"en bloc" means that one command will be executed on all the files at once: >
2271
2272 command files
2273
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002274This approach is useful, for example, to select files and make a tarball: >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002275
2276 (mark files)
2277 mX
2278 Enter command: tar cf mynewtarball.tar
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002279<
2280The command that will be run with this example:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002281
2282 tar cf mynewtarball.tar 'file1' 'file2' ...
2283
Bram Moolenaar446cb832008-06-24 21:56:24 +00002284
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002285MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
2286 (See |netrw-mf| and |netrw-mr| for how to mark files)
2287 (uses the global marked-file list)
2288
2289Using ma, one moves filenames from the marked file list to the argument list.
2290Using mA, one moves filenames from the argument list to the marked file list.
2291
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002292See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
2293
2294
2295MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
2296 (See |netrw-mf| and |netrw-mr| for how to mark files)
2297 (uses the global marked-file list)
2298
2299Using cb, one moves filenames from the marked file list to the buffer list.
2300Using cB, one copies filenames from the buffer list to the marked file list.
2301
2302See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002303
2304
Bram Moolenaar446cb832008-06-24 21:56:24 +00002305MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
2306 (See |netrw-mf| and |netrw-mr| for how to mark files)
2307 (uses the local marked file list)
2308
2309If any marked files are compressed, then "mz" will decompress them.
2310If any marked files are decompressed, then "mz" will compress them
2311using the command specified by |g:netrw_compress|; by default,
2312that's "gzip".
2313
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002314For decompression, netrw uses a |Dictionary| of suffices and their
Bram Moolenaar446cb832008-06-24 21:56:24 +00002315associated decompressing utilities; see |g:netrw_decompress|.
2316
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002317Remember that one can mark multiple files by regular expression
2318(see |netrw-mr|); this is particularly useful to facilitate compressing and
2319decompressing a large number of files.
2320
Bram Moolenaar446cb832008-06-24 21:56:24 +00002321Associated setting variables: |g:netrw_compress| |g:netrw_decompress|
2322
2323MARKED FILES: COPYING *netrw-mc* {{{2
2324 (See |netrw-mf| and |netrw-mr| for how to mark files)
2325 (Uses the global marked file list)
2326
2327Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02002328select file(s) (see |netrw-mf|), and press "mc". The copy is done
2329from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002330
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002331If one does not have a target directory set with |netrw-mt|, then netrw
2332will query you for a directory to copy to.
2333
2334One may also copy directories and their contents (local only) to a target
2335directory.
2336
2337Associated setting variables:
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002338 |g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
2339 |g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002340 |g:netrw_ssh_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002341
2342MARKED FILES: DIFF *netrw-md* {{{2
2343 (See |netrw-mf| and |netrw-mr| for how to mark files)
2344 (uses the global marked file list)
2345
2346Use |vimdiff| to visualize difference between selected files (two or
2347three may be selected for this). Uses the global marked file list.
2348
2349MARKED FILES: EDITING *netrw-me* {{{2
2350 (See |netrw-mf| and |netrw-mr| for how to mark files)
2351 (uses the global marked file list)
2352
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002353The "me" command will place the marked files on the |arglist| and commence
Bram Moolenaar446cb832008-06-24 21:56:24 +00002354editing them. One may return the to explorer window with |:Rexplore|.
Bram Moolenaarff034192013-04-24 18:51:19 +02002355(use |:n| and |:p| to edit next and previous files in the arglist)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002356
2357MARKED FILES: GREP *netrw-mg* {{{2
2358 (See |netrw-mf| and |netrw-mr| for how to mark files)
2359 (uses the global marked file list)
2360
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002361The "mg" command will apply |:vimgrep| to the marked files.
Bram Moolenaarff034192013-04-24 18:51:19 +02002362The command will ask for the requested pattern; one may then enter: >
2363
Bram Moolenaar446cb832008-06-24 21:56:24 +00002364 /pattern/[g][j]
2365 ! /pattern/[g][j]
2366 pattern
2367<
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002368With /pattern/, editing will start with the first item on the |quickfix| list
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002369that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|, |:cclose|). The |:vimgrep|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002370command is in use, so without 'g' each line is added to quickfix list only
2371once; with 'g' every match is included.
2372
2373With /pattern/j, "mg" will winnow the current marked file list to just those
2374marked files also possessing the specified pattern. Thus, one may use >
2375
2376 mr ...file-pattern...
2377 mg /pattern/j
2378<
2379to have a marked file list satisfying the file-pattern but also restricted to
2380files containing some desired pattern.
2381
Bram Moolenaarff034192013-04-24 18:51:19 +02002382
Bram Moolenaar446cb832008-06-24 21:56:24 +00002383MARKED FILES: HIDING AND UNHIDING BY SUFFIX *netrw-mh* {{{2
2384 (See |netrw-mf| and |netrw-mr| for how to mark files)
2385 (uses the local marked file list)
2386
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002387The "mh" command extracts the suffices of the marked files and toggles their
Bram Moolenaar446cb832008-06-24 21:56:24 +00002388presence on the hiding list. Please note that marking the same suffix
2389this way multiple times will result in the suffix's presence being toggled
2390for each file (so an even quantity of marked files having the same suffix
2391is the same as not having bothered to select them at all).
2392
2393Related topics: |netrw-a| |g:netrw_list_hide|
2394
2395MARKED FILES: MOVING *netrw-mm* {{{2
2396 (See |netrw-mf| and |netrw-mr| for how to mark files)
2397 (uses the global marked file list)
2398
Bram Moolenaare37d50a2008-08-06 17:06:04 +00002399 WARNING: moving files is more dangerous than copying them.
2400 A file being moved is first copied and then deleted; if the
2401 copy operation fails and the delete succeeds, you will lose
2402 the file. Either try things out with unimportant files
2403 first or do the copy and then delete yourself using mc and D.
2404 Use at your own risk!
2405
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002406Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02002407select file(s) (see |netrw-mf|), and press "mm". The move is done
2408from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002409
2410Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
2411
2412MARKED FILES: PRINTING *netrw-mp* {{{2
2413 (See |netrw-mf| and |netrw-mr| for how to mark files)
2414 (uses the local marked file list)
2415
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002416When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
2417What netrw does is open each file in a one-line window, execute hardcopy, then
2418close the one-line window.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002419
2420
2421MARKED FILES: SOURCING *netrw-ms* {{{2
2422 (See |netrw-mf| and |netrw-mr| for how to mark files)
2423 (uses the local marked file list)
2424
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002425With "ms", netrw will source the marked files (using vim's |:source| command)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002426
2427
Bram Moolenaarff034192013-04-24 18:51:19 +02002428MARKED FILES: SETTING THE TARGET DIRECTORY *netrw-mt* {{{2
2429 (See |netrw-mf| and |netrw-mr| for how to mark files)
2430
2431Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):
2432
2433 * If the cursor is atop a file name, then the netrw window's currently
2434 displayed directory is used for the copy/move-to target.
2435
2436 * Also, if the cursor is in the banner, then the netrw window's currently
2437 displayed directory is used for the copy/move-to target.
2438 Unless the target already is the current directory. In which case,
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002439 typing "mf" clears the target.
Bram Moolenaarff034192013-04-24 18:51:19 +02002440
2441 * However, if the cursor is atop a directory name, then that directory is
2442 used for the copy/move-to target
2443
Bram Moolenaara6878372014-03-22 21:02:50 +01002444 * One may use the :MT [directory] command to set the target *netrw-:MT*
2445 This command uses |<q-args>|, so spaces in the directory name are
2446 permitted without escaping.
2447
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002448 * With mouse-enabled vim or with gvim, one may select a target by using
2449 <c-leftmouse>
2450
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002451There is only one copy/move-to target at a time in a vim session; ie. the
2452target is a script variable (see |s:var|) and is shared between all netrw
2453windows (in an instance of vim).
Bram Moolenaarff034192013-04-24 18:51:19 +02002454
2455When using menus and gvim, netrw provides a "Targets" entry which allows one
2456to pick a target from the list of bookmarks and history.
2457
2458Related topics:
2459 Marking Files......................................|netrw-mf|
2460 Marking Files by Regular Expression................|netrw-mr|
2461 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2462 Marked Files: Target Directory Using History.......|netrw-Th|
2463
2464
Bram Moolenaar446cb832008-06-24 21:56:24 +00002465MARKED FILES: TAGGING *netrw-mT* {{{2
2466 (See |netrw-mf| and |netrw-mr| for how to mark files)
2467 (uses the global marked file list)
2468
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002469The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
Bram Moolenaar446cb832008-06-24 21:56:24 +00002470"ctags") to marked files. For remote browsing, in order to create a tags file
2471netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
2472this to work on remote systems. For your local system, see |ctags| on how to
2473get a version. I myself use hdrtags, currently available at
Bram Moolenaar97d62492012-11-15 21:28:22 +01002474http://www.drchip.org/astronaut/src/index.html , and have >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002475
2476 let g:netrw_ctags= "hdrtag"
2477<
2478in my <.vimrc>.
2479
2480When a remote set of files are tagged, the resulting tags file is "obtained";
Bram Moolenaara6878372014-03-22 21:02:50 +01002481ie. a copy is transferred to the local system's directory. The now local tags
Bram Moolenaar446cb832008-06-24 21:56:24 +00002482file is then modified so that one may use it through the network. The
Bram Moolenaara6878372014-03-22 21:02:50 +01002483modification made concerns the names of the files in the tags; each filename is
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002484preceded by the netrw-compatible URL used to obtain it. When one subsequently
2485uses one of the go to tag actions (|tags|), the URL will be used by netrw to
Bram Moolenaar446cb832008-06-24 21:56:24 +00002486edit the desired file and go to the tag.
2487
Bram Moolenaarc236c162008-07-13 17:41:49 +00002488Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002489
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002490MARKED FILES: TARGET DIRECTORY USING BOOKMARKS *netrw-Tb* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002491
Bram Moolenaara6878372014-03-22 21:02:50 +01002492Sets the marked file copy/move-to target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002493
Bram Moolenaarff034192013-04-24 18:51:19 +02002494The |netrw-qb| map will give you a list of bookmarks (and history).
2495One may choose one of the bookmarks to become your marked file
2496target by using [count]Tb (default count: 1).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002497
Bram Moolenaarff034192013-04-24 18:51:19 +02002498Related topics:
Bram Moolenaara6878372014-03-22 21:02:50 +01002499 Copying files to target............................|netrw-mc|
Bram Moolenaarff034192013-04-24 18:51:19 +02002500 Listing Bookmarks and History......................|netrw-qb|
2501 Marked Files: Setting The Target Directory.........|netrw-mt|
2502 Marked Files: Target Directory Using History.......|netrw-Th|
2503 Marking Files......................................|netrw-mf|
2504 Marking Files by Regular Expression................|netrw-mr|
Bram Moolenaara6878372014-03-22 21:02:50 +01002505 Moving files to target.............................|netrw-mm|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002506
Bram Moolenaar446cb832008-06-24 21:56:24 +00002507
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002508MARKED FILES: TARGET DIRECTORY USING HISTORY *netrw-Th* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002509
Bram Moolenaara6878372014-03-22 21:02:50 +01002510Sets the marked file copy/move-to target.
Bram Moolenaarff034192013-04-24 18:51:19 +02002511
2512The |netrw-qb| map will give you a list of history (and bookmarks).
2513One may choose one of the history entries to become your marked file
2514target by using [count]Th (default count: 0; ie. the current directory).
2515
2516Related topics:
Bram Moolenaara6878372014-03-22 21:02:50 +01002517 Copying files to target............................|netrw-mc|
Bram Moolenaarff034192013-04-24 18:51:19 +02002518 Listing Bookmarks and History......................|netrw-qb|
2519 Marked Files: Setting The Target Directory.........|netrw-mt|
2520 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2521 Marking Files......................................|netrw-mf|
2522 Marking Files by Regular Expression................|netrw-mr|
Bram Moolenaara6878372014-03-22 21:02:50 +01002523 Moving files to target.............................|netrw-mm|
Bram Moolenaarff034192013-04-24 18:51:19 +02002524
Bram Moolenaar446cb832008-06-24 21:56:24 +00002525
2526MARKED FILES: UNMARKING *netrw-mu* {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002527 (See |netrw-mf|, |netrw-mF|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002528
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002529The "mu" mapping will unmark all currently marked files. This command differs
2530from "mF" as the latter only unmarks files in the current directory whereas
2531"mu" will unmark global and all buffer-local marked files.
2532(see |netrw-mF|)
2533
Bram Moolenaar446cb832008-06-24 21:56:24 +00002534
Bram Moolenaar15146672011-10-20 22:22:38 +02002535 *netrw-browser-settings*
Bram Moolenaar446cb832008-06-24 21:56:24 +00002536NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
2537
Bram Moolenaar15146672011-10-20 22:22:38 +02002538(if you're interested in the netrw file transfer settings, see |netrw-options|
2539 and |netrw-protocol|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002540
2541The <netrw.vim> browser provides settings in the form of variables which
2542you may modify; by placing these settings in your <.vimrc>, you may customize
2543your browsing preferences. (see also: |netrw-settings|)
2544>
2545 --- -----------
2546 Var Explanation
2547 --- -----------
Bram Moolenaar8d043172014-01-23 14:24:41 +01002548< *g:netrw_altfile* some like |CTRL-^| to return to the last
2549 edited file. Choose that by setting this
2550 parameter to 1.
2551 Others like |CTRL-^| to return to the
2552 netrw browsing buffer. Choose that by setting
2553 this parameter to 0.
2554 default: =0
2555
2556 *g:netrw_alto* change from above splitting to below splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002557 by setting this variable (see |netrw-o|)
2558 default: =&sb (see |'sb'|)
2559
Bram Moolenaarff034192013-04-24 18:51:19 +02002560 *g:netrw_altv* change from left splitting to right splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002561 by setting this variable (see |netrw-v|)
2562 default: =&spr (see |'spr'|)
2563
Bram Moolenaarff034192013-04-24 18:51:19 +02002564 *g:netrw_banner* enable/suppress the banner
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002565 =0: suppress the banner
2566 =1: banner is enabled (default)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002567
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002568 *g:netrw_bannerbackslash* if this variable exists and is not zero, the
2569 banner will be displayed with backslashes
2570 rather than forward slashes.
2571
Bram Moolenaarff034192013-04-24 18:51:19 +02002572 *g:netrw_browse_split* when browsing, <cr> will open the file by:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002573 =0: re-using the same window (default)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002574 =1: horizontally splitting the window first
2575 =2: vertically splitting the window first
Bram Moolenaar446cb832008-06-24 21:56:24 +00002576 =3: open file in new tab
2577 =4: act like "P" (ie. open previous window)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002578 Note that |g:netrw_preview| may be used
2579 to get vertical splitting instead of
2580 horizontal splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002581 =[servername,tab-number,window-number]
2582 Given a |List| such as this, a remote server
2583 named by the "servername" will be used for
2584 editing. It will also use the specified tab
2585 and window numbers to perform editing
2586 (see |clientserver|, |netrw-ctrl-r|)
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002587 This option does not affect the production of
2588 |:Lexplore| windows.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002589
Bram Moolenaar8d043172014-01-23 14:24:41 +01002590 Related topics:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002591 |g:netrw_alto| |g:netrw_altv|
2592 |netrw-C| |netrw-cr|
2593 |netrw-ctrl-r|
Bram Moolenaar8d043172014-01-23 14:24:41 +01002594
Bram Moolenaarff034192013-04-24 18:51:19 +02002595 *g:netrw_browsex_viewer* specify user's preference for a viewer: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002596 "kfmclient exec"
2597 "gnome-open"
2598< If >
2599 "-"
2600< is used, then netrwFileHandler() will look for
2601 a script/function to handle the given
2602 extension. (see |netrw_filehandler|).
2603
Bram Moolenaarff034192013-04-24 18:51:19 +02002604 *g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002605 Windows: "cacls FILENAME /e /p PERM"
2606 Used to change access permission for a file.
2607
Bram Moolenaarff034192013-04-24 18:51:19 +02002608 *g:netrw_compress* ="gzip"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002609 Will compress marked files with this
2610 command
2611
Bram Moolenaarff034192013-04-24 18:51:19 +02002612 *g:Netrw_corehandler* Allows one to specify something additional
Bram Moolenaar15146672011-10-20 22:22:38 +02002613 to do when handling <core> files via netrw's
2614 browser's "x" command (see |netrw-x|). If
2615 present, g:Netrw_corehandler specifies
2616 either one or more function references
2617 (see |Funcref|). (the capital g:Netrw...
2618 is required its holding a function reference)
2619
2620
Bram Moolenaarff034192013-04-24 18:51:19 +02002621 *g:netrw_ctags* ="ctags"
2622 The default external program used to create
2623 tags
Bram Moolenaarc236c162008-07-13 17:41:49 +00002624
Bram Moolenaarff034192013-04-24 18:51:19 +02002625 *g:netrw_cursor* = 2 (default)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002626 This option controls the use of the
Bram Moolenaaradc21822011-04-01 18:03:16 +02002627 |'cursorline'| (cul) and |'cursorcolumn'|
2628 (cuc) settings by netrw:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002629
Bram Moolenaaradc21822011-04-01 18:03:16 +02002630 Value Thin-Long-Tree Wide
2631 =0 u-cul u-cuc u-cul u-cuc
2632 =1 u-cul u-cuc cul u-cuc
2633 =2 cul u-cuc cul u-cuc
2634 =3 cul u-cuc cul cuc
2635 =4 cul cuc cul cuc
2636
2637 Where
2638 u-cul : user's |'cursorline'| setting used
2639 u-cuc : user's |'cursorcolumn'| setting used
2640 cul : |'cursorline'| locally set
2641 cuc : |'cursorcolumn'| locally set
2642
Bram Moolenaarff034192013-04-24 18:51:19 +02002643 *g:netrw_decompress* = { ".gz" : "gunzip" ,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002644 ".bz2" : "bunzip2" ,
2645 ".zip" : "unzip" ,
2646 ".tar" : "tar -xf"}
2647 A dictionary mapping suffices to
2648 decompression programs.
2649
Bram Moolenaaradc21822011-04-01 18:03:16 +02002650 *g:netrw_dirhistmax* =10: controls maximum quantity of past
2651 history. May be zero to supppress
2652 history.
2653 (related: |netrw-qb| |netrw-u| |netrw-U|)
2654
Bram Moolenaar97d62492012-11-15 21:28:22 +01002655 *g:netrw_dynamic_maxfilenamelen* =32: enables dynamic determination of
2656 |g:netrw_maxfilenamelen|, which affects
2657 local file long listing.
Bram Moolenaara6878372014-03-22 21:02:50 +01002658
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002659 *g:netrw_errorlvl* =0: error levels greater than or equal to
2660 this are permitted to be displayed
2661 0: notes
2662 1: warnings
2663 2: errors
2664
Bram Moolenaarff034192013-04-24 18:51:19 +02002665 *g:netrw_fastbrowse* =0: slow speed directory browsing;
Bram Moolenaar13600302014-05-22 18:26:40 +02002666 never re-uses directory listings;
Bram Moolenaar446cb832008-06-24 21:56:24 +00002667 always obtains directory listings.
2668 =1: medium speed directory browsing;
2669 re-use directory listings only
2670 when remote directory browsing.
2671 (default value)
2672 =2: fast directory browsing;
2673 only obtains directory listings when the
2674 directory hasn't been seen before
2675 (or |netrw-ctrl-l| is used).
2676
2677 Fast browsing retains old directory listing
2678 buffers so that they don't need to be
2679 re-acquired. This feature is especially
2680 important for remote browsing. However, if
2681 a file is introduced or deleted into or from
2682 such directories, the old directory buffer
2683 becomes out-of-date. One may always refresh
2684 such a directory listing with |netrw-ctrl-l|.
2685 This option gives the user the choice of
2686 trading off accuracy (ie. up-to-date listing)
2687 versus speed.
2688
Bram Moolenaar13600302014-05-22 18:26:40 +02002689 *g:netrw_ffkeep* (default: doesn't exist)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002690 If this variable exists and is zero, then
Bram Moolenaar13600302014-05-22 18:26:40 +02002691 netrw will not do a save and restore for
2692 |'fileformat'|.
2693
Bram Moolenaarff034192013-04-24 18:51:19 +02002694 *g:netrw_fname_escape* =' ?&;%'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002695 Used on filenames before remote reading/writing
Bram Moolenaar446cb832008-06-24 21:56:24 +00002696
Bram Moolenaarff034192013-04-24 18:51:19 +02002697 *g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
Bram Moolenaar446cb832008-06-24 21:56:24 +00002698 that can show up as "directories" and "files"
2699 in the listing. This pattern is used to
2700 remove such embedded messages. By default its
2701 value is:
2702 '^total\s\+\d\+$\|
2703 ^Trying\s\+\d\+.*$\|
2704 ^KERBEROS_V\d rejected\|
2705 ^Security extensions not\|
2706 No such file\|
2707 : connect to address [0-9a-fA-F:]*
2708 : No route to host$'
2709
Bram Moolenaarff034192013-04-24 18:51:19 +02002710 *g:netrw_ftp_list_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002711 listing. Defaults:
2712 unix or g:netrw_cygwin set: : "ls -lF"
2713 otherwise "dir"
2714
2715
Bram Moolenaarff034192013-04-24 18:51:19 +02002716 *g:netrw_ftp_sizelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002717 listing, sorted by size of file.
2718 Defaults:
2719 unix or g:netrw_cygwin set: : "ls -slF"
2720 otherwise "dir"
2721
Bram Moolenaarff034192013-04-24 18:51:19 +02002722 *g:netrw_ftp_timelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002723 listing, sorted by time of last modification.
2724 Defaults:
2725 unix or g:netrw_cygwin set: : "ls -tlF"
2726 otherwise "dir"
2727
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002728 *g:netrw_glob_escape* ='[]*?`{~$' (unix)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002729 ='[]*?`{$' (windows
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002730 These characters in directory names are
Bram Moolenaar446cb832008-06-24 21:56:24 +00002731 escaped before applying glob()
2732
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002733 *g:netrw_gx* ="<cfile>"
2734 This option controls how gx (|netrw-gx|) picks
2735 up the text under the cursor. See |expand()|
2736 for possibilities.
2737
Bram Moolenaarff034192013-04-24 18:51:19 +02002738 *g:netrw_hide* Controlled by the "a" map (see |netrw-a|)
2739 =0 : show all
2740 =1 : show not-hidden files
2741 =2 : show hidden files only
Bram Moolenaar85850f32019-07-19 22:05:51 +02002742 default: =1
Bram Moolenaar446cb832008-06-24 21:56:24 +00002743
Bram Moolenaarff034192013-04-24 18:51:19 +02002744 *g:netrw_home* The home directory for where bookmarks and
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002745 history are saved (as .netrwbook and
2746 .netrwhist).
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002747 Netrw uses |expand()|on the string.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002748 default: the first directory on the
2749 |'runtimepath'|
2750
Bram Moolenaarff034192013-04-24 18:51:19 +02002751 *g:netrw_keepdir* =1 (default) keep current directory immune from
Bram Moolenaar446cb832008-06-24 21:56:24 +00002752 the browsing directory.
2753 =0 keep the current directory the same as the
2754 browsing directory.
2755 The current browsing directory is contained in
2756 b:netrw_curdir (also see |netrw-c|)
2757
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002758 *g:netrw_keepj* ="keepj" (default) netrw attempts to keep the
2759 |:jumps| table unaffected.
2760 ="" netrw will not use |:keepjumps| with
2761 exceptions only for the
2762 saving/restoration of position.
2763
Bram Moolenaarff034192013-04-24 18:51:19 +02002764 *g:netrw_list_cmd* command for listing remote directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002765 default: (if ssh is executable)
2766 "ssh HOSTNAME ls -FLa"
2767
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002768 *g:netrw_list_cmd_options* If this variable exists, then its contents are
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002769 appended to the g:netrw_list_cmd. For
2770 example, use "2>/dev/null" to get rid of banner
2771 messages on unix systems.
2772
2773
Bram Moolenaarff034192013-04-24 18:51:19 +02002774 *g:netrw_liststyle* Set the default listing style:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002775 = 0: thin listing (one file per line)
2776 = 1: long listing (one file per line with time
2777 stamp information and file size)
2778 = 2: wide listing (multiple files in columns)
2779 = 3: tree style listing
Bram Moolenaar8d043172014-01-23 14:24:41 +01002780
Bram Moolenaarff034192013-04-24 18:51:19 +02002781 *g:netrw_list_hide* comma separated pattern list for hiding files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002782 Patterns are regular expressions (see |regexp|)
Bram Moolenaar8d043172014-01-23 14:24:41 +01002783 There's some special support for git-ignore
2784 files: you may add the output from the helper
2785 function 'netrw_gitignore#Hide() automatically
2786 hiding all gitignored files.
2787 For more details see |netrw-gitignore|.
2788
2789 Examples:
2790 let g:netrw_list_hide= '.*\.swp$'
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002791 let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
Bram Moolenaar8d043172014-01-23 14:24:41 +01002792 default: ""
Bram Moolenaar446cb832008-06-24 21:56:24 +00002793
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002794 *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
2795 =expand("$COMSPEC") Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002796 Copies marked files (|netrw-mf|) to target
2797 directory (|netrw-mt|, |netrw-mc|)
2798
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002799 *g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
2800 =' \c copy' Windows
2801 Options for the |g:netrw_localcopycmd|
2802
2803 *g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
2804 =expand("$COMSPEC") Windows
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002805 Copies directories to target directory.
2806 (|netrw-mc|, |netrw-mt|)
2807
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002808 *g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
2809 =" /c xcopy /e /c /h/ /i /k" Windows
2810 Options for |g:netrw_localcopydircmd|
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002811
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002812 *g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
2813 =expand("$COMSPEC") Windows
2814 command for making a local directory
2815
2816 *g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
2817 =" /c mkdir" Windows
2818 Options for |g:netrw_localmkdir|
2819
2820 *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
2821 =expand("$COMSPEC") Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002822 Moves marked files (|netrw-mf|) to target
2823 directory (|netrw-mt|, |netrw-mm|)
2824
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002825 *g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
2826 =" /c move" Windows
2827 Options for |g:netrw_localmovecmd|
2828
2829 *g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
2830 =expand("$COMSPEC") Windows
2831 Remove directory command (rmdir)
2832 This variable is only used if your vim is
2833 earlier than 7.4 or if your vim doesn't
2834 have patch#1107. Otherwise, |delete()|
2835 is used with the "d" option.
2836
2837 *g:netrw_localrmdiropt* ="" Linux/Unix/MacOS/Cygwin
2838 =" /c rmdir" Windows
2839 Options for |g:netrw_localrmdir|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002840
Bram Moolenaarff034192013-04-24 18:51:19 +02002841 *g:netrw_maxfilenamelen* =32 by default, selected so as to make long
Bram Moolenaar446cb832008-06-24 21:56:24 +00002842 listings fit on 80 column displays.
2843 If your screen is wider, and you have file
2844 or directory names longer than 32 bytes,
2845 you may set this option to keep listings
2846 columnar.
2847
Bram Moolenaarff034192013-04-24 18:51:19 +02002848 *g:netrw_mkdir_cmd* command for making a remote directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002849 via ssh (also see |g:netrw_remote_mkdir|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002850 default: "ssh USEPORT HOSTNAME mkdir"
2851
Bram Moolenaar251e1912011-06-19 05:09:16 +02002852 *g:netrw_mousemaps* =1 (default) enables mouse buttons while
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002853 browsing to:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002854 leftmouse : open file/directory
2855 shift-leftmouse : mark file
2856 middlemouse : same as P
2857 rightmouse : remove file/directory
2858 =0: disables mouse maps
2859
Bram Moolenaar15146672011-10-20 22:22:38 +02002860 *g:netrw_nobeval* doesn't exist (default)
2861 If this variable exists, then balloon
2862 evaluation will be suppressed
2863 (see |'ballooneval'|)
2864
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002865 *g:netrw_sizestyle* not defined: actual bytes (default)
2866 ="b" : actual bytes (default)
2867 ="h" : human-readable (ex. 5k, 4m, 3g)
2868 uses 1000 base
2869 ="H" : human-readable (ex. 5K, 4M, 3G)
2870 uses 1024 base
2871 The long listing (|netrw-i|) and query-file
2872 maps (|netrw-qf|) will display file size
2873 using the specified style.
2874
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002875 *g:netrw_usetab* if this variable exists and is non-zero, then
2876 the <tab> map supporting shrinking/expanding a
2877 Lexplore or netrw window will be enabled.
2878 (see |netrw-c-tab|)
2879
Bram Moolenaara6878372014-03-22 21:02:50 +01002880 *g:netrw_remote_mkdir* command for making a remote directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002881 via ftp (also see |g:netrw_mkdir_cmd|)
2882 default: "mkdir"
2883
Bram Moolenaarff034192013-04-24 18:51:19 +02002884 *g:netrw_retmap* if it exists and is set to one, then:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002885 * if in a netrw-selected file, AND
2886 * no normal-mode <2-leftmouse> mapping exists,
2887 then the <2-leftmouse> will be mapped for easy
Bram Moolenaar446cb832008-06-24 21:56:24 +00002888 return to the netrw browser window.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002889 example: click once to select and open a file,
2890 double-click to return.
2891
2892 Note that one may instead choose to:
2893 * let g:netrw_retmap= 1, AND
2894 * nmap <silent> YourChoice <Plug>NetrwReturn
2895 and have another mapping instead of
2896 <2-leftmouse> to invoke the return.
2897
2898 You may also use the |:Rexplore| command to do
2899 the same thing.
2900
Bram Moolenaar446cb832008-06-24 21:56:24 +00002901 default: =0
2902
Bram Moolenaar13600302014-05-22 18:26:40 +02002903 *g:netrw_rm_cmd* command for removing remote files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002904 default: "ssh USEPORT HOSTNAME rm"
2905
Bram Moolenaar13600302014-05-22 18:26:40 +02002906 *g:netrw_rmdir_cmd* command for removing remote directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002907 default: "ssh USEPORT HOSTNAME rmdir"
2908
Bram Moolenaar13600302014-05-22 18:26:40 +02002909 *g:netrw_rmf_cmd* command for removing remote softlinks
Bram Moolenaar446cb832008-06-24 21:56:24 +00002910 default: "ssh USEPORT HOSTNAME rm -f"
2911
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002912 *g:netrw_servername* use this variable to provide a name for
2913 |netrw-ctrl-r| to use for its server.
2914 default: "NETRWSERVER"
2915
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002916 *g:netrw_sort_by* sort by "name", "time", "size", or
2917 "exten".
Bram Moolenaar446cb832008-06-24 21:56:24 +00002918 default: "name"
2919
Bram Moolenaarff034192013-04-24 18:51:19 +02002920 *g:netrw_sort_direction* sorting direction: "normal" or "reverse"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002921 default: "normal"
2922
Bram Moolenaarff034192013-04-24 18:51:19 +02002923 *g:netrw_sort_options* sorting is done using |:sort|; this
Bram Moolenaarc236c162008-07-13 17:41:49 +00002924 variable's value is appended to the
2925 sort command. Thus one may ignore case,
2926 for example, with the following in your
2927 .vimrc: >
2928 let g:netrw_sort_options="i"
2929< default: ""
2930
Bram Moolenaarff034192013-04-24 18:51:19 +02002931 *g:netrw_sort_sequence* when sorting by name, first sort by the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002932 comma-separated pattern sequence. Note that
Bram Moolenaara6878372014-03-22 21:02:50 +01002933 any filigree added to indicate filetypes
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002934 should be accounted for in your pattern.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002935 default: '[\/]$,*,\.bak$,\.o$,\.h$,
2936 \.info$,\.swp$,\.obj$'
2937
Bram Moolenaarff034192013-04-24 18:51:19 +02002938 *g:netrw_special_syntax* If true, then certain files will be shown
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002939 using special syntax in the browser:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002940
2941 netrwBak : *.bak
2942 netrwCompress: *.gz *.bz2 *.Z *.zip
Bram Moolenaar85850f32019-07-19 22:05:51 +02002943 netrwCoreDump: core.\d\+
Bram Moolenaar446cb832008-06-24 21:56:24 +00002944 netrwData : *.dat
Bram Moolenaar85850f32019-07-19 22:05:51 +02002945 netrwDoc : *.doc,*.txt,*.pdf,
2946 *.pdf,*.docx
Bram Moolenaar446cb832008-06-24 21:56:24 +00002947 netrwHdr : *.h
Bram Moolenaar85850f32019-07-19 22:05:51 +02002948 netrwLex : *.l *.lex
Bram Moolenaar446cb832008-06-24 21:56:24 +00002949 netrwLib : *.a *.so *.lib *.dll
2950 netrwMakefile: [mM]akefile *.mak
2951 netrwObj : *.o *.obj
Bram Moolenaar85850f32019-07-19 22:05:51 +02002952 netrwPix : *.bmp,*.fit,*.fits,*.gif,
2953 *.jpg,*.jpeg,*.pcx,*.ppc
2954 *.pgm,*.png,*.psd,*.rgb
2955 *.tif,*.xbm,*.xcf
Bram Moolenaar446cb832008-06-24 21:56:24 +00002956 netrwTags : tags ANmenu ANtags
Bram Moolenaara6878372014-03-22 21:02:50 +01002957 netrwTilde : *
Bram Moolenaar446cb832008-06-24 21:56:24 +00002958 netrwTmp : tmp* *tmp
Bram Moolenaar85850f32019-07-19 22:05:51 +02002959 netrwYacc : *.y
Bram Moolenaar446cb832008-06-24 21:56:24 +00002960
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002961 In addition, those groups mentioned in
2962 |'suffixes'| are also added to the special
2963 file highlighting group.
2964 These syntax highlighting groups are linked
2965 to netrwGray or Folded by default
2966 (see |hl-Folded|), but one may put lines like >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002967 hi link netrwCompress Visual
2968< into one's <.vimrc> to use one's own
Bram Moolenaara6878372014-03-22 21:02:50 +01002969 preferences. Alternatively, one may
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002970 put such specifications into >
2971 .vim/after/syntax/netrw.vim.
2972< The netrwGray highlighting is set up by
2973 netrw when >
2974 * netrwGray has not been previously
2975 defined
2976 * the gui is running
2977< As an example, I myself use a dark-background
Bram Moolenaara6878372014-03-22 21:02:50 +01002978 colorscheme with the following in
2979 .vim/after/syntax/netrw.vim: >
2980
2981 hi netrwCompress term=NONE cterm=NONE gui=NONE ctermfg=10 guifg=green ctermbg=0 guibg=black
2982 hi netrwData term=NONE cterm=NONE gui=NONE ctermfg=9 guifg=blue ctermbg=0 guibg=black
2983 hi netrwHdr term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2984 hi netrwLex term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2985 hi netrwYacc term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2986 hi netrwLib term=NONE cterm=NONE gui=NONE ctermfg=14 guifg=yellow
2987 hi netrwObj term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2988 hi netrwTilde term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2989 hi netrwTmp term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2990 hi netrwTags term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2991 hi netrwDoc term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=yellow2 guibg=Blue3
2992 hi netrwSymLink term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=grey60
2993<
Bram Moolenaarff034192013-04-24 18:51:19 +02002994 *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002995 messages, banners, and whatnot that one doesn't
2996 want masquerading as "directories" and "files".
2997 Use this pattern to remove such embedded
2998 messages. By default its value is:
2999 '^total\s\+\d\+$'
3000
Bram Moolenaare6ae6222013-05-21 21:01:10 +02003001 *g:netrw_ssh_cmd* One may specify an executable command
3002 to use instead of ssh for remote actions
3003 such as listing, file removal, etc.
3004 default: ssh
3005
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02003006 *g:netrw_suppress_gx_mesg* =1 : browsers sometimes produce messages
3007 which are normally unwanted intermixed
3008 with the page.
3009 However, when using links, for example,
3010 those messages are what the browser produces.
3011 By setting this option to 0, netrw will not
3012 suppress browser messages.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003013
Bram Moolenaarff034192013-04-24 18:51:19 +02003014 *g:netrw_tmpfile_escape* =' &;'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003015 escape() is applied to all temporary files
Bram Moolenaar446cb832008-06-24 21:56:24 +00003016 to escape these characters.
3017
Bram Moolenaarff034192013-04-24 18:51:19 +02003018 *g:netrw_timefmt* specify format string to vim's strftime().
Bram Moolenaar446cb832008-06-24 21:56:24 +00003019 The default, "%c", is "the preferred date
3020 and time representation for the current
3021 locale" according to my manpage entry for
3022 strftime(); however, not all are satisfied
3023 with it. Some alternatives:
3024 "%a %d %b %Y %T",
3025 " %a %Y-%m-%d %I-%M-%S %p"
3026 default: "%c"
3027
Bram Moolenaarff034192013-04-24 18:51:19 +02003028 *g:netrw_use_noswf* netrw normally avoids writing swapfiles
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003029 for browser buffers. However, under some
Bram Moolenaar446cb832008-06-24 21:56:24 +00003030 systems this apparently is causing nasty
3031 ml_get errors to appear; if you're getting
3032 ml_get errors, try putting
3033 let g:netrw_use_noswf= 0
3034 in your .vimrc.
Bram Moolenaara6878372014-03-22 21:02:50 +01003035 default: 1
Bram Moolenaar446cb832008-06-24 21:56:24 +00003036
Bram Moolenaarff034192013-04-24 18:51:19 +02003037 *g:netrw_winsize* specify initial size of new windows made with
Bram Moolenaar446cb832008-06-24 21:56:24 +00003038 "o" (see |netrw-o|), "v" (see |netrw-v|),
Bram Moolenaar251e1912011-06-19 05:09:16 +02003039 |:Hexplore| or |:Vexplore|. The g:netrw_winsize
3040 is an integer describing the percentage of the
3041 current netrw buffer's window to be used for
3042 the new window.
Bram Moolenaar15146672011-10-20 22:22:38 +02003043 If g:netrw_winsize is less than zero, then
Bram Moolenaar85850f32019-07-19 22:05:51 +02003044 the absolute value of g:netrw_winsize will be
3045 used to specify the quantity of lines or
3046 columns for the new window.
Bram Moolenaar13600302014-05-22 18:26:40 +02003047 If g:netrw_winsize is zero, then a normal
3048 split will be made (ie. |'equalalways'| will
3049 take effect, for example).
Bram Moolenaar251e1912011-06-19 05:09:16 +02003050 default: 50 (for 50%)
Bram Moolenaar446cb832008-06-24 21:56:24 +00003051
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003052 *g:netrw_wiw* =1 specifies the minimum window width to use
3053 when shrinking a netrw/Lexplore window
3054 (see |netrw-c-tab|).
3055
Bram Moolenaarff034192013-04-24 18:51:19 +02003056 *g:netrw_xstrlen* Controls how netrw computes string lengths,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003057 including multi-byte characters' string
Bram Moolenaar446cb832008-06-24 21:56:24 +00003058 length. (thanks to N Weibull, T Mechelynck)
3059 =0: uses Vim's built-in strlen()
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003060 =1: number of codepoints (Latin a + combining
Bram Moolenaar446cb832008-06-24 21:56:24 +00003061 circumflex is two codepoints) (DEFAULT)
3062 =2: number of spacing codepoints (Latin a +
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003063 combining circumflex is one spacing
Bram Moolenaar446cb832008-06-24 21:56:24 +00003064 codepoint; a hard tab is one; wide and
3065 narrow CJK are one each; etc.)
3066 =3: virtual length (counting tabs as anything
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003067 between 1 and |'tabstop'|, wide CJK as 2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003068 rather than 1, Arabic alif as zero when
3069 immediately preceded by lam, one
3070 otherwise, etc)
3071
Bram Moolenaarff034192013-04-24 18:51:19 +02003072 *g:NetrwTopLvlMenu* This variable specifies the top level
Bram Moolenaar446cb832008-06-24 21:56:24 +00003073 menu name; by default, it's "Netrw.". If
3074 you wish to change this, do so in your
3075 .vimrc.
3076
3077NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible* {{{2
3078
3079Netrw has been designed to handle user options by saving them, setting the
3080options to something that's compatible with netrw's needs, and then restoring
3081them. However, the autochdir option: >
3082 :set acd
Bram Moolenaara6878372014-03-22 21:02:50 +01003083is problematic. Autochdir sets the current directory to that containing the
Bram Moolenaar446cb832008-06-24 21:56:24 +00003084file you edit; this apparently also applies to directories. In other words,
3085autochdir sets the current directory to that containing the "file" (even if
3086that "file" is itself a directory).
3087
Bram Moolenaar15146672011-10-20 22:22:38 +02003088NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003089
3090With the NetrwSettings.vim plugin, >
3091 :NetrwSettings
3092will bring up a window with the many variables that netrw uses for its
Bram Moolenaar1afcace2005-11-25 19:54:28 +00003093settings. You may change any of their values; when you save the file, the
3094settings therein will be used. One may also press "?" on any of the lines for
3095help on what each of the variables do.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003096
Bram Moolenaar5b435d62012-04-05 17:33:26 +02003097(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003098
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003099
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00003100==============================================================================
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003101OBTAINING A FILE *netrw-obtain* *netrw-O* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003102
3103If there are no marked files:
3104
3105 When browsing a remote directory, one may obtain a file under the cursor
3106 (ie. get a copy on your local machine, but not edit it) by pressing the O
3107 key.
3108
3109If there are marked files:
3110
3111 The marked files will be obtained (ie. a copy will be transferred to your
3112 local machine, but not set up for editing).
3113
3114Only ftp and scp are supported for this operation (but since these two are
3115available for browsing, that shouldn't be a problem). The status bar will
3116then show, on its right hand side, a message like "Obtaining filename". The
3117statusline will be restored after the transfer is complete.
3118
3119Netrw can also "obtain" a file using the local browser. Netrw's display
3120of a directory is not necessarily the same as Vim's "current directory",
3121unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select
3122a file using the local browser (by putting the cursor on it) and pressing
3123"O" will then "obtain" the file; ie. copy it to Vim's current directory.
3124
3125Related topics:
3126 * To see what the current directory is, use |:pwd|
3127 * To make the currently browsed directory the current directory, see |netrw-c|
3128 * To automatically make the currently browsed directory the current
3129 directory, see |g:netrw_keepdir|.
3130
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003131 *netrw-newfile* *netrw-createfile*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003132OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%* {{{2
Bram Moolenaarc236c162008-07-13 17:41:49 +00003133
Bram Moolenaara6878372014-03-22 21:02:50 +01003134To open a new file in netrw's current directory, press "%". This map
3135will query the user for a new filename; an empty file by that name will
3136be placed in the netrw's current directory (ie. b:netrw_curdir).
Bram Moolenaarc236c162008-07-13 17:41:49 +00003137
Bram Moolenaar8d043172014-01-23 14:24:41 +01003138Related topics: |netrw-d|
3139
Bram Moolenaarc236c162008-07-13 17:41:49 +00003140
Bram Moolenaar446cb832008-06-24 21:56:24 +00003141PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
3142
3143One may use a preview window by using the "p" key when the cursor is atop the
3144desired filename to be previewed. The display will then split to show both
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003145the browser (where the cursor will remain) and the file (see |:pedit|). By
3146default, the split will be taken horizontally; one may use vertical splitting
3147if one has set |g:netrw_preview| first.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003148
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003149An interesting set of netrw settings is: >
3150
3151 let g:netrw_preview = 1
3152 let g:netrw_liststyle = 3
3153 let g:netrw_winsize = 30
3154
3155These will:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003156
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003157 1. Make vertical splitting the default for previewing files
3158 2. Make the default listing style "tree"
3159 3. When a vertical preview window is opened, the directory listing
Bram Moolenaar5b435d62012-04-05 17:33:26 +02003160 will use only 30% of the columns available; the rest of the window
3161 is used for the preview window.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003162
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003163 Related: if you like this idea, you may also find :Lexplore
3164 (|netrw-:Lexplore|) or |g:netrw_chgwin| of interest
3165
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003166Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|
Bram Moolenaara6878372014-03-22 21:02:50 +01003167
3168
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003169PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003170
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003171To edit a file or directory under the cursor in the previously used (last
3172accessed) window (see :he |CTRL-W_p|), press a "P". If there's only one
3173window, then the one window will be horizontally split (by default).
Bram Moolenaar446cb832008-06-24 21:56:24 +00003174
3175If there's more than one window, the previous window will be re-used on
3176the selected file/directory. If the previous window's associated buffer
3177has been modified, and there's only one window with that buffer, then
3178the user will be asked if s/he wishes to save the buffer first (yes,
3179no, or cancel).
3180
Bram Moolenaarff034192013-04-24 18:51:19 +02003181Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02003182Associated setting variables:
3183 |g:netrw_alto| control above/below splitting
3184 |g:netrw_altv| control right/left splitting
3185 |g:netrw_preview| control horizontal vs vertical splitting
3186 |g:netrw_winsize| control initial sizing
3187
Bram Moolenaara6878372014-03-22 21:02:50 +01003188Also see: |g:netrw_chgwin| |netrw-p|
3189
Bram Moolenaar446cb832008-06-24 21:56:24 +00003190
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003191REFRESHING THE LISTING *netrw-refresh* *netrw-ctrl-l* *netrw-ctrl_l* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003192
3193To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
3194hit the <cr> when atop the ./ directory entry in the listing. One may also
3195refresh a local directory by using ":e .".
3196
3197
Bram Moolenaarff034192013-04-24 18:51:19 +02003198REVERSING SORTING ORDER *netrw-r* *netrw-reverse* {{{2
3199
3200One may toggle between normal and reverse sorting order by pressing the
3201"r" key.
3202
3203Related topics: |netrw-s|
3204Associated setting variable: |g:netrw_sort_direction|
3205
3206
Bram Moolenaar446cb832008-06-24 21:56:24 +00003207RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R* {{{2
3208
3209If there are no marked files: (see |netrw-mf|)
3210
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003211 Renaming files and directories involves moving the cursor to the
Bram Moolenaar446cb832008-06-24 21:56:24 +00003212 file/directory to be moved (renamed) and pressing "R". You will then be
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003213 queried for what you want the file/directory to be renamed to. You may
3214 select a range of lines with the "V" command (visual selection), and then
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003215 press "R"; you will be queried for each file as to what you want it
3216 renamed to.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003217
3218If there are marked files: (see |netrw-mf|)
3219
3220 Marked files will be renamed (moved). You will be queried as above in
3221 order to specify where you want the file/directory to be moved.
3222
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003223 If you answer a renaming query with a "s/frompattern/topattern/", then
3224 subsequent files on the marked file list will be renamed by taking each
3225 name, applying that substitute, and renaming each file to the result.
3226 As an example : >
3227
3228 mr [query: reply with *.c]
3229 R [query: reply with s/^\(.*\)\.c$/\1.cpp/]
3230<
3231 This example will mark all *.c files and then rename them to *.cpp
3232 files.
3233
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003234 The ctrl-X character has special meaning for renaming files: >
3235
3236 <c-x> : a single ctrl-x tells netrw to ignore the portion of the response
3237 lying between the last '/' and the ctrl-x.
3238
3239 <c-x><c-x> : a pair of contiguous ctrl-x's tells netrw to ignore any
3240 portion of the string preceding the double ctrl-x's.
3241<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003242 WARNING:~
3243
3244 Note that moving files is a dangerous operation; copies are safer. That's
3245 because a "move" for remote files is actually a copy + delete -- and if
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003246 the copy fails and the delete succeeds you may lose the file.
Bram Moolenaara6878372014-03-22 21:02:50 +01003247 Use at your own risk.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003248
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003249The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
3250default its value is: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00003251
3252 ssh HOSTNAME mv
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003253<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003254One may rename a block of files and directories by selecting them with
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003255V (|linewise-visual|) when using thin style.
3256
3257See |cmdline-editing| for more on how to edit the command line; in particular,
3258you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
3259command line under the cursor) useful in conjunction with the R command.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003260
3261
Bram Moolenaar446cb832008-06-24 21:56:24 +00003262SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
3263
3264One may select the sorting style by name, time, or (file) size. The "s" map
3265allows one to circulate amongst the three choices; the directory listing will
3266automatically be refreshed to reflect the selected style.
3267
3268Related topics: |netrw-r| |netrw-S|
3269Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
3270
3271
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003272SETTING EDITING WINDOW *netrw-editwindow* *netrw-C* *netrw-:NetrwC* {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003273
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003274One may select a netrw window for editing with the "C" mapping, using the
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003275:NetrwC [win#] command, or by setting |g:netrw_chgwin| to the selected window
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003276number. Subsequent selection of a file to edit (|netrw-cr|) will use that
3277window.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003278
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003279 * C : by itself, will select the current window holding a netrw buffer
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003280 for subsequent editing via |netrw-cr|. The C mapping is only available
3281 while in netrw buffers.
Bram Moolenaar13600302014-05-22 18:26:40 +02003282
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003283 * [count]C : the count will be used as the window number to be used
3284 for subsequent editing via |netrw-cr|.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003285
3286 * :NetrwC will set |g:netrw_chgwin| to the current window
3287
3288 * :NetrwC win# will set |g:netrw_chgwin| to the specified window
3289 number
3290
Bram Moolenaar13600302014-05-22 18:26:40 +02003291Using >
3292 let g:netrw_chgwin= -1
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003293will restore the default editing behavior
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003294(ie. subsequent editing will use the current window).
Bram Moolenaar13600302014-05-22 18:26:40 +02003295
Bram Moolenaar8d043172014-01-23 14:24:41 +01003296Related topics: |netrw-cr| |g:netrw_browse_split|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003297Associated setting variables: |g:netrw_chgwin|
3298
3299
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003300SHRINKING OR EXPANDING A NETRW OR LEXPLORE WINDOW *netrw-c-tab* {{{2
3301
3302The <c-tab> key will toggle a netrw or |:Lexplore| window's width,
3303but only if |g:netrw_usetab| exists and is non-zero (and, of course,
3304only if your terminal supports differentiating <c-tab> from a plain
3305<tab>).
3306
3307 * If the current window is a netrw window, toggle its width
3308 (between |g:netrw_wiw| and its original width)
3309
3310 * Else if there is a |:Lexplore| window in the current tab, toggle
3311 its width
3312
3313 * Else bring up a |:Lexplore| window
3314
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003315If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003316for <c-tab>, then the <c-tab> will not be mapped. One may map something other
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003317than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003318
3319 nmap <unique> (whatever) <Plug>NetrwShrink
3320<
3321Related topics: |:Lexplore|
3322Associated setting variable: |g:netrw_usetab|
3323
3324
3325USER SPECIFIED MAPS *netrw-usermaps* {{{1
3326
3327One may make customized user maps. Specify a variable, |g:Netrw_UserMaps|,
3328to hold a |List| of lists of keymap strings and function names: >
3329
3330 [["keymap-sequence","ExampleUserMapFunc"],...]
3331<
3332When netrw is setting up maps for a netrw buffer, if |g:Netrw_UserMaps|
3333exists, then the internal function netrw#UserMaps(islocal) is called.
3334This function goes through all the entries in the |g:Netrw_UserMaps| list:
3335
3336 * sets up maps: >
3337 nno <buffer> <silent> KEYMAP-SEQUENCE
3338 :call s:UserMaps(islocal,"ExampleUserMapFunc")
3339< * refreshes if result from that function call is the string
3340 "refresh"
3341 * if the result string is not "", then that string will be
3342 executed (:exe result)
3343 * if the result is a List, then the above two actions on results
3344 will be taken for every string in the result List
3345
3346The user function is passed one argument; it resembles >
3347
3348 fun! ExampleUserMapFunc(islocal)
3349<
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003350where a:islocal is 1 if its a local-directory system call or 0 when
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003351remote-directory system call.
3352
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003353 *netrw-call* *netrw-expose* *netrw-modify*
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003354Use netrw#Expose("varname") to access netrw-internal (script-local)
3355 variables.
3356Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
3357Use netrw#Call("funcname"[,args]) to call a netrw-internal function with
3358 specified arguments.
3359
3360Example: Get a copy of netrw's marked file list: >
3361
3362 let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")
3363<
3364Example: Modify the value of netrw's marked file list: >
3365
3366 call netrw#Modify("netrwmarkfilelist",[])
3367<
3368Example: Clear netrw's marked file list via a mapping on gu >
3369 " ExampleUserMap: {{{2
3370 fun! ExampleUserMap(islocal)
3371 call netrw#Modify("netrwmarkfilelist",[])
3372 call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
3373 let retval= ["refresh"]
3374 return retval
3375 endfun
3376 let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]
3377<
3378
Bram Moolenaar446cb832008-06-24 21:56:24 +0000337910. Problems and Fixes *netrw-problems* {{{1
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003380
3381 (This section is likely to grow as I get feedback)
3382 (also see |netrw-debug|)
Bram Moolenaar488c6512005-08-11 20:09:58 +00003383 *netrw-p1*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003384 P1. I use windows 95, and my ftp dumps four blank lines at the {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003385 end of every read.
3386
3387 See |netrw-fixup|, and put the following into your
3388 <.vimrc> file:
3389
3390 let g:netrw_win95ftp= 1
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003391
Bram Moolenaar488c6512005-08-11 20:09:58 +00003392 *netrw-p2*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003393 P2. I use Windows, and my network browsing with ftp doesn't sort by {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00003394 time or size! -or- The remote system is a Windows server; why
3395 don't I get sorts by time or size?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003396
3397 Windows' ftp has a minimal support for ls (ie. it doesn't
3398 accept sorting options). It doesn't support the -F which
3399 gives an explanatory character (ABC/ for "ABC is a directory").
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003400 Netrw then uses "dir" to get both its thin and long listings.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003401 If you think your ftp does support a full-up ls, put the
3402 following into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003403
Bram Moolenaar9964e462007-05-05 17:54:07 +00003404 let g:netrw_ftp_list_cmd = "ls -lF"
3405 let g:netrw_ftp_timelist_cmd= "ls -tlF"
3406 let g:netrw_ftp_sizelist_cmd= "ls -slF"
3407<
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003408 Alternatively, if you have cygwin on your Windows box, put
Bram Moolenaar9964e462007-05-05 17:54:07 +00003409 into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003410
3411 let g:netrw_cygwin= 1
Bram Moolenaar9964e462007-05-05 17:54:07 +00003412<
3413 This problem also occurs when the remote system is Windows.
3414 In this situation, the various g:netrw_ftp_[time|size]list_cmds
3415 are as shown above, but the remote system will not correctly
3416 modify its listing behavior.
3417
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003418
Bram Moolenaar488c6512005-08-11 20:09:58 +00003419 *netrw-p3*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003420 P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003421 used ssh! That wasn't what I asked for...
3422
3423 Netrw has two methods for browsing remote directories: ssh
3424 and ftp. Unless you specify ftp specifically, ssh is used.
3425 When it comes time to do download a file (not just a directory
3426 listing), netrw will use the given protocol to do so.
3427
Bram Moolenaar488c6512005-08-11 20:09:58 +00003428 *netrw-p4*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003429 P4. I would like long listings to be the default. {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003430
Bram Moolenaar446cb832008-06-24 21:56:24 +00003431 Put the following statement into your |.vimrc|: >
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003432
Bram Moolenaar446cb832008-06-24 21:56:24 +00003433 let g:netrw_liststyle= 1
3434<
3435 Check out |netrw-browser-var| for more customizations that
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003436 you can set.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003437
Bram Moolenaar488c6512005-08-11 20:09:58 +00003438 *netrw-p5*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003439 P5. My times come up oddly in local browsing {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003440
3441 Does your system's strftime() accept the "%c" to yield dates
Bram Moolenaarff034192013-04-24 18:51:19 +02003442 such as "Sun Apr 27 11:49:23 1997"? If not, do a
3443 "man strftime" and find out what option should be used. Then
3444 put it into your |.vimrc|: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003445
Bram Moolenaar446cb832008-06-24 21:56:24 +00003446 let g:netrw_timefmt= "%X" (where X is the option)
3447<
Bram Moolenaar488c6512005-08-11 20:09:58 +00003448 *netrw-p6*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003449 P6. I want my current directory to track my browsing. {{{2
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003450 How do I do that?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003451
Bram Moolenaar446cb832008-06-24 21:56:24 +00003452 Put the following line in your |.vimrc|:
3453>
Bram Moolenaar433f7c82006-03-21 21:29:36 +00003454 let g:netrw_keepdir= 0
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003455<
Bram Moolenaar9964e462007-05-05 17:54:07 +00003456 *netrw-p7*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003457 P7. I use Chinese (or other non-ascii) characters in my filenames, {{{2
3458 and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003459
Bram Moolenaar9964e462007-05-05 17:54:07 +00003460 (taken from an answer provided by Wu Yongwei on the vim
3461 mailing list)
Bram Moolenaara6878372014-03-22 21:02:50 +01003462 I now see the problem. Your code page is not 936, right? Vim
Bram Moolenaar9964e462007-05-05 17:54:07 +00003463 seems only able to open files with names that are valid in the
3464 current code page, as are many other applications that do not
3465 use the Unicode version of Windows APIs. This is an OS-related
3466 issue. You should not have such problems when the system
3467 locale uses UTF-8, such as modern Linux distros.
3468
3469 (...it is one more reason to recommend that people use utf-8!)
3470
3471 *netrw-p8*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003472 P8. I'm getting "ssh is not executable on your system" -- what do I {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00003473 do?
3474
3475 (Dudley Fox) Most people I know use putty for windows ssh. It
3476 is a free ssh/telnet application. You can read more about it
3477 here:
3478
3479 http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also:
3480
3481 (Marlin Unruh) This program also works for me. It's a single
3482 executable, so he/she can copy it into the Windows\System32
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003483 folder and create a shortcut to it.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003484
3485 (Dudley Fox) You might also wish to consider plink, as it
3486 sounds most similar to what you are looking for. plink is an
3487 application in the putty suite.
3488
3489 http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink
3490
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003491 (Vissale Neang) Maybe you can try OpenSSH for windows, which
Bram Moolenaar9964e462007-05-05 17:54:07 +00003492 can be obtained from:
3493
3494 http://sshwindows.sourceforge.net/
3495
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003496 It doesn't need the full Cygwin package.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003497
3498 (Antoine Mechelynck) For individual Unix-like programs needed
3499 for work in a native-Windows environment, I recommend getting
3500 them from the GnuWin32 project on sourceforge if it has them:
3501
3502 http://gnuwin32.sourceforge.net/
3503
3504 Unlike Cygwin, which sets up a Unix-like virtual machine on
3505 top of Windows, GnuWin32 is a rewrite of Unix utilities with
3506 Windows system calls, and its programs works quite well in the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003507 cmd.exe "Dos box".
Bram Moolenaar9964e462007-05-05 17:54:07 +00003508
3509 (dave) Download WinSCP and use that to connect to the server.
3510 In Preferences > Editors, set gvim as your editor:
3511
3512 - Click "Add..."
3513 - Set External Editor (adjust path as needed, include
3514 the quotes and !.! at the end):
Bram Moolenaar85850f32019-07-19 22:05:51 +02003515 "c:\Program Files\Vim\vim70\gvim.exe" !.!
Bram Moolenaar9964e462007-05-05 17:54:07 +00003516 - Check that the filetype in the box below is
3517 {asterisk}.{asterisk} (all files), or whatever types
3518 you want (cec: change {asterisk} to * ; I had to
3519 write it that way because otherwise the helptags
Bram Moolenaar446cb832008-06-24 21:56:24 +00003520 system thinks it's a tag)
3521 - Make sure it's at the top of the listbox (click it,
3522 then click "Up" if it's not)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003523 If using the Norton Commander style, you just have to hit <F4>
3524 to edit a file in a local copy of gvim.
3525
3526 (Vit Gottwald) How to generate public/private key and save
3527 public key it on server: >
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02003528 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
3529 (8.3 Getting ready for public key authentication)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003530<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003531 How to use a private key with 'pscp': >
3532
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02003533 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
3534 (5.2.4 Using public key authentication with PSCP)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003535<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003536 (Ben Schmidt) I find the ssh included with cwRsync is
3537 brilliant, and install cwRsync or cwRsyncServer on most
3538 Windows systems I come across these days. I guess COPSSH,
3539 packed by the same person, is probably even better for use as
3540 just ssh on Windows, and probably includes sftp, etc. which I
3541 suspect the cwRsync doesn't, though it might
3542
Bram Moolenaar9964e462007-05-05 17:54:07 +00003543 (cec) To make proper use of these suggestions above, you will
3544 need to modify the following user-settable variables in your
3545 .vimrc:
3546
Bram Moolenaar446cb832008-06-24 21:56:24 +00003547 |g:netrw_ssh_cmd| |g:netrw_list_cmd| |g:netrw_mkdir_cmd|
3548 |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd|
Bram Moolenaar9964e462007-05-05 17:54:07 +00003549
3550 The first one (|g:netrw_ssh_cmd|) is the most important; most
3551 of the others will use the string in g:netrw_ssh_cmd by
3552 default.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003553
Bram Moolenaar9964e462007-05-05 17:54:07 +00003554 *netrw-p9* *netrw-ml_get*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003555 P9. I'm browsing, changing directory, and bang! ml_get errors {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00003556 appear and I have to kill vim. Any way around this?
3557
3558 Normally netrw attempts to avoid writing swapfiles for
3559 its temporary directory buffers. However, on some systems
3560 this attempt appears to be causing ml_get errors to
3561 appear. Please try setting |g:netrw_use_noswf| to 0
3562 in your <.vimrc>: >
3563 let g:netrw_use_noswf= 0
3564<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003565 *netrw-p10*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003566 P10. I'm being pestered with "[something] is a directory" and {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003567 "Press ENTER or type command to continue" prompts...
3568
3569 The "[something] is a directory" prompt is issued by Vim,
3570 not by netrw, and there appears to be no way to work around
3571 it. Coupled with the default cmdheight of 1, this message
3572 causes the "Press ENTER..." prompt. So: read |hit-enter|;
3573 I also suggest that you set your |'cmdheight'| to 2 (or more) in
3574 your <.vimrc> file.
3575
3576 *netrw-p11*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003577 P11. I want to have two windows; a thin one on the left and my {{{2
3578 editing window on the right. How may I accomplish this?
Bram Moolenaar446cb832008-06-24 21:56:24 +00003579
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003580 You probably want netrw running as in a side window. If so, you
3581 will likely find that ":[N]Lexplore" does what you want. The
3582 optional "[N]" allows you to select the quantity of columns you
Bram Moolenaard7464be2015-11-01 16:49:04 +01003583 wish the |:Lexplore|r window to start with (see |g:netrw_winsize|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003584 for how this parameter works).
3585
3586 Previous solution:
3587
Bram Moolenaar446cb832008-06-24 21:56:24 +00003588 * Put the following line in your <.vimrc>:
3589 let g:netrw_altv = 1
3590 * Edit the current directory: :e .
3591 * Select some file, press v
3592 * Resize the windows as you wish (see |CTRL-W_<| and
3593 |CTRL-W_>|). If you're using gvim, you can drag
3594 the separating bar with your mouse.
3595 * When you want a new file, use ctrl-w h to go back to the
3596 netrw browser, select a file, then press P (see |CTRL-W_h|
3597 and |netrw-P|). If you're using gvim, you can press
3598 <leftmouse> in the browser window and then press the
3599 <middlemouse> to select the file.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003600
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003601
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003602 *netrw-p12*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003603 P12. My directory isn't sorting correctly, or unwanted letters are {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003604 appearing in the listed filenames, or things aren't lining
3605 up properly in the wide listing, ...
3606
3607 This may be due to an encoding problem. I myself usually use
3608 utf-8, but really only use ascii (ie. bytes from 32-126).
3609 Multibyte encodings use two (or more) bytes per character.
3610 You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
3611
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003612 *netrw-p13*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003613 P13. I'm a Windows + putty + ssh user, and when I attempt to {{{2
3614 browse, the directories are missing trailing "/"s so netrw treats
3615 them as file transfers instead of as attempts to browse
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003616 subdirectories. How may I fix this?
3617
3618 (mikeyao) If you want to use vim via ssh and putty under Windows,
3619 try combining the use of pscp/psftp with plink. pscp/psftp will
3620 be used to connect and plink will be used to execute commands on
3621 the server, for example: list files and directory using 'ls'.
3622
3623 These are the settings I use to do this:
3624>
3625 " list files, it's the key setting, if you haven't set,
3626 " you will get a blank buffer
3627 let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
3628 " if you haven't add putty directory in system path, you should
3629 " specify scp/sftp command. For examples:
3630 "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
3631 "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
3632<
Bram Moolenaar251e1912011-06-19 05:09:16 +02003633 *netrw-p14*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003634 P14. I would like to speed up writes using Nwrite and scp/ssh {{{2
Bram Moolenaar251e1912011-06-19 05:09:16 +02003635 style connections. How? (Thomer M. Gil)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003636
Bram Moolenaar251e1912011-06-19 05:09:16 +02003637 Try using ssh's ControlMaster and ControlPath (see the ssh_config
3638 man page) to share multiple ssh connections over a single network
3639 connection. That cuts out the cryptographic handshake on each
3640 file write, sometimes speeding it up by an order of magnitude.
3641 (see http://thomer.com/howtos/netrw_ssh.html)
3642 (included by permission)
3643
3644 Add the following to your ~/.ssh/config: >
3645
3646 # you change "*" to the hostname you care about
3647 Host *
3648 ControlMaster auto
3649 ControlPath /tmp/%r@%h:%p
3650
3651< Then create an ssh connection to the host and leave it running: >
3652
3653 ssh -N host.domain.com
3654
3655< Now remotely open a file with Vim's Netrw and enjoy the
3656 zippiness: >
3657
3658 vim scp://host.domain.com//home/user/.bashrc
3659<
3660 *netrw-p15*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003661 P15. How may I use a double-click instead of netrw's usual single {{{2
3662 click to open a file or directory? (Ben Fritz)
Bram Moolenaar251e1912011-06-19 05:09:16 +02003663
3664 First, disable netrw's mapping with >
3665 let g:netrw_mousemaps= 0
3666< and then create a netrw buffer only mapping in
3667 $HOME/.vim/after/ftplugin/netrw.vim: >
3668 nmap <buffer> <2-leftmouse> <CR>
3669< Note that setting g:netrw_mousemaps to zero will turn off
3670 all netrw's mouse mappings, not just the <leftmouse> one.
3671 (see |g:netrw_mousemaps|)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003672
Bram Moolenaar13600302014-05-22 18:26:40 +02003673 *netrw-p16*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003674 P16. When editing remote files (ex. :e ftp://hostname/path/file), {{{2
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003675 under Windows I get an |E303| message complaining that its unable
Bram Moolenaar13600302014-05-22 18:26:40 +02003676 to open a swap file.
3677
3678 (romainl) It looks like you are starting Vim from a protected
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003679 directory. Start netrw from your $HOME or other writable
Bram Moolenaar13600302014-05-22 18:26:40 +02003680 directory.
3681
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003682 *netrw-p17*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003683 P17. Netrw is closing buffers on its own. {{{2
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003684 What steps will reproduce the problem?
3685 1. :Explore, navigate directories, open a file
3686 2. :Explore, open another file
3687 3. Buffer opened in step 1 will be closed. o
3688 What is the expected output? What do you see instead?
3689 I expect both buffers to exist, but only the last one does.
3690
3691 (Lance) Problem is caused by "set autochdir" in .vimrc.
3692 (drchip) I am able to duplicate this problem with |'acd'| set.
3693 It appears that the buffers are not exactly closed;
3694 a ":ls!" will show them (although ":ls" does not).
3695
3696 *netrw-P18*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003697 P18. How to locally edit a file that's only available via {{{2
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003698 another server accessible via ssh?
3699 See http://stackoverflow.com/questions/12469645/
3700 "Using Vim to Remotely Edit A File on ServerB Only
3701 Accessible From ServerA"
3702
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003703 *netrw-P19*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003704 P19. How do I get numbering on in directory listings? {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003705 With |g:netrw_bufsettings|, you can control netrw's buffer
3706 settings; try putting >
3707 let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
3708< in your .vimrc. If you'd like to have relative numbering
3709 instead, try >
3710 let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
3711<
3712 *netrw-P20*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003713 P20. How may I have gvim start up showing a directory listing? {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003714 Try putting the following code snippet into your .vimrc: >
3715 augroup VimStartup
3716 au!
3717 au VimEnter * if expand("%") == "" && argc() == 0 &&
3718 \ (v:servername =~ 'GVIM\d*' || v:servername == "")
3719 \ | e . | endif
3720 augroup END
3721< You may use Lexplore instead of "e" if you're so inclined.
3722 This snippet assumes that you have client-server enabled
3723 (ie. a "huge" vim version).
3724
3725 *netrw-P21*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003726 P21. I've made a directory (or file) with an accented character, {{{2
3727 but netrw isn't letting me enter that directory/read that file:
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003728
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003729 Its likely that the shell or o/s is using a different encoding
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003730 than you have vim (netrw) using. A patch to vim supporting
3731 "systemencoding" may address this issue in the future; for
3732 now, just have netrw use the proper encoding. For example: >
3733
3734 au FileType netrw set enc=latin1
3735<
3736 *netrw-P22*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003737 P22. I get an error message when I try to copy or move a file: {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003738
3739 **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
3740
3741 What's wrong?
3742
3743 Netrw uses several system level commands to do things (see
3744
3745 |g:netrw_localcopycmd|, |g:netrw_localmovecmd|,
3746 |g:netrw_localrmdir|, |g:netrw_mkdir_cmd|).
3747
3748 You may need to adjust the default commands for one or more of
3749 these commands by setting them properly in your .vimrc. Another
3750 source of difficulty is that these commands use vim's local
3751 directory, which may not be the same as the browsing directory
3752 shown by netrw (see |g:netrw_keepdir|).
3753
3754
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003755==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +0000375611. Debugging Netrw Itself *netrw-debug* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003757
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003758Step 1: check that the problem you've encountered hasn't already been resolved
3759by obtaining a copy of the latest (often developmental) netrw at:
3760
3761 http://www.drchip.org/astronaut/vim/index.html#NETRW
3762
3763The <netrw.vim> script is typically installed on systems as something like:
Bram Moolenaar488c6512005-08-11 20:09:58 +00003764>
Bram Moolenaar85850f32019-07-19 22:05:51 +02003765 /usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
3766 /usr/local/share/vim/vim7x/autoload/netrw.vim
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003767 (see output of :echo &rtp)
Bram Moolenaar488c6512005-08-11 20:09:58 +00003768<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003769which is loaded automatically at startup (assuming :set nocp). If you
3770installed a new netrw, then it will be located at >
3771
3772 $HOME/.vim/plugin/netrwPlugin.vim
3773 $HOME/.vim/autoload/netrw.vim
3774<
3775Step 2: assuming that you've installed the latest version of netrw,
3776check that your problem is really due to netrw. Create a file
3777called netrw.vimrc with the following contents: >
3778
3779 set nocp
3780 so $HOME/.vim/plugin/netrwPlugin.vim
3781<
3782Then run netrw as follows: >
3783
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003784 vim -u netrw.vimrc --noplugins -i NONE [some path here]
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003785<
3786Perform whatever netrw commands you need to, and check that the problem is
3787still present. This procedure sidesteps any issues due to personal .vimrc
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003788settings, .viminfo file, and other plugins. If the problem does not appear,
3789then you need to determine which setting in your .vimrc is causing the
3790conflict with netrw or which plugin(s) is/are involved.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003791
3792Step 3: If the problem still is present, then get a debugging trace from
3793netrw:
Bram Moolenaar071d4272004-06-13 20:20:40 +00003794
3795 1. Get the <Decho.vim> script, available as:
3796
Bram Moolenaar97d62492012-11-15 21:28:22 +01003797 http://www.drchip.org/astronaut/vim/index.html#DECHO
Bram Moolenaar071d4272004-06-13 20:20:40 +00003798 or
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00003799 http://vim.sourceforge.net/scripts/script.php?script_id=120
Bram Moolenaar071d4272004-06-13 20:20:40 +00003800
Bram Moolenaara6878372014-03-22 21:02:50 +01003801 Decho.vim is provided as a "vimball"; see |vimball-intro|.
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003802
Bram Moolenaar446cb832008-06-24 21:56:24 +00003803 2. Edit the <netrw.vim> file by typing: >
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003804
3805 vim netrw.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00003806 :DechoOn
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003807 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003808<
3809 To restore to normal non-debugging behavior, re-edit <netrw.vim>
3810 and type >
Bram Moolenaar071d4272004-06-13 20:20:40 +00003811
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003812 vim netrw.vim
3813 :DechoOff
3814 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003815<
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003816 This command, provided by <Decho.vim>, will comment out all
3817 Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).
3818
Bram Moolenaar446cb832008-06-24 21:56:24 +00003819 3. Then bring up vim and attempt to evoke the problem by doing a
3820 transfer or doing some browsing. A set of messages should appear
3821 concerning the steps that <netrw.vim> took in attempting to
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003822 read/write your file over the network in a separate tab or
3823 server vim window.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003824
Bram Moolenaar9964e462007-05-05 17:54:07 +00003825 To save the file, use >
Bram Moolenaar8d043172014-01-23 14:24:41 +01003826
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003827 :tabnext
Bram Moolenaar9964e462007-05-05 17:54:07 +00003828 :set bt=
3829 :w! DBG
Bram Moolenaar8d043172014-01-23 14:24:41 +01003830
3831< Furthermore, it'd be helpful if you would type >
Bram Moolenaara6878372014-03-22 21:02:50 +01003832 :Dsep <command>
3833< where <command> is the command you're about to type next,
3834 thereby making it easier to associate which part of the
3835 debugging trace is due to which command.
Bram Moolenaar8d043172014-01-23 14:24:41 +01003836
Bram Moolenaara6878372014-03-22 21:02:50 +01003837 Please send that information to <netrw.vim>'s maintainer along
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003838 with the o/s you're using and the vim version that you're using
Bram Moolenaara6878372014-03-22 21:02:50 +01003839 (see |:version|) >
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00003840 NdrOchip at ScampbellPfamily.AbizM - NOSPAM
Bram Moolenaar9964e462007-05-05 17:54:07 +00003841<
Bram Moolenaar071d4272004-06-13 20:20:40 +00003842==============================================================================
Bram Moolenaar9964e462007-05-05 17:54:07 +0000384312. History *netrw-history* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003844
Bram Moolenaar85850f32019-07-19 22:05:51 +02003845 v163: Dec 05, 2017 * (Cristi Balan) reported that a setting ('sel')
3846 was left changed
3847 * (Holger Mitschke) reported a problem with
3848 saving and restoring history. Fixed.
3849 * Hopefully I fixed a nasty bug that caused a
3850 file rename to wipe out a buffer that it
3851 should not have wiped out.
3852 * (Holger Mitschke) amended this help file
3853 with additional |g:netrw_special_syntax|
3854 items
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003855 v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
3856 with a patch; these are now fixed.
3857 Oct 26, 2016 * I started using mate-terminal and found that
3858 x and gx (|netrw-x| and |netrw-gx|) were no
3859 longer working. Fixed (using atril when
3860 $DESKTOP_SESSION is "mate").
3861 Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
3862 being restored with keepregstar rather than
3863 keepregplus.
3864 Nov 09, 2016 * Broke apart the command from the options,
3865 mostly for Windows. Introduced new netrw
3866 settings: |g:netrw_localcopycmdopt|
3867 |g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt|
3868 |g:netrw_localmovecmdopt| |g:netrw_localrmdiropt|
3869 Nov 21, 2016 * (mattn) provided a patch for preview; swapped
3870 winwidth() with winheight()
3871 Nov 22, 2016 * (glacambre) reported that files containing
3872 spaces weren't being obtained properly via
3873 scp. Fix: apparently using single quotes
3874 such as with 'file name' wasn't enough; the
3875 spaces inside the quotes also had to be
3876 escaped (ie. 'file\ name').
3877 * Also fixed obtain (|netrw-O|) to be able to
3878 obtain files with spaces in their names
3879 Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
3880 when atop "Hiding" in the banner also caused
3881 the active-banner hiding control to occur
3882 Jan 03, 2017 * (Enno Nagel) reported that attempting to
3883 apply netrw to a directory that was without
3884 read permission caused a syntax error.
3885 Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
3886 using netrw#Call() better. Now returns
3887 value of internal routines return, for example.
3888 Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
3889 use |:edit| instead of |:read|. I also
3890 changed the routine name to netrw#FileUrlEdit.
3891 Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
3892 could generate a new listing buffer and
3893 window instead of toggling the netrw display.
3894 Unfortunately, the directions for eliciting
3895 the problem weren't complete, so I may or
3896 may not have fixed that issue.
3897 Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
3898 (see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
3899 Mar 21, 2017 * previously, netrw would specify (safe) settings
3900 even when the setting was already safe for
3901 netrw. Netrw now attempts to leave such
3902 already-netrw-safe settings alone.
3903 (affects s:NetrwOptionRestore() and
3904 s:NetrwSafeOptions(); also introduced
3905 s:NetrwRestoreSetting())
3906 Jun 26, 2017 * (Christian Brabandt) provided a patch to
3907 allow curl to follow redirects (ie. -L
3908 option)
3909 Jun 26, 2017 * (Callum Howard) reported a problem with
3910 :Lexpore not removing the Lexplore window
3911 after a change-directory
3912 Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
3913 previously edited file (e.g. with CTRL-^)
3914 after editing a file:// URL. Patch to
3915 have a "keepalt" included.
3916 Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
3917 did not work on directories in the current
3918 tree
3919 v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
3920 a function that returned a 0 while silently
3921 invoking a shell command. The shell command
3922 activated a ShellCmdPost event which in turn
3923 called s:LocalBrowseRefresh(). That looks
3924 over all netrw buffers for changes needing
3925 refreshes. However, inside a |:map-<expr>|,
3926 tab and window changes are disallowed. Fixed.
3927 (affects netrw's s:LocalBrowseRefresh())
3928 * |g:netrw_localrmdir| not used any more, but
3929 the relevant patch that causes |delete()| to
3930 take over was #1107 (not #1109).
3931 * |expand()| is now used on |g:netrw_home|;
3932 consequently, g:netrw_home may now use
3933 environment variables
3934 * s:NetrwLeftmouse and s:NetrwCLeftmouse will
3935 return without doing anything if invoked
3936 when inside a non-netrw window
3937 Jun 15, 2016 * gx now calls netrw#GX() which returns
3938 the word under the cursor. The new
3939 wrinkle: if one is in a netrw buffer,
3940 then netrw's s:NetrwGetWord().
3941 Jun 22, 2016 * Netrw was executing all its associated
3942 Filetype commands silently; I'm going
3943 to try doing that "noisily" and see if
3944 folks have a problem with that.
3945 Aug 12, 2016 * Changed order of tool selection for
3946 handling http://... viewing.
3947 (Nikolay Aleksandrovich Pavlov)
3948 Aug 21, 2016 * Included hiding/showing/all for tree
3949 listings
3950 * Fixed refresh (^L) for tree listings
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02003951 v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
3952 Feb 23, 2016 * s:ComposePath(base,subdir) now uses
3953 fnameescape() on the base portion
3954 Mar 01, 2016 * (gt_macki) reported where :Explore would
3955 make file unlisted. Fixed (tst943)
3956 Apr 04, 2016 * (reported by John Little) netrw normally
3957 suppresses browser messages, but sometimes
3958 those "messages" are what is wanted.
3959 See |g:netrw_suppress_gx_mesg|
3960 Apr 06, 2016 * (reported by Carlos Pita) deleting a remote
3961 file was giving an error message. Fixed.
3962 Apr 08, 2016 * (Charles Cooper) had a problem with an
3963 undefined b:netrw_curdir. He also provided
3964 a fix.
3965 Apr 20, 2016 * Changed s:NetrwGetBuffer(); now uses
3966 dictionaries. Also fixed the "No Name"
3967 buffer problem.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003968 v155: Oct 29, 2015 * (Timur Fayzrakhmanov) reported that netrw's
3969 mapping of ctrl-l was not allowing refresh of
3970 other windows when it was done in a netrw
3971 window.
3972 Nov 05, 2015 * Improved s:TreeSqueezeDir() to use search()
3973 instead of a loop
3974 * NetrwBrowse() will return line to
3975 w:netrw_bannercnt if cursor ended up in
3976 banner
3977 Nov 16, 2015 * Added a <Plug>NetrwTreeSqueeze (|netrw-s-cr|)
3978 Nov 17, 2015 * Commented out imaps -- perhaps someone can
3979 tell me how they're useful and should be
3980 retained?
3981 Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003982 Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003983 file in addition to simply bringing up the
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003984 URL in a browser. Fixed.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003985 Nov 23, 2015 * Added |g:netrw_sizestyle| support
3986 Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
3987 maps.
3988 Jan 05, 2016 * |netrw-qL| implemented to mark files based
3989 upon |location-list|s; similar to |netrw-qF|.
3990 Jan 19, 2016 * using - call delete(directoryname,"d") -
3991 instead of using g:netrw_localrmdir if
3992 v7.4 + patch#1107 is available
3993 Jan 28, 2016 * changed to using |winsaveview()| and
3994 |winrestview()|
3995 Jan 28, 2016 * s:NetrwTreePath() now does a save and
3996 restore of view
3997 Feb 08, 2016 * Fixed a tree-listing problem with remote
3998 directories
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003999 v154: Feb 26, 2015 * (Yuri Kanivetsky) reported a situation where
4000 a file was not treated properly as a file
4001 due to g:netrw_keepdir == 1
4002 Mar 25, 2015 * (requested by Ben Friz) one may now sort by
4003 extension
4004 Mar 28, 2015 * (requested by Matt Brooks) netrw has a lot
4005 of buffer-local mappings; however, some
4006 plugins (such as vim-surround) set up
4007 conflicting mappings that cause vim to wait.
4008 The "<nowait>" modifier has been included
4009 with most of netrw's mappings to avoid that
4010 delay.
4011 Jun 26, 2015 * |netrw-gn| mapping implemted
4012 * :Ntree NotADir resulted in having
4013 the tree listing expand in the error messages
4014 window. Fixed.
4015 Jun 29, 2015 * Attempting to delete a file remotely caused
4016 an error with "keepsol" mentioned; fixed.
4017 Jul 08, 2015 * Several changes to keep the |:jumps| table
4018 correct when working with
4019 |g:netrw_fastbrowse| set to 2
4020 * wide listing with accented characters fixed
4021 (using %-S instead of %-s with a |printf()|
4022 Jul 13, 2015 * (Daniel Hahler) CheckIfKde() could be true
4023 but kfmclient not installed. Changed order
4024 in netrw#BrowseX(): checks if kde and
4025 kfmclient, then will use xdg-open on a unix
4026 system (if xdg-open is executable)
4027 Aug 11, 2015 * (McDonnell) tree listing mode wouldn't
4028 select a file in a open subdirectory.
4029 * (McDonnell) when multiple subdirectories
4030 were concurrently open in tree listing
4031 mode, a ctrl-L wouldn't refresh properly.
4032 * The netrw:target menu showed duplicate
4033 entries
4034 Oct 13, 2015 * (mattn) provided an exception to handle
4035 windows with shellslash set but no shell
4036 Oct 23, 2015 * if g:netrw_usetab and <c-tab> now used
4037 to control whether NetrwShrink is used
4038 (see |netrw-c-tab|)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004039 v153: May 13, 2014 * added another |g:netrw_ffkeep| usage {{{2
4040 May 14, 2014 * changed s:PerformListing() so that it
4041 always sets ft=netrw for netrw buffers
4042 (ie. even when syntax highlighting is
4043 off, not available, etc)
4044 May 16, 2014 * introduced the |netrw-ctrl-r| functionality
4045 May 17, 2014 * introduced the |netrw-:NetrwMB| functionality
4046 * mb and mB (|netrw-mb|, |netrw-mB|) will
4047 add/remove marked files from bookmark list
4048 May 20, 2014 * (Enno Nagel) reported that :Lex <dirname>
4049 wasn't working. Fixed.
4050 May 26, 2014 * restored test to prevent leftmouse window
4051 resizing from causing refresh.
4052 (see s:NetrwLeftmouse())
4053 * fixed problem where a refresh caused cursor
4054 to go just under the banner instead of
4055 staying put
4056 May 28, 2014 * (László Bimba) provided a patch for opening
4057 the |:Lexplore| window 100% high, optionally
4058 on the right, and will work with remote
4059 files.
4060 May 29, 2014 * implemented :NetrwC (see |netrw-:NetrwC|)
4061 Jun 01, 2014 * Removed some "silent"s from commands used
4062 to implemented scp://... and pscp://...
4063 directory listing. Permits request for
4064 password to appear.
4065 Jun 05, 2014 * (Enno Nagel) reported that user maps "/"
4066 caused problems with "b" and "w", which
4067 are mapped (for wide listings only) to
4068 skip over files rather than just words.
4069 Jun 10, 2014 * |g:netrw_gx| introduced to allow users to
4070 override default "<cfile>" with the gx
4071 (|netrw-gx|) map
4072 Jun 11, 2014 * gx (|netrw-gx|), with |'autowrite'| set,
4073 will write modified files. s:NetrwBrowseX()
4074 will now save, turn off, and restore the
4075 |'autowrite'| setting.
4076 Jun 13, 2014 * added visual map for gx use
4077 Jun 15, 2014 * (Enno Nagel) reported that with having hls
4078 set and wide listing style in use, that the
4079 b and w maps caused unwanted highlighting.
4080 Jul 05, 2014 * |netrw-mv| and |netrw-mX| commands included
4081 Jul 09, 2014 * |g:netrw_keepj| included, allowing optional
4082 keepj
4083 Jul 09, 2014 * fixing bugs due to previous update
4084 Jul 21, 2014 * (Bruno Sutic) provided an updated
4085 netrw_gitignore.vim
4086 Jul 30, 2014 * (Yavuz Yetim) reported that editing two
4087 remote files of the same name caused the
4088 second instance to have a "temporary"
4089 name. Fixed: now they use the same buffer.
4090 Sep 18, 2014 * (Yasuhiro Matsumoto) provided a patch which
4091 allows scp and windows local paths to work.
4092 Oct 07, 2014 * gx (see |netrw-gx|) when atop a directory,
4093 will now do |gf| instead
4094 Nov 06, 2014 * For cygwin: cygstart will be available for
4095 netrw#BrowseX() to use if its executable.
4096 Nov 07, 2014 * Began support for file://... urls. Will use
4097 |g:netrw_file_cmd| (typically elinks or links)
4098 Dec 02, 2014 * began work on having mc (|netrw-mc|) copy
4099 directories. Works for linux machines,
4100 cygwin+vim, but not for windows+gvim.
4101 Dec 02, 2014 * in tree mode, netrw was not opening
4102 directories via symbolic links.
4103 Dec 02, 2014 * added resolved link information to
4104 thin and tree modes
4105 Dec 30, 2014 * (issue#231) |:ls| was not showing
4106 remote-file buffers reliably. Fixed.
4107 v152: Apr 08, 2014 * uses the |'noswapfile'| option (requires {{{2
Bram Moolenaar13600302014-05-22 18:26:40 +02004108 vim 7.4 with patch 213)
4109 * (Enno Nagel) turn |'rnu'| off in netrw
4110 buffers.
4111 * (Quinn Strahl) suggested that netrw
4112 allow regular window splitting to occur,
4113 thereby allowing |'equalalways'| to take
4114 effect.
4115 * (qingtian zhao) normally, netrw will
4116 save and restore the |'fileformat'|;
4117 however, sometimes that isn't wanted
4118 Apr 14, 2014 * whenever netrw marks a buffer as ro,
4119 it will also mark it as nomod.
4120 Apr 16, 2014 * sftp protocol now supported by
4121 netrw#Obtain(); this means that one
4122 may use "mc" to copy a remote file
4123 to a local file using sftp, and that
4124 the |netrw-O| command can obtain remote
4125 files via sftp.
4126 * added [count]C support (see |netrw-C|)
4127 Apr 18, 2014 * when |g:netrw_chgwin| is one more than
4128 the last window, then vertically split
4129 the last window and use it as the
4130 chgwin window.
4131 May 09, 2014 * SavePosn was "saving filename under cursor"
4132 from a non-netrw window when using :Rex.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004133 v151: Jan 22, 2014 * extended :Rexplore to return to buffer {{{2
Bram Moolenaara6878372014-03-22 21:02:50 +01004134 prior to Explore or editing a directory
4135 * (Ken Takata) netrw gave error when
4136 clipboard was disabled. Sol'n: Placed
4137 several if has("clipboard") tests in.
4138 * Fixed ftp://X@Y@Z// problem; X@Y now
4139 part of user id, and only Z is part of
4140 hostname.
4141 * (A Loumiotis) reported that completion
4142 using a directory name containing spaces
4143 did not work. Fixed with a retry in
4144 netrw#Explore() which removes the
4145 backslashes vim inserted.
4146 Feb 26, 2014 * :Rexplore now records the current file
4147 using w:netrw_rexfile when returning via
4148 |:Rexplore|
4149 Mar 08, 2014 * (David Kotchan) provided some patches
4150 allowing netrw to work properly with
4151 windows shares.
4152 * Multiple one-liner help messages available
4153 by pressing <cr> while atop the "Quick
4154 Help" line
4155 * worked on ShellCmdPost, FocusGained event
4156 handling.
4157 * |:Lexplore| path: will be used to update
4158 a left-side netrw browsing directory.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01004159 Mar 12, 2014 * |netrw-s-cr|: use <s-cr> to close
Bram Moolenaara6878372014-03-22 21:02:50 +01004160 tree directory implemented
4161 Mar 13, 2014 * (Tony Mechylynck) reported that using
4162 the browser with ftp on a directory,
4163 and selecting a gzipped txt file, that
4164 an E19 occurred (which was issued by
4165 gzip.vim). Fixed.
4166 Mar 14, 2014 * Implemented :MF and :MT (see |netrw-:MF|
4167 and |netrw-:MT|, respectively)
4168 Mar 17, 2014 * |:Ntree| [dir] wasn't working properly; fixed
4169 Mar 18, 2014 * Changed all uses of set to setl
4170 Mar 18, 2014 * Commented the netrw_btkeep line in
4171 s:NetrwOptionSave(); the effect is that
4172 netrw buffers will remain as |'bt'|=nofile.
4173 This should prevent swapfiles being created
4174 for netrw buffers.
4175 Mar 20, 2014 * Changed all uses of lcd to use s:NetrwLcd()
4176 instead. Consistent error handling results
4177 and it also handles Window's shares
4178 * Fixed |netrw-d| command when applied with ftp
4179 * https: support included for netrw#NetRead()
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004180 v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01004181 return to the netrw directory listing
4182 Jul 13, 2013 * (Jonas Diemer) suggested changing
4183 a <cWORD> to <cfile>.
4184 Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
4185 use of mkdir did not produce directories
Bram Moolenaara6878372014-03-22 21:02:50 +01004186 following the user's umask.
Bram Moolenaar8d043172014-01-23 14:24:41 +01004187 Aug 27, 2013 * introduced |g:netrw_altfile| option
4188 Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
4189 when available, by default
4190 Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
4191 opening some directories properly from the
4192 command line.
4193 Nov 09, 2013 * |:Lexplore| introduced
4194 * (Ondrej Platek) reported an issue with
4195 netrw's trees (P15). Fixed.
4196 * (Jorge Solis) reported that "t" in
4197 tree mode caused netrw to forget its
4198 line position.
4199 Dec 05, 2013 * Added <s-leftmouse> file marking
4200 (see |netrw-mf|)
4201 Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
4202 strlen() instead s:Strlen() when handling
4203 multibyte chars with strpart()
4204 (ie. strpart() is byte oriented, not
4205 display-width oriented).
4206 Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
4207 and a portion of timestamps were wrongly
4208 highlighted with the directory color when
4209 setting `:let g:netrw_liststyle=1` on Windows.
4210 * (Paul Domaskis) noted that sometimes
4211 cursorline was activating in non-netrw
4212 windows. All but one setting of cursorline
4213 was done via setl; there was one that was
4214 overlooked. Fixed.
4215 Dec 24, 2013 * (esquifit) asked that netrw allow the
4216 /cygdrive prefix be a user-alterable
4217 parameter.
4218 Jan 02, 2014 * Fixed a problem with netrw-based ballon
4219 evaluation (ie. netrw#NetrwBaloonHelp()
4220 not having been loaded error messages)
4221 Jan 03, 2014 * Fixed a problem with tree listings
4222 * New command installed: |:Ntree|
4223 Jan 06, 2014 * (Ivan Brennan) reported a problem with
4224 |netrw-P|. Fixed.
4225 Jan 06, 2014 * Fixed a problem with |netrw-P| when the
4226 modified file was to be abandoned.
4227 Jan 15, 2014 * (Matteo Cavalleri) reported that when the
4228 banner is suppressed and tree listing is
4229 used, a blank line was left at the top of
4230 the display. Fixed.
4231 Jan 20, 2014 * (Gideon Go) reported that, in tree listing
4232 style, with a previous window open, that
4233 the wrong directory was being used to open
4234 a file. Fixed. (P21)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004235 v149: Apr 18, 2013 * in wide listing format, now have maps for {{{2
Bram Moolenaare6ae6222013-05-21 21:01:10 +02004236 w and b to move to next/previous file
4237 Apr 26, 2013 * one may now copy files in the same
4238 directory; netrw will issue requests for
4239 what names the files should be copied under
4240 Apr 29, 2013 * Trying Benzinger's problem again. Seems
4241 that commenting out the BufEnter and
4242 installing VimEnter (only) works. Weird
4243 problem! (tree listing, vim -O Dir1 Dir2)
4244 May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
4245 May 02, 2013 * introduced |g:netrw_bannerbackslash| as
4246 requested by Paul Domaskis.
Bram Moolenaar8d043172014-01-23 14:24:41 +01004247 Jul 03, 2013 * Explore now avoids splitting when a buffer
4248 will be hidden.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004249 v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct {{{2
Bram Moolenaarff034192013-04-24 18:51:19 +02004250 choice of listing style, hiding style, and
4251 sorting style
Bram Moolenaar071d4272004-06-13 20:20:40 +00004252
4253==============================================================================
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100425413. Todo *netrw-todo* {{{1
4255
425607/29/09 : banner :|g:netrw_banner| can be used to suppress the
4257 suppression banner. This feature is new and experimental,
4258 so its in the process of being debugged.
425909/04/09 : "gp" : See if it can be made to work for remote systems.
4260 : See if it can be made to work with marked files.
4261
4262==============================================================================
426314. Credits *netrw-credits* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00004264
4265 Vim editor by Bram Moolenaar (Thanks, Bram!)
4266 dav support by C Campbell
4267 fetch support by Bram Moolenaar and C Campbell
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004268 ftp support by C Campbell <NdrOchip@ScampbellPfamily.AbizM>
Bram Moolenaar071d4272004-06-13 20:20:40 +00004269 http support by Bram Moolenaar <bram@moolenaar.net>
4270 rcp
4271 rsync support by C Campbell (suggested by Erik Warendorph)
4272 scp support by raf <raf@comdyn.com.au>
4273 sftp support by C Campbell
4274
4275 inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell
4276
4277 Jérôme Augé -- also using new buffer method with ftp+.netrc
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004278 Bram Moolenaar -- obviously vim itself, :e and v:cmdarg use,
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00004279 fetch,...
Bram Moolenaar071d4272004-06-13 20:20:40 +00004280 Yasuhiro Matsumoto -- pointing out undo+0r problem and a solution
4281 Erik Warendorph -- for several suggestions (g:netrw_..._cmd
4282 variables, rsync etc)
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004283 Doug Claar -- modifications to test for success with ftp
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00004284 operation
Bram Moolenaar071d4272004-06-13 20:20:40 +00004285
4286==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00004287Modelines: {{{1
Bram Moolenaar91f84f62018-07-29 15:07:52 +02004288 vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker