blob: 421b12f60d73b665aa422b86b05787470e250899 [file] [log] [blame]
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02001*pi_netrw.txt* For Vim version 8.2. Last change: 2020 Sep 19
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 ------------------------------------------------
Bram Moolenaar29634562020-01-09 21:46:04 +01006Author: Charles E. Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
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 Moolenaar1d59aa12020-09-19 18:50:13 +0200440 *g:netrw_use_errorwindow* =2: messages from netrw will use a popup window
441 Move the mouse and pause to remove the popup window.
442 (default value if popup windows are availble)
443 =1 : messages from netrw will use a separate one
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200444 line window. This window provides reliable
Bram Moolenaar1d59aa12020-09-19 18:50:13 +0200445 delivery of messages.
446 (default value if popup windows are not availble)
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200447 =0 : messages from netrw will use echoerr ;
448 messages don't always seem to show up this
449 way, but one doesn't have to quit the window.
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000450
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000451 *g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200452 lines that o/s's ftp "provides" on transfers
453 =0 force normal ftp behavior (no trailing line removal)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000454
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100455 *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200456 permits network browsing to use ls with time and
457 size sorting (default if windows)
458 =0 assume Windows' scp accepts windows-style paths
459 Network browsing uses dir instead of ls
460 This option is ignored if you're using unix
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000461
462 *g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200463 =1 use WinNT's rcp in binary mode (default)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000464
Bram Moolenaar446cb832008-06-24 21:56:24 +0000465PATHS *netrw-path* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000466
467Paths to files are generally user-directory relative for most protocols.
468It is possible that some protocol will make paths relative to some
469associated directory, however.
470>
471 example: vim scp://user@host/somefile
472 example: vim scp://user@host/subdir1/subdir2/somefile
473<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000474where "somefile" is in the "user"'s home directory. If you wish to get a
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000475file using root-relative paths, use the full path:
476>
477 example: vim scp://user@host//somefile
478 example: vim scp://user@host//subdir1/subdir2/somefile
479<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000480
481==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00004824. Network-Oriented File Transfer *netrw-xfer* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000483
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100484Network-oriented file transfer under Vim is implemented by a vim script
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000485(<netrw.vim>) using plugin techniques. It currently supports both reading and
486writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000487dav/cadaver, rsync, or sftp.
488
489http is currently supported read-only via use of wget or fetch.
490
491<netrw.vim> is a standard plugin which acts as glue between Vim and the
492various file transfer programs. It uses autocommand events (BufReadCmd,
493FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >
494
495 ex. vim ftp://hostname/path/to/file
496<
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000497The characters preceding the colon specify the protocol to use; in the
Bram Moolenaar446cb832008-06-24 21:56:24 +0000498example, it's ftp. The <netrw.vim> script then formulates a command or a
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000499series of commands (typically ftp) which it issues to an external program
500(ftp, scp, etc) which does the actual file transfer/protocol. Files are read
501from/written to a temporary file (under Unix/Linux, /tmp/...) which the
502<netrw.vim> script will clean up.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000503
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100504Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
505ftp is not a secure protocol. User names and passwords are transmitted "in
506the clear" over the internet; any snooper tool can pick these up; this is not
507a netrw thing, this is a ftp thing. If you're concerned about this, please
508try to use scp or sftp instead.
509
510Netrw re-uses the user id and password during the same vim session and so long
511as the remote hostname remains the same.
512
513Jan seems to be a bit confused about how netrw handles ftp; normally multiple
514commands are performed in a "ftp session", and he seems to feel that the
515uid/password should only be retained over one ftp session. However, netrw
516does every ftp operation in a separate "ftp session"; so remembering the
517uid/password for just one "ftp session" would be the same as not remembering
518the uid/password at all. IMHO this would rapidly grow tiresome as one
519browsed remote directories, for example.
520
521On the other hand, thanks go to Jan M. for pointing out the many
522vulnerabilities that netrw (and vim itself) had had in handling "crafted"
523filenames. The |shellescape()| and |fnameescape()| functions were written in
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200524response by Bram Moolenaar to handle these sort of problems, and netrw has
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100525been modified to use them. Still, my advice is, if the "filename" looks like
526a vim command that you aren't comfortable with having executed, don't open it.
527
Bram Moolenaar9964e462007-05-05 17:54:07 +0000528 *netrw-putty* *netrw-pscp* *netrw-psftp*
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000529One may modify any protocol's implementing external application by setting a
530variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000531"scp -q"). As an example, consider using PuTTY: >
Bram Moolenaar9964e462007-05-05 17:54:07 +0000532
533 let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
534 let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000535<
Bram Moolenaar15146672011-10-20 22:22:38 +0200536(note: it has been reported that windows 7 with putty v0.6's "-batch" option
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100537 doesn't work, so its best to leave it off for that system)
Bram Moolenaar15146672011-10-20 22:22:38 +0200538
Bram Moolenaar9964e462007-05-05 17:54:07 +0000539See |netrw-p8| for more about putty, pscp, psftp, etc.
540
Bram Moolenaar071d4272004-06-13 20:20:40 +0000541Ftp, an old protocol, seems to be blessed by numerous implementations.
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000542Unfortunately, some implementations are noisy (ie., add junk to the end of the
543file). Thus, concerned users may decide to write a NetReadFixup() function
544that will clean up after reading with their ftp. Some Unix systems (ie.,
545FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
546not noisy and more convenient, actually, for <netrw.vim> to use.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100547Consequently, if "fetch" is available (ie. executable), it may be preferable
548to use it for ftp://... based transfers.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000549
550For rcp, scp, sftp, and http, one may use network-oriented file transfers
Bram Moolenaar83bab712005-08-01 21:58:57 +0000551transparently; ie.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000552>
553 vim rcp://[user@]machine/path
554 vim scp://[user@]machine/path
555<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100556If your ftp supports <.netrc>, then it too can be transparently used
Bram Moolenaar071d4272004-06-13 20:20:40 +0000557if the needed triad of machine name, user id, and password are present in
558that file. Your ftp must be able to use the <.netrc> file on its own, however.
559>
560 vim ftp://[user@]machine[[:#]portnumber]/path
561<
Bram Moolenaaradc21822011-04-01 18:03:16 +0200562Windows provides an ftp (typically c:\Windows\System32\ftp.exe) which uses
563an option, -s:filename (filename can and probably should be a full path)
564which contains ftp commands which will be automatically run whenever ftp
565starts. You may use this feature to enter a user and password for one site: >
566 userid
567 password
Bram Moolenaar13600302014-05-22 18:26:40 +0200568< *netrw-windows-netrc* *netrw-windows-s*
569If |g:netrw_ftp_cmd| contains -s:[path/]MACHINE, then (on Windows machines
570only) netrw will substitute the current machine name requested for ftp
571connections for MACHINE. Hence one can have multiple machine.ftp files
572containing login and password for ftp. Example: >
Bram Moolenaaradc21822011-04-01 18:03:16 +0200573
Bram Moolenaarff034192013-04-24 18:51:19 +0200574 let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
575 vim ftp://myhost.somewhere.net/
Bram Moolenaar13600302014-05-22 18:26:40 +0200576
Bram Moolenaaradc21822011-04-01 18:03:16 +0200577will use a file >
Bram Moolenaar13600302014-05-22 18:26:40 +0200578
Bram Moolenaaradc21822011-04-01 18:03:16 +0200579 C:\Users\Myself\myhost.ftp
580<
581Often, ftp will need to query the user for the userid and password.
Bram Moolenaar83bab712005-08-01 21:58:57 +0000582The latter will be done "silently"; ie. asterisks will show up instead of
Bram Moolenaar071d4272004-06-13 20:20:40 +0000583the actually-typed-in password. Netrw will retain the userid and password
584for subsequent read/writes from the most recent transfer so subsequent
585transfers (read/write) to or from that machine will take place without
586additional prompting.
587
588 *netrw-urls*
589 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000590 | Reading | Writing | Uses |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000591 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000592 | DAV: | | |
593 | dav://host/path | | cadaver |
594 | :Nread dav://host/path | :Nwrite dav://host/path | cadaver |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000595 +---------------------------------+----------------------------+------------+
Bram Moolenaar446cb832008-06-24 21:56:24 +0000596 | DAV + SSL: | | |
597 | davs://host/path | | cadaver |
598 | :Nread davs://host/path | :Nwrite davs://host/path | cadaver |
599 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000600 | FETCH: | | |
601 | fetch://[user@]host/path | | |
602 | fetch://[user@]host:http/path | Not Available | fetch |
603 | :Nread fetch://[user@]host/path| | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000604 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000605 | FILE: | | |
606 | file:///* | file:///* | |
607 | file://localhost/* | file://localhost/* | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000608 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000609 | FTP: (*3) | (*3) | |
610 | ftp://[user@]host/path | ftp://[user@]host/path | ftp (*2) |
611 | :Nread ftp://host/path | :Nwrite ftp://host/path | ftp+.netrc |
612 | :Nread host path | :Nwrite host path | ftp+.netrc |
613 | :Nread host uid pass path | :Nwrite host uid pass path | ftp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000614 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000615 | HTTP: wget is executable: (*4) | | |
616 | http://[user@]host/path | Not Available | wget |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000617 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000618 | HTTP: fetch is executable (*4) | | |
619 | http://[user@]host/path | Not Available | fetch |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000620 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000621 | RCP: | | |
622 | rcp://[user@]host/path | rcp://[user@]host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000623 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000624 | RSYNC: | | |
625 | rsync://[user@]host/path | rsync://[user@]host/path | rsync |
626 | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync |
627 | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000628 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000629 | SCP: | | |
630 | scp://[user@]host/path | scp://[user@]host/path | scp |
631 | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000632 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000633 | SFTP: | | |
634 | sftp://[user@]host/path | sftp://[user@]host/path | sftp |
635 | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000636 +=================================+============================+============+
637
638 (*1) For an absolute path use scp://machine//path.
639
640 (*2) if <.netrc> is present, it is assumed that it will
641 work with your ftp client. Otherwise the script will
Bram Moolenaar9964e462007-05-05 17:54:07 +0000642 prompt for user-id and password.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000643
Bram Moolenaar9964e462007-05-05 17:54:07 +0000644 (*3) for ftp, "machine" may be machine#port or machine:port
Bram Moolenaar071d4272004-06-13 20:20:40 +0000645 if a different port is needed than the standard ftp port
646
647 (*4) for http:..., if wget is available it will be used. Otherwise,
648 if fetch is available it will be used.
649
650Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.
651
652
653NETRC *netrw-netrc*
654
Bram Moolenaar446cb832008-06-24 21:56:24 +0000655The <.netrc> file, typically located in your home directory, contains lines
656therein which map a hostname (machine name) to the user id and password you
657prefer to use with it.
658
Bram Moolenaar071d4272004-06-13 20:20:40 +0000659The typical syntax for lines in a <.netrc> file is given as shown below.
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000660Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000661>
662 machine {full machine name} login {user-id} password "{password}"
663 default login {user-id} password "{password}"
664
665Your ftp client must handle the use of <.netrc> on its own, but if the
666<.netrc> file exists, an ftp transfer will not ask for the user-id or
667password.
668
669 Note:
670 Since this file contains passwords, make very sure nobody else can
671 read this file! Most programs will refuse to use a .netrc that is
672 readable for others. Don't forget that the system administrator can
Bram Moolenaar446cb832008-06-24 21:56:24 +0000673 still read the file! Ie. for Linux/Unix: chmod 600 .netrc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000674
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200675Even though Windows' ftp clients typically do not support .netrc, netrw has
676a work-around: see |netrw-windows-s|.
677
Bram Moolenaar071d4272004-06-13 20:20:40 +0000678
679PASSWORD *netrw-passwd*
680
681The script attempts to get passwords for ftp invisibly using |inputsecret()|,
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200682a built-in Vim function. See |netrw-userpass| for how to change the password
Bram Moolenaar071d4272004-06-13 20:20:40 +0000683after one has set it.
684
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000685Unfortunately there doesn't appear to be a way for netrw to feed a password to
686scp. Thus every transfer via scp will require re-entry of the password.
Bram Moolenaar446cb832008-06-24 21:56:24 +0000687However, |netrw-ssh-hack| can help with this problem.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000688
689
690==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00006915. Activation *netrw-activate* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000692
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000693Network-oriented file transfers are available by default whenever Vim's
Bram Moolenaar446cb832008-06-24 21:56:24 +0000694|'nocompatible'| mode is enabled. Netrw's script files reside in your
695system's plugin, autoload, and syntax directories; just the
696plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
697vim. The main script in autoload/netrw.vim is only loaded when you actually
698use netrw. I suggest that, at a minimum, you have at least the following in
699your <.vimrc> customization file: >
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000700
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000701 set nocp
702 if version >= 600
703 filetype plugin indent on
704 endif
705<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100706By also including the following lines in your .vimrc, one may have netrw
707immediately activate when using [g]vim without any filenames, showing the
708current directory: >
709
710 " Augroup VimStartup:
711 augroup VimStartup
712 au!
713 au VimEnter * if expand("%") == "" | e . | endif
714 augroup END
715<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000716
717==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02007186. Transparent Remote File Editing *netrw-transparent* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000719
720Transparent file transfers occur whenever a regular file read or write
Bram Moolenaar446cb832008-06-24 21:56:24 +0000721(invoked via an |:autocmd| for |BufReadCmd|, |BufWriteCmd|, or |SourceCmd|
722events) is made. Thus one may read, write, or source files across networks
723just as easily as if they were local files! >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000724
725 vim ftp://[user@]machine/path
726 ...
727 :wq
728
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000729See |netrw-activate| for more on how to encourage your vim to use plugins
730such as netrw.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000731
Bram Moolenaar1d59aa12020-09-19 18:50:13 +0200732For password-free use of scp:, see |netrw-ssh-hack|.
733
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000734
Bram Moolenaar071d4272004-06-13 20:20:40 +0000735==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00007367. Ex Commands *netrw-ex* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000737
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000738The usual read/write commands are supported. There are also a few
Bram Moolenaar446cb832008-06-24 21:56:24 +0000739additional commands available. Often you won't need to use Nwrite or
Bram Moolenaar9964e462007-05-05 17:54:07 +0000740Nread as shown in |netrw-transparent| (ie. simply use >
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100741 :e URL
742 :r URL
743 :w URL
Bram Moolenaar9964e462007-05-05 17:54:07 +0000744instead, as appropriate) -- see |netrw-urls|. In the explanations
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100745below, a {netfile} is a URL to a remote file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000746
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200747 *:Nwrite* *:Nw*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000748:[range]Nw[rite] Write the specified lines to the current
Bram Moolenaar071d4272004-06-13 20:20:40 +0000749 file as specified in b:netrw_lastfile.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200750 (related: |netrw-nwrite|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000751
Bram Moolenaar446cb832008-06-24 21:56:24 +0000752:[range]Nw[rite] {netfile} [{netfile}]...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000753 Write the specified lines to the {netfile}.
754
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200755 *:Nread* *:Nr*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100756:Nr[ead] Read the lines from the file specified in b:netrw_lastfile
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200757 into the current buffer. (related: |netrw-nread|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000758
Bram Moolenaar446cb832008-06-24 21:56:24 +0000759:Nr[ead] {netfile} {netfile}...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000760 Read the {netfile} after the current line.
761
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200762 *:Nsource* *:Ns*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000763:Ns[ource] {netfile}
Bram Moolenaar9964e462007-05-05 17:54:07 +0000764 Source the {netfile}.
765 To start up vim using a remote .vimrc, one may use
766 the following (all on one line) (tnx to Antoine Mechelynck) >
767 vim -u NORC -N
768 --cmd "runtime plugin/netrwPlugin.vim"
769 --cmd "source scp://HOSTNAME/.vimrc"
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200770< (related: |netrw-source|)
771
772:call NetUserPass() *NetUserPass()*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000773 If g:netrw_uid and s:netrw_passwd don't exist,
774 this function will query the user for them.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200775 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000776
777:call NetUserPass("userid")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000778 This call will set the g:netrw_uid and, if
Bram Moolenaar071d4272004-06-13 20:20:40 +0000779 the password doesn't exist, will query the user for it.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200780 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000781
782:call NetUserPass("userid","passwd")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000783 This call will set both the g:netrw_uid and s:netrw_passwd.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000784 The user-id and password are used by ftp transfers. One may
Bram Moolenaar446cb832008-06-24 21:56:24 +0000785 effectively remove the user-id and password by using empty
786 strings (ie. "").
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200787 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000788
Bram Moolenaar9964e462007-05-05 17:54:07 +0000789:NetrwSettings This command is described in |netrw-settings| -- used to
790 display netrw settings and change netrw behavior.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000791
Bram Moolenaar071d4272004-06-13 20:20:40 +0000792
793==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02007948. Variables and Options *netrw-var* *netrw-settings* {{{1
Bram Moolenaar446cb832008-06-24 21:56:24 +0000795
Bram Moolenaar15146672011-10-20 22:22:38 +0200796(also see: |netrw-options| |netrw-variables| |netrw-protocol|
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200797 |netrw-browser-settings| |netrw-browser-options| )
Bram Moolenaar071d4272004-06-13 20:20:40 +0000798
Bram Moolenaar9964e462007-05-05 17:54:07 +0000799The <netrw.vim> script provides several variables which act as options to
Bram Moolenaar446cb832008-06-24 21:56:24 +0000800affect <netrw.vim>'s file transfer behavior. These variables typically may be
801set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
Bram Moolenaar15146672011-10-20 22:22:38 +0200802 *netrw-options*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000803>
Bram Moolenaar9964e462007-05-05 17:54:07 +0000804 -------------
805 Netrw Options
806 -------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000807 Option Meaning
808 -------------- -----------------------------------------------
809<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000810 b:netrw_col Holds current cursor position (during NetWrite)
811 g:netrw_cygwin =1 assume scp under windows is from cygwin
812 (default/windows)
813 =0 assume scp under windows accepts windows
814 style paths (default/else)
815 g:netrw_ftp =0 use default ftp (uid password)
816 g:netrw_ftpmode ="binary" (default)
817 ="ascii" (your choice)
818 g:netrw_ignorenetrc =1 (default)
819 if you have a <.netrc> file but you don't
Bram Moolenaar071d4272004-06-13 20:20:40 +0000820 want it used, then set this variable. Its
821 mere existence is enough to cause <.netrc>
822 to be ignored.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000823 b:netrw_lastfile Holds latest method/machine/path.
824 b:netrw_line Holds current line number (during NetWrite)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000825 g:netrw_silent =0 transfers done normally
826 =1 transfers done silently
827 g:netrw_uid Holds current user-id for ftp.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000828 g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
829 =1 use WinNT/2K/XP's rcp, binary mode
830 g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc
831 =1 use default method to do ftp >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000832 -----------------------------------------------------------------------
833<
Bram Moolenaar13600302014-05-22 18:26:40 +0200834 *netrw-internal-variables*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000835The script will also make use of the following variables internally, albeit
836temporarily.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000837>
838 -------------------
839 Temporary Variables
840 -------------------
841 Variable Meaning
842 -------- ------------------------------------
843<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100844 b:netrw_method Index indicating rcp/ftp+.netrc/ftp
845 w:netrw_method (same as b:netrw_method)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000846 g:netrw_machine Holds machine name parsed from input
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100847 b:netrw_fname Holds filename being accessed >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000848 ------------------------------------------------------------
849<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000850 *netrw-protocol*
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000851
852Netrw supports a number of protocols. These protocols are invoked using the
853variables listed below, and may be modified by the user.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000854>
855 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000856 Protocol Control Options
Bram Moolenaar071d4272004-06-13 20:20:40 +0000857 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000858 Option Type Setting Meaning
859 --------- -------- -------------- ---------------------------
Bram Moolenaar8d043172014-01-23 14:24:41 +0100860< netrw_ftp variable =doesn't exist userid set by "user userid"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000861 =0 userid set by "user userid"
862 =1 userid set by "userid"
863 NetReadFixup function =doesn't exist no change
864 =exists Allows user to have files
865 read via ftp automatically
866 transformed however they wish
867 by NetReadFixup()
Bram Moolenaar8d043172014-01-23 14:24:41 +0100868 g:netrw_dav_cmd var ="cadaver" if cadaver is executable
869 g:netrw_dav_cmd var ="curl -o" elseif curl is executable
870 g:netrw_fetch_cmd var ="fetch -o" if fetch is available
871 g:netrw_ftp_cmd var ="ftp"
872 g:netrw_http_cmd var ="fetch -o" if fetch is available
873 g:netrw_http_cmd var ="wget -O" else if wget is available
874 g:netrw_http_put_cmd var ="curl -T"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100875 |g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
Bram Moolenaar8d043172014-01-23 14:24:41 +0100876 g:netrw_rcp_cmd var ="rcp"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100877 g:netrw_rsync_cmd var ="rsync"
878 *g:netrw_rsync_sep* var ="/" used to separate the hostname
879 from the file spec
Bram Moolenaar8d043172014-01-23 14:24:41 +0100880 g:netrw_scp_cmd var ="scp -q"
881 g:netrw_sftp_cmd var ="sftp" >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000882 -------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000883<
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000884 *netrw-ftp*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000885
Bram Moolenaar9964e462007-05-05 17:54:07 +0000886The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
887specify the external program to use handle the ftp protocol. They may
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200888include command line options (such as -p for passive mode). Example: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000889
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200890 let g:netrw_ftp_cmd= "ftp -p"
891<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000892Browsing is supported by using the |g:netrw_list_cmd|; the substring
893"HOSTNAME" will be changed via substitution with whatever the current request
894is for a hostname.
895
896Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's
897that give trouble . In order to best understand how to use these options if
898ftp is giving you troubles, a bit of discussion is provided on how netrw does
899ftp reads.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000900
901For ftp, netrw typically builds up lines of one of the following formats in a
Bram Moolenaar071d4272004-06-13 20:20:40 +0000902temporary file:
903>
904 IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1
905 ---------------------------------- ------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000906<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000907 open machine [port] open machine [port]
908 user userid password userid password
909 [g:netrw_ftpmode] password
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200910 [g:netrw_ftpextracmd] [g:netrw_ftpmode]
Bram Moolenaar9964e462007-05-05 17:54:07 +0000911 get filename tempfile [g:netrw_extracmd]
912 get filename tempfile >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000913 ---------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000914<
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200915The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000916
Bram Moolenaar071d4272004-06-13 20:20:40 +0000917Netrw then executes the lines above by use of a filter:
918>
919 :%! {g:netrw_ftp_cmd} -i [-n]
920<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000921where
922 g:netrw_ftp_cmd is usually "ftp",
923 -i tells ftp not to be interactive
924 -n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
925
926If <.netrc> exists it will be used to avoid having to query the user for
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000927userid and password. The transferred file is put into a temporary file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000928The temporary file is then read into the main editing session window that
929requested it and the temporary file deleted.
930
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000931If your ftp doesn't accept the "user" command and immediately just demands a
932userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000933
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000934 *netrw-cadaver*
935To handle the SSL certificate dialog for untrusted servers, one may pull
936down the certificate and place it into /usr/ssl/cert.pem. This operation
937renders the server treatment as "trusted".
938
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000939 *netrw-fixup* *netreadfixup*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000940If your ftp for whatever reason generates unwanted lines (such as AUTH
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100941messages) you may write a NetReadFixup() function:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000942>
943 function! NetReadFixup(method,line1,line2)
944 " a:line1: first new line in current file
945 " a:line2: last new line in current file
946 if a:method == 1 "rcp
947 elseif a:method == 2 "ftp + <.netrc>
948 elseif a:method == 3 "ftp + machine,uid,password,filename
949 elseif a:method == 4 "scp
950 elseif a:method == 5 "http/wget
951 elseif a:method == 6 "dav/cadaver
952 elseif a:method == 7 "rsync
953 elseif a:method == 8 "fetch
954 elseif a:method == 9 "sftp
Bram Moolenaar9964e462007-05-05 17:54:07 +0000955 else " complain
Bram Moolenaar071d4272004-06-13 20:20:40 +0000956 endif
957 endfunction
958>
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000959The NetReadFixup() function will be called if it exists and thus allows you to
960customize your reading process. As a further example, <netrw.vim> contains
961just such a function to handle Windows 95 ftp. For whatever reason, Windows
96295's ftp dumps four blank lines at the end of a transfer, and so it is
963desirable to automate their removal. Here's some code taken from <netrw.vim>
964itself:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000965>
966 if has("win95") && g:netrw_win95ftp
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000967 fun! NetReadFixup(method, line1, line2)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000968 if method == 3 " ftp (no <.netrc>)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000969 let fourblanklines= line2 - 3
970 silent fourblanklines.",".line2."g/^\s*/d"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000971 endif
972 endfunction
973 endif
974>
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200975(Related topics: |ftp| |netrw-userpass| |netrw-start|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000976
977==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00009789. Browsing *netrw-browsing* *netrw-browse* *netrw-help* {{{1
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100979 *netrw-browser* *netrw-dir* *netrw-list*
Bram Moolenaar83bab712005-08-01 21:58:57 +0000980
Bram Moolenaar446cb832008-06-24 21:56:24 +0000981INTRODUCTION TO BROWSING *netrw-intro-browse* {{{2
982 (Quick References: |netrw-quickmaps| |netrw-quickcoms|)
Bram Moolenaar83bab712005-08-01 21:58:57 +0000983
Bram Moolenaar446cb832008-06-24 21:56:24 +0000984Netrw supports the browsing of directories on your local system and on remote
985hosts; browsing includes listing files and directories, entering directories,
986editing files therein, deleting files/directories, making new directories,
987moving (renaming) files and directories, copying files and directories, etc.
988One may mark files and execute any system command on them! The Netrw browser
989generally implements the previous explorer's maps and commands for remote
990directories, although details (such as pertinent global variable names)
991necessarily differ. To browse a directory, simply "edit" it! >
Bram Moolenaar269ec652004-07-29 08:43:53 +0000992
Bram Moolenaar446cb832008-06-24 21:56:24 +0000993 vim /your/directory/
994 vim .
995 vim c:\your\directory\
996<
997(Related topics: |netrw-cr| |netrw-o| |netrw-p| |netrw-P| |netrw-t|
998 |netrw-mf| |netrw-mx| |netrw-D| |netrw-R| |netrw-v| )
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000999
1000The Netrw remote file and directory browser handles two protocols: ssh and
Bram Moolenaar446cb832008-06-24 21:56:24 +00001001ftp. The protocol in the url, if it is ftp, will cause netrw also to use ftp
1002in its remote browsing. Specifying any other protocol will cause it to be
1003used for file transfers; but the ssh protocol will be used to do remote
1004browsing.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001005
Bram Moolenaar446cb832008-06-24 21:56:24 +00001006To use Netrw's remote directory browser, simply attempt to read a "file" with
1007a trailing slash and it will be interpreted as a request to list a directory:
1008>
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001009 vim [protocol]://[user@]hostname/path/
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +00001010<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001011where [protocol] is typically scp or ftp. As an example, try: >
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +00001012
Bram Moolenaar446cb832008-06-24 21:56:24 +00001013 vim ftp://ftp.home.vim.org/pub/vim/
1014<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001015For local directories, the trailing slash is not required. Again, because it's
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001016easy to miss: to browse remote directories, the URL must terminate with a
Bram Moolenaar446cb832008-06-24 21:56:24 +00001017slash!
Bram Moolenaar83bab712005-08-01 21:58:57 +00001018
Bram Moolenaar446cb832008-06-24 21:56:24 +00001019If you'd like to avoid entering the password repeatedly for remote directory
1020listings with ssh or scp, see |netrw-ssh-hack|. To avoid password entry with
1021ftp, see |netrw-netrc| (if your ftp supports it).
Bram Moolenaar83bab712005-08-01 21:58:57 +00001022
Bram Moolenaar446cb832008-06-24 21:56:24 +00001023There are several things you can do to affect the browser's display of files:
Bram Moolenaar83bab712005-08-01 21:58:57 +00001024
Bram Moolenaar446cb832008-06-24 21:56:24 +00001025 * To change the listing style, press the "i" key (|netrw-i|).
1026 Currently there are four styles: thin, long, wide, and tree.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001027 To make that change "permanent", see |g:netrw_liststyle|.
Bram Moolenaar83bab712005-08-01 21:58:57 +00001028
Bram Moolenaar446cb832008-06-24 21:56:24 +00001029 * To hide files (don't want to see those xyz~ files anymore?) see
1030 |netrw-ctrl-h|.
Bram Moolenaar83bab712005-08-01 21:58:57 +00001031
Bram Moolenaar446cb832008-06-24 21:56:24 +00001032 * Press s to sort files by name, time, or size.
1033
1034See |netrw-browse-cmds| for all the things you can do with netrw!
1035
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001036 *netrw-getftype* *netrw-filigree* *netrw-ftype*
1037The |getftype()| function is used to append a bit of filigree to indicate
1038filetype to locally listed files:
1039
1040 directory : /
1041 executable : *
1042 fifo : |
1043 links : @
1044 sockets : =
1045
1046The filigree also affects the |g:netrw_sort_sequence|.
1047
Bram Moolenaar446cb832008-06-24 21:56:24 +00001048
1049QUICK HELP *netrw-quickhelp* {{{2
1050 (Use ctrl-] to select a topic)~
1051 Intro to Browsing...............................|netrw-intro-browse|
1052 Quick Reference: Maps.........................|netrw-quickmap|
1053 Quick Reference: Commands.....................|netrw-browse-cmds|
1054 Hiding
1055 Edit hiding list..............................|netrw-ctrl-h|
1056 Hiding Files or Directories...................|netrw-a|
1057 Hiding/Unhiding by suffix.....................|netrw-mh|
1058 Hiding dot-files.............................|netrw-gh|
1059 Listing Style
1060 Select listing style (thin/long/wide/tree)....|netrw-i|
1061 Associated setting variable...................|g:netrw_liststyle|
1062 Shell command used to perform listing.........|g:netrw_list_cmd|
1063 Quick file info...............................|netrw-qf|
1064 Sorted by
1065 Select sorting style (name/time/size).........|netrw-s|
1066 Editing the sorting sequence..................|netrw-S|
Bram Moolenaarc236c162008-07-13 17:41:49 +00001067 Sorting options...............................|g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001068 Associated setting variable...................|g:netrw_sort_sequence|
1069 Reverse sorting order.........................|netrw-r|
1070
1071
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02001072 *netrw-quickmap* *netrw-quickmaps*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001073QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001074>
Bram Moolenaar446cb832008-06-24 21:56:24 +00001075 --- ----------------- ----
1076 Map Quick Explanation Link
1077 --- ----------------- ----
1078< <F1> Causes Netrw to issue help
1079 <cr> Netrw will enter the directory or read the file |netrw-cr|
1080 <del> Netrw will attempt to remove the file/directory |netrw-del|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001081 <c-h> Edit file hiding list |netrw-ctrl-h|
1082 <c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l|
1083 <c-r> Browse using a gvim server |netrw-ctrl-r|
1084 <c-tab> Shrink/expand a netrw/explore window |netrw-c-tab|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001085 - Makes Netrw go up one directory |netrw--|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001086 a Cycles between normal display, |netrw-a|
Bram Moolenaar13600302014-05-22 18:26:40 +02001087 hiding (suppress display of files matching g:netrw_list_hide)
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001088 and showing (display only files which match g:netrw_list_hide)
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02001089 cd Make browsing directory the current directory |netrw-cd|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001090 C Setting the editing window |netrw-C|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001091 d Make a directory |netrw-d|
1092 D Attempt to remove the file(s)/directory(ies) |netrw-D|
1093 gb Go to previous bookmarked directory |netrw-gb|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001094 gd Force treatment as directory |netrw-gd|
1095 gf Force treatment as file |netrw-gf|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001096 gh Quick hide/unhide of dot-files |netrw-gh|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001097 gn Make top of tree the directory below the cursor |netrw-gn|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001098 i Cycle between thin, long, wide, and tree listings |netrw-i|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001099 I Toggle the displaying of the banner |netrw-I|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001100 mb Bookmark current directory |netrw-mb|
1101 mc Copy marked files to marked-file target directory |netrw-mc|
1102 md Apply diff to marked files (up to 3) |netrw-md|
1103 me Place marked files on arg list and edit them |netrw-me|
1104 mf Mark a file |netrw-mf|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001105 mF Unmark files |netrw-mF|
1106 mg Apply vimgrep to marked files |netrw-mg|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001107 mh Toggle marked file suffices' presence on hiding list |netrw-mh|
1108 mm Move marked files to marked-file target directory |netrw-mm|
1109 mp Print marked files |netrw-mp|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001110 mr Mark files using a shell-style |regexp| |netrw-mr|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001111 mt Current browsing directory becomes markfile target |netrw-mt|
1112 mT Apply ctags to marked files |netrw-mT|
1113 mu Unmark all marked files |netrw-mu|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001114 mv Apply arbitrary vim command to marked files |netrw-mv|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001115 mx Apply arbitrary shell command to marked files |netrw-mx|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001116 mX Apply arbitrary shell command to marked files en bloc|netrw-mX|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001117 mz Compress/decompress marked files |netrw-mz|
1118 o Enter the file/directory under the cursor in a new |netrw-o|
Bram Moolenaar13600302014-05-22 18:26:40 +02001119 browser window. A horizontal split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001120 O Obtain a file specified by cursor |netrw-O|
1121 p Preview the file |netrw-p|
1122 P Browse in the previously used window |netrw-P|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001123 qb List bookmarked directories and history |netrw-qb|
1124 qf Display information on file |netrw-qf|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001125 qF Mark files using a quickfix list |netrw-qF|
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001126 qL Mark files using a |location-list| |netrw-qL|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001127 r Reverse sorting order |netrw-r|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001128 R Rename the designated file(s)/directory(ies) |netrw-R|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001129 s Select sorting style: by name, time, or file size |netrw-s|
1130 S Specify suffix priority for name-sorting |netrw-S|
1131 t Enter the file/directory under the cursor in a new tab|netrw-t|
1132 u Change to recently-visited directory |netrw-u|
1133 U Change to subsequently-visited directory |netrw-U|
1134 v Enter the file/directory under the cursor in a new |netrw-v|
Bram Moolenaar13600302014-05-22 18:26:40 +02001135 browser window. A vertical split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001136 x View file with an associated program |netrw-x|
Bram Moolenaar97d62492012-11-15 21:28:22 +01001137 X Execute filename under cursor via |system()| |netrw-X|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001138
Bram Moolenaarc236c162008-07-13 17:41:49 +00001139 % Open a new file in netrw's current directory |netrw-%|
1140
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001141 *netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001142 <leftmouse> (gvim only) selects word under mouse as if a <cr>
1143 had been pressed (ie. edit file, change directory)
1144 <middlemouse> (gvim only) same as P selecting word under mouse;
1145 see |netrw-P|
1146 <rightmouse> (gvim only) delete file/directory using word under
1147 mouse
1148 <2-leftmouse> (gvim only) when:
Bram Moolenaar13600302014-05-22 18:26:40 +02001149 * in a netrw-selected file, AND
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001150 * |g:netrw_retmap| == 1 AND
Bram Moolenaar13600302014-05-22 18:26:40 +02001151 * the user doesn't already have a <2-leftmouse>
Bram Moolenaarff034192013-04-24 18:51:19 +02001152 mapping defined before netrw is autoloaded,
Bram Moolenaar446cb832008-06-24 21:56:24 +00001153 then a double clicked leftmouse button will return
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001154 to the netrw browser window. See |g:netrw_retmap|.
Bram Moolenaar8d043172014-01-23 14:24:41 +01001155 <s-leftmouse> (gvim only) like mf, will mark files. Dragging
1156 the shifted leftmouse will mark multiple files.
1157 (see |netrw-mf|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001158
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001159 (to disable mouse buttons while browsing: |g:netrw_mousemaps|)
1160
Bram Moolenaar446cb832008-06-24 21:56:24 +00001161 *netrw-quickcom* *netrw-quickcoms*
1162QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01001163 :NetrwClean[!]............................................|netrw-clean|
1164 :NetrwSettings............................................|netrw-settings|
1165 :Ntree....................................................|netrw-ntree|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001166 :Explore[!] [dir] Explore directory of current file......|netrw-explore|
1167 :Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001168 :Lexplore[!] [dir] Left Explorer Toggle...................|netrw-explore|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001169 :Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1170 :Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1171 :Rexplore Return to Explorer.....................|netrw-explore|
1172 :Sexplore[!] [dir] Split & Explore directory .............|netrw-explore|
1173 :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
1174 :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1175
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001176
1177BANNER DISPLAY *netrw-I*
1178
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001179One may toggle the displaying of the banner by pressing "I".
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001180
1181Also See: |g:netrw_banner|
1182
1183
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001184BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001185
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001186One may easily "bookmark" the currently browsed directory by using >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001187
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001188 mb
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001189<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001190 *.netrwbook*
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001191Bookmarks are retained in between sessions of vim in a file called .netrwbook
1192as a |List|, which is typically stored in the first directory on the user's
Bram Moolenaar8024f932020-01-14 19:29:13 +01001193'runtimepath'; entries are kept in sorted order.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001194
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001195If there are marked files and/or directories, mb will add them to the bookmark
1196list.
1197
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001198 *netrw-:NetrwMB*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001199Addtionally, one may use :NetrwMB to bookmark files or directories. >
1200
1201 :NetrwMB[!] [files/directories]
1202
1203< No bang: enters files/directories into Netrw's bookmark system
1204
1205 No argument and in netrw buffer:
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001206 if there are marked files : bookmark marked files
1207 otherwise : bookmark file/directory under cursor
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001208 No argument and not in netrw buffer: bookmarks current open file
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001209 Has arguments : |glob()|s each arg and bookmarks them
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001210
1211 With bang: deletes files/directories from Netrw's bookmark system
1212
1213The :NetrwMB command is available outside of netrw buffers (once netrw has been
1214invoked in the session).
1215
1216The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001217default, its stored on the first directory on the user's |'runtimepath'|.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001218
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001219Related Topics:
1220 |netrw-gb| how to return (go) to a bookmark
1221 |netrw-mB| how to delete bookmarks
1222 |netrw-qb| how to list bookmarks
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001223 |g:netrw_home| controls where .netrwbook is kept
Bram Moolenaar4a85b412006-04-23 22:40:29 +00001224
1225
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001226BROWSING *netrw-enter* *netrw-cr* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001227
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001228Browsing is simple: move the cursor onto a file or directory of interest.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001229Hitting the <cr> (the return key) will select the file or directory.
1230Directories will themselves be listed, and files will be opened using the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001231protocol given in the original read request.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001232
Bram Moolenaar446cb832008-06-24 21:56:24 +00001233 CAVEAT: There are four forms of listing (see |netrw-i|). Netrw assumes that
1234 two or more spaces delimit filenames and directory names for the long and
1235 wide listing formats. Thus, if your filename or directory name has two or
1236 more sequential spaces embedded in it, or any trailing spaces, then you'll
1237 need to use the "thin" format to select it.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001238
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001239The |g:netrw_browse_split| option, which is zero by default, may be used to
Bram Moolenaar446cb832008-06-24 21:56:24 +00001240cause the opening of files to be done in a new window or tab instead of the
1241default. When the option is one or two, the splitting will be taken
1242horizontally or vertically, respectively. When the option is set to three, a
1243<cr> will cause the file to appear in a new tab.
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001244
Bram Moolenaar83bab712005-08-01 21:58:57 +00001245
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001246When using the gui (gvim), one may select a file by pressing the <leftmouse>
1247button. In addition, if
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001248
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001249 * |g:netrw_retmap| == 1 AND (its default value is 0)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001250 * in a netrw-selected file, AND
1251 * the user doesn't already have a <2-leftmouse> mapping defined before
1252 netrw is loaded
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001253
Bram Moolenaar446cb832008-06-24 21:56:24 +00001254then a doubly-clicked leftmouse button will return to the netrw browser
1255window.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001256
Bram Moolenaar446cb832008-06-24 21:56:24 +00001257Netrw attempts to speed up browsing, especially for remote browsing where one
1258may have to enter passwords, by keeping and re-using previously obtained
1259directory listing buffers. The |g:netrw_fastbrowse| variable is used to
1260control this behavior; one may have slow browsing (no buffer re-use), medium
1261speed browsing (re-use directory buffer listings only for remote directories),
1262and fast browsing (re-use directory buffer listings as often as possible).
1263The price for such re-use is that when changes are made (such as new files
1264are introduced into a directory), the listing may become out-of-date. One may
1265always refresh directory listing buffers by pressing ctrl-L (see
1266|netrw-ctrl-l|).
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001267
1268 *netrw-s-cr*
1269Squeezing the Current Tree-Listing Directory~
1270
1271When the tree listing style is enabled (see |netrw-i|) and one is using
1272gvim, then the <s-cr> mapping may be used to squeeze (close) the
1273directory currently containing the cursor.
1274
1275Otherwise, one may remap a key combination of one's own choice to get
1276this effect: >
1277
1278 nmap <buffer> <silent> <nowait> YOURKEYCOMBO <Plug>NetrwTreeSqueeze
1279<
1280Put this line in $HOME/ftplugin/netrw/netrw.vim; it needs to be generated
1281for netrw buffers only.
Bram Moolenaara6878372014-03-22 21:02:50 +01001282
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001283Related topics:
1284 |netrw-ctrl-r| |netrw-o| |netrw-p|
1285 |netrw-P| |netrw-t| |netrw-v|
1286Associated setting variables:
1287 |g:netrw_browse_split| |g:netrw_fastbrowse|
1288 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1289 |g:netrw_ftp_timelist_cmd| |g:netrw_ssh_browse_reject|
1290 |g:netrw_ssh_cmd| |g:netrw_use_noswf|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001291
1292
1293BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz* {{{2
1294
1295Normally one enters a file or directory using the <cr>. However, the "o" map
1296allows one to open a new window to hold the new directory listing or file. A
1297horizontal split is used. (for vertical splitting, see |netrw-v|)
1298
1299Normally, the o key splits the window horizontally with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001300cursor at the top.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001301
1302Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
1303
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001304Related topics:
1305 |netrw-ctrl-r| |netrw-o| |netrw-p|
1306 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001307Associated setting variables:
1308 |g:netrw_alto| control above/below splitting
1309 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001310
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001311BROWSING WITH A NEW TAB *netrw-t* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001312
1313Normally one enters a file or directory using the <cr>. The "t" map
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001314allows one to open a new window holding the new directory listing or file in
Bram Moolenaarff034192013-04-24 18:51:19 +02001315a new tab.
1316
1317If you'd like to have the new listing in a background tab, use |gT|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001318
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001319Related topics:
1320 |netrw-ctrl-r| |netrw-o| |netrw-p|
1321 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001322Associated setting variables:
1323 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001324
1325BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
1326
1327Normally one enters a file or directory using the <cr>. However, the "v" map
1328allows one to open a new window to hold the new directory listing or file. A
1329vertical split is used. (for horizontal splitting, see |netrw-o|)
1330
1331Normally, the v key splits the window vertically with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001332cursor at the left.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001333
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001334There is only one tree listing buffer; using "v" on a displayed subdirectory
Bram Moolenaar446cb832008-06-24 21:56:24 +00001335will split the screen, but the same buffer will be shown twice.
1336
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001337Related topics:
1338 |netrw-ctrl-r| |netrw-o| |netrw-p|
1339 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001340Associated setting variables:
1341 |g:netrw_altv| control right/left splitting
1342 |g:netrw_winsize| control initial sizing
1343
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001344
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001345BROWSING USING A GVIM SERVER *netrw-ctrl-r* {{{2
1346
1347One may keep a browsing gvim separate from the gvim being used to edit.
1348Use the <c-r> map on a file (not a directory) in the netrw browser, and it
1349will use a gvim server (see |g:netrw_servername|). Subsequent use of <cr>
1350(see |netrw-cr|) will re-use that server for editing files.
1351
1352Related topics:
1353 |netrw-ctrl-r| |netrw-o| |netrw-p|
1354 |netrw-P| |netrw-t| |netrw-v|
1355Associated setting variables:
1356 |g:netrw_servername| : sets name of server
1357 |g:netrw_browse_split| : controls how <cr> will open files
1358
1359
1360CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001361
Bram Moolenaar9964e462007-05-05 17:54:07 +00001362The "i" map cycles between the thin, long, wide, and tree listing formats.
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001363
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001364The thin listing format gives just the files' and directories' names.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001365
Bram Moolenaar8299df92004-07-10 09:47:34 +00001366The long listing is either based on the "ls" command via ssh for remote
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001367directories or displays the filename, file size (in bytes), and the time and
1368date of last modification for local directories. With the long listing
1369format, netrw is not able to recognize filenames which have trailing spaces.
1370Use the thin listing format for such files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001371
Bram Moolenaar9964e462007-05-05 17:54:07 +00001372The wide listing format uses two or more contiguous spaces to delineate
1373filenames; when using that format, netrw won't be able to recognize or use
1374filenames which have two or more contiguous spaces embedded in the name or any
1375trailing spaces. The thin listing format will, however, work with such files.
Bram Moolenaar13600302014-05-22 18:26:40 +02001376The wide listing format is the most compact.
Bram Moolenaar9964e462007-05-05 17:54:07 +00001377
1378The tree listing format has a top directory followed by files and directories
Bram Moolenaar13600302014-05-22 18:26:40 +02001379preceded by one or more "|"s, which indicate the directory depth. One may
1380open and close directories by pressing the <cr> key while atop the directory
1381name.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001382
1383One may make a preferred listing style your default; see |g:netrw_liststyle|.
1384As an example, by putting the following line in your .vimrc, >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001385 let g:netrw_liststyle= 3
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001386the tree style will become your default listing style.
Bram Moolenaar8299df92004-07-10 09:47:34 +00001387
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001388One typical way to use the netrw tree display is to: >
1389
1390 vim .
1391 (use i until a tree display shows)
1392 navigate to a file
1393 v (edit as desired in vertically split window)
1394 ctrl-w h (to return to the netrw listing)
1395 P (edit newly selected file in the previous window)
1396 ctrl-w h (to return to the netrw listing)
1397 P (edit newly selected file in the previous window)
1398 ...etc...
1399<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001400Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
1401 |g:netrw_timefmt| |g:netrw_list_cmd|
Bram Moolenaar8299df92004-07-10 09:47:34 +00001402
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001403CHANGE FILE PERMISSION *netrw-gp* {{{2
1404
1405"gp" will ask you for a new permission for the file named under the cursor.
1406Currently, this only works for local files.
1407
1408Associated setting variables: |g:netrw_chgperm|
1409
Bram Moolenaar83bab712005-08-01 21:58:57 +00001410
Bram Moolenaar446cb832008-06-24 21:56:24 +00001411CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
Bram Moolenaar843ee412004-06-30 16:16:41 +00001412
Bram Moolenaar446cb832008-06-24 21:56:24 +00001413To change directory back to a bookmarked directory, use
Bram Moolenaar843ee412004-06-30 16:16:41 +00001414
Bram Moolenaar446cb832008-06-24 21:56:24 +00001415 {cnt}gb
Bram Moolenaar843ee412004-06-30 16:16:41 +00001416
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001417Any count may be used to reference any of the bookmarks.
Bram Moolenaarff034192013-04-24 18:51:19 +02001418Note that |netrw-qb| shows both bookmarks and history; to go
1419to a location stored in the history see |netrw-u| and |netrw-U|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001420
1421Related Topics:
1422 |netrw-mB| how to delete bookmarks
1423 |netrw-mb| how to make a bookmark
1424 |netrw-qb| how to list bookmarks
Bram Moolenaar843ee412004-06-30 16:16:41 +00001425
Bram Moolenaar843ee412004-06-30 16:16:41 +00001426
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001427CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001428
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001429Every time you change to a new directory (new for the current session), netrw
1430will save the directory in a recently-visited directory history list (unless
1431|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
1432map, one can change to an earlier directory (predecessor). To do the
1433opposite, see |netrw-U|.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001434
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001435The "u" map also accepts counts to go back in the history several slots. For
1436your convenience, qb (see |netrw-qb|) lists the history number which may be
1437used in that count.
Bram Moolenaarff034192013-04-24 18:51:19 +02001438
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001439 *.netrwhist*
Bram Moolenaarff034192013-04-24 18:51:19 +02001440See |g:netrw_dirhistmax| for how to control the quantity of history stack
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001441slots. The file ".netrwhist" holds history when netrw (and vim) is not
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001442active. By default, its stored on the first directory on the user's
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001443|'runtimepath'|.
1444
1445Related Topics:
1446 |netrw-U| changing to a successor directory
1447 |g:netrw_home| controls where .netrwhist is kept
Bram Moolenaarff034192013-04-24 18:51:19 +02001448
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001449
Bram Moolenaar446cb832008-06-24 21:56:24 +00001450CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001451
1452With the "U" map, one can change to a later directory (successor).
1453This map is the opposite of the "u" map. (see |netrw-u|) Use the
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001454qb map to list both the bookmarks and history. (see |netrw-qb|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001455
Bram Moolenaarff034192013-04-24 18:51:19 +02001456The "U" map also accepts counts to go forward in the history several slots.
1457
1458See |g:netrw_dirhistmax| for how to control the quantity of history stack
1459slots.
1460
Bram Moolenaar446cb832008-06-24 21:56:24 +00001461
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001462CHANGING TREE TOP *netrw-ntree* *:Ntree* *netrw-gn* {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01001463
1464One may specify a new tree top for tree listings using >
1465
1466 :Ntree [dirname]
1467
1468Without a "dirname", the current line is used (and any leading depth
1469information is elided).
1470With a "dirname", the specified directory name is used.
1471
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001472The "gn" map will take the word below the cursor and use that for
1473changing the top of the tree listing.
1474
Bram Moolenaar8d043172014-01-23 14:24:41 +01001475
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001476NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001477
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001478With :NetrwClean one may easily remove netrw from one's home directory;
Bram Moolenaar446cb832008-06-24 21:56:24 +00001479more precisely, from the first directory on your |'runtimepath'|.
1480
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001481With :NetrwClean!, netrw will attempt to remove netrw from all directories on
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001482your |'runtimepath'|. Of course, you have to have write/delete permissions
1483correct to do this.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001484
1485With either form of the command, netrw will first ask for confirmation
1486that the removal is in fact what you want to do. If netrw doesn't have
1487permission to remove a file, it will issue an error message.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001488
Bram Moolenaar9964e462007-05-05 17:54:07 +00001489 *netrw-gx*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001490CUSTOMIZING BROWSING WITH A SPECIAL HANDLER *netrw-x* *netrw-handler* {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00001491 (also see |netrw_filehandler|)
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001492
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001493Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001494best seen with a special handler (ie. a tool provided with your computer's
1495operating system). Netrw allows one to invoke such special handlers by: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001496
1497 * when Exploring, hit the "x" key
1498 * when editing, hit gx with the cursor atop the special filename
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001499< (latter not available if the |g:netrw_nogx| variable exists)
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001500
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001501Netrw determines which special handler by the following method:
1502
1503 * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
1504 view files. Examples of useful settings (place into your <.vimrc>): >
1505
1506 :let g:netrw_browsex_viewer= "kfmclient exec"
1507< or >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001508 :let g:netrw_browsex_viewer= "xdg-open"
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001509<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001510 If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
1511 used instead (see |netrw_filehandler|).
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001512
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001513 * for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001514 * for Gnome (with gnome-open): gnome-open is used.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001515 * for KDE (with kfmclient) : kfmclient is used
Bram Moolenaar446cb832008-06-24 21:56:24 +00001516 * for Mac OS X : open is used.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001517 * otherwise the netrwFileHandler plugin is used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001518
1519The file's suffix is used by these various approaches to determine an
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001520appropriate application to use to "handle" these files. Such things as
1521OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
1522*.eps) can be handled.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001523
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001524The gx mapping extends to all buffers; apply "gx" while atop a word and netrw
1525will apply a special handler to it (like "x" works when in a netrw buffer).
1526One may also use visual mode (see |visual-start|) to select the text that the
1527special handler will use. Normally gx uses expand("<cfile>") to pick up the
1528text under the cursor; one may change what |expand()| uses via the
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001529|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
1530expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
1531select the text to be used by gx by making a visual selection (see
1532|visual-block|) and then pressing gx.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001533
1534Associated setting variables:
1535 |g:netrw_gx| control how gx picks up the text under the cursor
1536 |g:netrw_nogx| prevent gx map while editing
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02001537 |g:netrw_suppress_gx_mesg| controls gx's suppression of browser messages
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001538
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001539 *netrw_filehandler*
Bram Moolenaar9964e462007-05-05 17:54:07 +00001540
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001541When |g:netrw_browsex_viewer| exists and is "-", then netrw will attempt to
1542handle the special file with a vim function. The "x" map applies a function
1543to a file, based on its extension. Of course, the handler function must exist
1544for it to be called!
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001545>
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001546 Ex. mypgm.html x -> NFH_html("scp://user@host/some/path/mypgm.html")
1547
1548< Users may write their own netrw File Handler functions to
1549 support more suffixes with special handling. See
1550 <autoload/netrwFileHandlers.vim> for examples on how to make
1551 file handler functions. As an example: >
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001552
Bram Moolenaar9964e462007-05-05 17:54:07 +00001553 " NFH_suffix(filename)
1554 fun! NFH_suffix(filename)
1555 ..do something special with filename..
1556 endfun
1557<
1558These functions need to be defined in some file in your .vim/plugin
1559(vimfiles\plugin) directory. Vim's function names may not have punctuation
1560characters (except for the underscore) in them. To support suffices that
1561contain such characters, netrw will first convert the suffix using the
1562following table: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001563
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001564 @ -> AT ! -> EXCLAMATION % -> PERCENT
1565 : -> COLON = -> EQUAL ? -> QUESTION
Bram Moolenaar9964e462007-05-05 17:54:07 +00001566 , -> COMMA - -> MINUS ; -> SEMICOLON
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001567 $ -> DOLLAR + -> PLUS ~ -> TILDE
1568<
Bram Moolenaar9964e462007-05-05 17:54:07 +00001569So, for example: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001570
Bram Moolenaar9964e462007-05-05 17:54:07 +00001571 file.rcs,v -> NFH_rcsCOMMAv()
1572<
1573If more such translations are necessary, please send me email: >
Bram Moolenaar29634562020-01-09 21:46:04 +01001574 NcampObell@SdrPchip.AorgM-NOSPAM
1575with a request. (remove the embedded NOSPAM first)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001576
Bram Moolenaar446cb832008-06-24 21:56:24 +00001577Associated setting variable: |g:netrw_browsex_viewer|
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001578
Bram Moolenaar446cb832008-06-24 21:56:24 +00001579 *netrw-curdir*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001580DELETING BOOKMARKS *netrw-mB* {{{2
1581
1582To delete a bookmark, use >
1583
1584 {cnt}mB
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001585
1586If there are marked files, then mB will remove them from the
1587bookmark list.
1588
1589Alternatively, one may use :NetrwMB! (see |netrw-:NetrwMB|). >
1590
1591 :NetrwMB! [files/directories]
1592
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001593Related Topics:
1594 |netrw-gb| how to return (go) to a bookmark
1595 |netrw-mb| how to make a bookmark
1596 |netrw-qb| how to list bookmarks
1597
1598
Bram Moolenaar446cb832008-06-24 21:56:24 +00001599DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001600
Bram Moolenaar446cb832008-06-24 21:56:24 +00001601If files have not been marked with |netrw-mf|: (local marked file list)
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001602
Bram Moolenaar446cb832008-06-24 21:56:24 +00001603 Deleting/removing files and directories involves moving the cursor to the
1604 file/directory to be deleted and pressing "D". Directories must be empty
1605 first before they can be successfully removed. If the directory is a
1606 softlink to a directory, then netrw will make two requests to remove the
1607 directory before succeeding. Netrw will ask for confirmation before doing
1608 the removal(s). You may select a range of lines with the "V" command
1609 (visual selection), and then pressing "D".
Bram Moolenaar9964e462007-05-05 17:54:07 +00001610
Bram Moolenaar446cb832008-06-24 21:56:24 +00001611If files have been marked with |netrw-mf|: (local marked file list)
1612
1613 Marked files (and empty directories) will be deleted; again, you'll be
1614 asked to confirm the deletion before it actually takes place.
1615
Bram Moolenaar13600302014-05-22 18:26:40 +02001616A further approach is to delete files which match a pattern.
1617
1618 * use :MF pattern (see |netrw-:MF|); then press "D".
1619
1620 * use mr (see |netrw-mr|) which will prompt you for pattern.
1621 This will cause the matching files to be marked. Then,
1622 press "D".
1623
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001624If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
1625is used to remove directories; instead, vim's |delete()| is used with
1626the "d" option. Please note that only empty directories may be deleted
1627with the "D" mapping. Regular files are deleted with |delete()|, too.
1628
Bram Moolenaar446cb832008-06-24 21:56:24 +00001629The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
Bram Moolenaar13600302014-05-22 18:26:40 +02001630used to control the attempts to remove remote files and directories. The
Bram Moolenaar446cb832008-06-24 21:56:24 +00001631g:netrw_rm_cmd is used with files, and its default value is:
1632
1633 g:netrw_rm_cmd: ssh HOSTNAME rm
1634
1635The g:netrw_rmdir_cmd variable is used to support the removal of directories.
1636Its default value is:
1637
Bram Moolenaar13600302014-05-22 18:26:40 +02001638 |g:netrw_rmdir_cmd|: ssh HOSTNAME rmdir
Bram Moolenaar446cb832008-06-24 21:56:24 +00001639
1640If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
1641to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
1642
Bram Moolenaar13600302014-05-22 18:26:40 +02001643 |g:netrw_rmf_cmd|: ssh HOSTNAME rm -f
Bram Moolenaar446cb832008-06-24 21:56:24 +00001644
Bram Moolenaar15146672011-10-20 22:22:38 +02001645Related topics: |netrw-d|
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001646Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001647 |g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001648
1649
Bram Moolenaar446cb832008-06-24 21:56:24 +00001650*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001651*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001652DIRECTORY EXPLORATION COMMANDS {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001653
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001654 :[N]Explore[!] [dir]... Explore directory of current file *:Explore*
1655 :[N]Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001656 :[N]Lexplore[!] [dir]... Left Explorer Toggle *:Lexplore*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001657 :[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001658 :[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001659 :Texplore [dir]... Tab & Explore *:Texplore*
1660 :Rexplore ... Return to/from Explorer *:Rexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001661
1662 Used with :Explore **/pattern : (also see |netrw-starstar|)
1663 :Nexplore............. go to next matching file *:Nexplore*
1664 :Pexplore............. go to previous matching file *:Pexplore*
1665
Bram Moolenaara6878372014-03-22 21:02:50 +01001666 *netrw-:Explore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001667:Explore will open the local-directory browser on the current file's
1668 directory (or on directory [dir] if specified). The window will be
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001669 split only if the file has been modified and |'hidden'| is not set,
1670 otherwise the browsing window will take over that window. Normally
1671 the splitting is taken horizontally.
Bram Moolenaara6878372014-03-22 21:02:50 +01001672 Also see: |netrw-:Rexplore|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001673:Explore! is like :Explore, but will use vertical splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001674
Bram Moolenaara6878372014-03-22 21:02:50 +01001675 *netrw-:Hexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001676:Hexplore [dir] does an :Explore with |:belowright| horizontal splitting.
1677:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001678
1679 *netrw-:Lexplore*
1680:[N]Lexplore [dir] toggles a full height Explorer window on the left hand side
1681 of the current tab. It will open a netrw window on the current
1682 directory if [dir] is omitted; a :Lexplore [dir] will show the
1683 specified directory in the left-hand side browser display no matter
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001684 from which window the command is issued.
1685
1686 By default, :Lexplore will change an uninitialized |g:netrw_chgwin|
1687 to 2; edits will thus preferentially be made in window#2.
1688
1689 The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001690 window.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001691
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001692 Those who like this method often also like tree style displays;
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001693 see |g:netrw_liststyle|.
1694
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001695:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
1696 Explorer window will open on the right hand side and an
1697 uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
1698 preferentially occur in the leftmost window).
1699
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001700 Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
1701 |netrw-p| |netrw-P| |g:netrw_chgwin|
1702 |netrw-c-tab| |g:netrw_winsize|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001703
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001704 *netrw-:Sexplore*
1705:[N]Sexplore will always split the window before invoking the local-directory
1706 browser. As with Explore, the splitting is normally done
1707 horizontally.
1708:[N]Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically.
1709
Bram Moolenaara6878372014-03-22 21:02:50 +01001710 *netrw-:Texplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001711:Texplore [dir] does a |:tabnew| before generating the browser window
Bram Moolenaar446cb832008-06-24 21:56:24 +00001712
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001713 *netrw-:Vexplore*
1714:[N]Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
1715:[N]Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001716
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001717The optional parameters are:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001718
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001719 [N]: This parameter will override |g:netrw_winsize| to specify the quantity of
1720 rows and/or columns the new explorer window should have.
1721 Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
1722 user, is used to control the quantity of rows and/or columns new
1723 explorer windows should have.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001724
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001725 [dir]: By default, these explorer commands use the current file's directory.
1726 However, one may explicitly provide a directory (path) to use instead;
1727 ie. >
1728
1729 :Explore /some/path
1730<
Bram Moolenaara6878372014-03-22 21:02:50 +01001731 *netrw-:Rexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001732:Rexplore This command is a little different from the other Explore commands
1733 as it doesn't necessarily open an Explorer window.
Bram Moolenaara6878372014-03-22 21:02:50 +01001734
1735 Return to Explorer~
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001736 When one edits a file using netrw which can occur, for example,
1737 when pressing <cr> while the cursor is atop a filename in a netrw
1738 browser window, a :Rexplore issued while editing that file will
1739 return the display to that of the last netrw browser display in
1740 that window.
Bram Moolenaara6878372014-03-22 21:02:50 +01001741
1742 Return from Explorer~
1743 Conversely, when one is editing a directory, issuing a :Rexplore
Bram Moolenaar13600302014-05-22 18:26:40 +02001744 will return to editing the file that was last edited in that
Bram Moolenaara6878372014-03-22 21:02:50 +01001745 window.
1746
1747 The <2-leftmouse> map (which is only available under gvim and
1748 cooperative terms) does the same as :Rexplore.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001749
Bram Moolenaar8d043172014-01-23 14:24:41 +01001750Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
1751
Bram Moolenaar446cb832008-06-24 21:56:24 +00001752
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001753*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat* *netrw-grep*
1754EXPLORING WITH STARS AND PATTERNS {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001755
1756When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001757following four patterns Explore generates a list of files which satisfy the
1758request for the local file system. These exploration patterns will not work
1759with remote file browsing.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001760
1761 */filepat files in current directory which satisfy filepat
1762 **/filepat files in current directory or below which satisfy the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001763 file pattern
Bram Moolenaar446cb832008-06-24 21:56:24 +00001764 *//pattern files in the current directory which contain the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001765 pattern (vimgrep is used)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001766 **//pattern files in the current directory or below which contain
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001767 the pattern (vimgrep is used)
Bram Moolenaar572cb562005-08-05 21:35:02 +00001768<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001769The cursor will be placed on the first file in the list. One may then
1770continue to go to subsequent files on that list via |:Nexplore| or to
1771preceding files on that list with |:Pexplore|. Explore will update the
1772directory and place the cursor appropriately.
1773
1774A plain >
1775 :Explore
1776will clear the explore list.
1777
1778If your console or gui produces recognizable shift-up or shift-down sequences,
1779then you'll likely find using shift-downarrow and shift-uparrow convenient.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001780They're mapped by netrw as follows:
Bram Moolenaar446cb832008-06-24 21:56:24 +00001781
1782 <s-down> == Nexplore, and
1783 <s-up> == Pexplore.
1784
1785As an example, consider
1786>
1787 :Explore */*.c
1788 :Nexplore
1789 :Nexplore
1790 :Pexplore
1791<
1792The status line will show, on the right hand side of the status line, a
1793message like "Match 3 of 20".
1794
Bram Moolenaara6878372014-03-22 21:02:50 +01001795Associated setting variables:
1796 |g:netrw_keepdir| |g:netrw_browse_split|
1797 |g:netrw_fastbrowse| |g:netrw_ftp_browse_reject|
1798 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1799 |g:netrw_ftp_timelist_cmd| |g:netrw_list_cmd|
1800 |g:netrw_liststyle|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001801
1802
Bram Moolenaar446cb832008-06-24 21:56:24 +00001803DISPLAYING INFORMATION ABOUT FILE *netrw-qf* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001804
Bram Moolenaar446cb832008-06-24 21:56:24 +00001805With the cursor atop a filename, pressing "qf" will reveal the file's size
1806and last modification timestamp. Currently this capability is only available
1807for local files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001808
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001809
Bram Moolenaar446cb832008-06-24 21:56:24 +00001810EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001811
Bram Moolenaar446cb832008-06-24 21:56:24 +00001812The "<ctrl-h>" map brings up a requestor allowing the user to change the
1813file/directory hiding list contained in |g:netrw_list_hide|. The hiding list
1814consists of one or more patterns delimited by commas. Files and/or
1815directories satisfying these patterns will either be hidden (ie. not shown) or
1816be the only ones displayed (see |netrw-a|).
1817
1818The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
1819hiding list and the hiding of files or directories that begin with ".".
1820
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001821As an example, >
1822 let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
1823Effectively, this makes the effect of a |netrw-gh| command the initial setting.
1824What it means:
1825
1826 \(^\|\s\s\) : if the line begins with the following, -or-
1827 two consecutive spaces are encountered
1828 \zs : start the hiding match now
1829 \. : if it now begins with a dot
1830 \S\+ : and is followed by one or more non-whitespace
1831 characters
1832
Bram Moolenaar446cb832008-06-24 21:56:24 +00001833Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
1834Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001835
Bram Moolenaar15146672011-10-20 22:22:38 +02001836 *netrw-sort-sequence*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001837EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
1838
1839When "Sorted by" is name, one may specify priority via the sorting sequence
1840(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
1841name-listing by suffix, although any pattern will do. Patterns are delimited
1842by commas. The default sorting sequence is (all one line):
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001843
1844For Unix: >
1845 '[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
1846 \.info$,\.swp$,\.bak$,\~$'
1847<
1848Otherwise: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001849 '[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
1850 \.swp$,\.bak$,\~$'
1851<
1852The lone * is where all filenames not covered by one of the other patterns
1853will end up. One may change the sorting sequence by modifying the
1854g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
1855using the "S" map.
1856
Bram Moolenaarc236c162008-07-13 17:41:49 +00001857Related topics: |netrw-s| |netrw-S|
1858Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001859
1860
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001861EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
Bram Moolenaar97d62492012-11-15 21:28:22 +01001862
1863Pressing X while the cursor is atop an executable file will yield a prompt
1864using the filename asking for any arguments. Upon pressing a [return], netrw
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001865will then call |system()| with that command and arguments. The result will be
1866displayed by |:echomsg|, and so |:messages| will repeat display of the result.
1867Ansi escape sequences will be stripped out.
1868
1869See |cmdline-window| for directions for more on how to edit the arguments.
Bram Moolenaar97d62492012-11-15 21:28:22 +01001870
1871
Bram Moolenaaradc21822011-04-01 18:03:16 +02001872FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
1873
1874Remote symbolic links (ie. those listed via ssh or ftp) are problematic
1875in that it is difficult to tell whether they link to a file or to a
1876directory.
1877
1878To force treatment as a file: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001879 gf
Bram Moolenaaradc21822011-04-01 18:03:16 +02001880<
1881To force treatment as a directory: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001882 gd
Bram Moolenaaradc21822011-04-01 18:03:16 +02001883<
1884
Bram Moolenaar446cb832008-06-24 21:56:24 +00001885GOING UP *netrw--* {{{2
1886
1887To go up a directory, press "-" or press the <cr> when atop the ../ directory
1888entry in the listing.
1889
1890Netrw will use the command in |g:netrw_list_cmd| to perform the directory
1891listing operation after changing HOSTNAME to the host specified by the
Bram Moolenaara6878372014-03-22 21:02:50 +01001892user-prpvided url. By default netrw provides the command as: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001893
1894 ssh HOSTNAME ls -FLa
Bram Moolenaara6878372014-03-22 21:02:50 +01001895<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001896where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
1897read. Naturally, the user may override this command with whatever is
1898preferred. The NetList function which implements remote browsing
1899expects that directories will be flagged by a trailing slash.
1900
1901
1902HIDING FILES OR DIRECTORIES *netrw-a* *netrw-hiding* {{{2
1903
1904Netrw's browsing facility allows one to use the hiding list in one of three
1905ways: ignore it, hide files which match, and show only those files which
1906match.
1907
1908If no files have been marked via |netrw-mf|:
1909
1910The "a" map allows the user to cycle through the three hiding modes.
1911
1912The |g:netrw_list_hide| variable holds a comma delimited list of patterns
1913based on regular expressions (ex. ^.*\.obj$,^\.) which specify the hiding list.
1914(also see |netrw-ctrl-h|) To set the hiding list, use the <c-h> map. As an
1915example, to hide files which begin with a ".", one may use the <c-h> map to
1916set the hiding list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*'
1917in one's <.vimrc>). One may then use the "a" key to show all files, hide
1918matching files, or to show only the matching files.
1919
1920 Example: \.[ch]$
1921 This hiding list command will hide/show all *.c and *.h files.
1922
1923 Example: \.c$,\.h$
1924 This hiding list command will also hide/show all *.c and *.h
1925 files.
1926
1927Don't forget to use the "a" map to select the mode (normal/hiding/show) you
1928want!
1929
1930If files have been marked using |netrw-mf|, then this command will:
1931
1932 if showing all files or non-hidden files:
1933 modify the g:netrw_list_hide list by appending the marked files to it
1934 and showing only non-hidden files.
1935
1936 else if showing hidden files only:
1937 modify the g:netrw_list_hide list by removing the marked files from it
1938 and showing only non-hidden files.
1939 endif
1940
1941 *netrw-gh* *netrw-hide*
1942As a quick shortcut, one may press >
1943 gh
1944to toggle between hiding files which begin with a period (dot) and not hiding
1945them.
1946
Bram Moolenaar8d043172014-01-23 14:24:41 +01001947Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001948Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
1949
Bram Moolenaar8d043172014-01-23 14:24:41 +01001950 *netrw-gitignore*
1951Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
1952|g:netrw_list_hide| automatically hides all git-ignored files.
1953
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001954'netrw_gitignore#Hide' searches for patterns in the following files: >
1955
Bram Moolenaar8d043172014-01-23 14:24:41 +01001956 './.gitignore'
1957 './.git/info/exclude'
1958 global gitignore file: `git config --global core.excludesfile`
1959 system gitignore file: `git config --system core.excludesfile`
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001960<
Bram Moolenaar8d043172014-01-23 14:24:41 +01001961Files that do not exist, are ignored.
1962Git-ignore patterns are taken from existing files, and converted to patterns for
1963hiding files. For example, if you had '*.log' in your '.gitignore' file, it
1964would be converted to '.*\.log'.
1965
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001966To use this function, simply assign its output to |g:netrw_list_hide| option. >
Bram Moolenaar8d043172014-01-23 14:24:41 +01001967
1968 Example: let g:netrw_list_hide= netrw_gitignore#Hide()
1969 Git-ignored files are hidden in Netrw.
1970
1971 Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
1972 Function can take additional files with git-ignore patterns.
1973
1974 Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
1975 Combining 'netrw_gitignore#Hide' with custom patterns.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001976<
Bram Moolenaar8d043172014-01-23 14:24:41 +01001977
Bram Moolenaar446cb832008-06-24 21:56:24 +00001978IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001979
1980Especially with the remote directory browser, constantly entering the password
1981is tedious.
1982
Bram Moolenaar9964e462007-05-05 17:54:07 +00001983For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00001984tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip
1985for setting up no-password ssh and scp and discusses associated security
Bram Moolenaar9964e462007-05-05 17:54:07 +00001986issues. It used to be available at http://hacks.oreilly.com/pub/h/66 ,
1987but apparently that address is now being redirected to some "hackzine".
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001988I'll attempt a summary based on that article and on a communication from
1989Ben Schmidt:
Bram Moolenaar843ee412004-06-30 16:16:41 +00001990
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001991 1. Generate a public/private key pair on the local machine
1992 (ssh client): >
1993 ssh-keygen -t rsa
1994 (saving the file in ~/.ssh/id_rsa as prompted)
1995<
1996 2. Just hit the <CR> when asked for passphrase (twice) for no
1997 passphrase. If you do use a passphrase, you will also need to use
1998 ssh-agent so you only have to type the passphrase once per session.
1999 If you don't use a passphrase, simply logging onto your local
2000 computer or getting access to the keyfile in any way will suffice
2001 to access any ssh servers which have that key authorized for login.
2002
2003 3. This creates two files: >
2004 ~/.ssh/id_rsa
2005 ~/.ssh/id_rsa.pub
2006<
2007 4. On the target machine (ssh server): >
2008 cd
2009 mkdir -p .ssh
2010 chmod 0700 .ssh
2011<
2012 5. On your local machine (ssh client): (one line) >
2013 ssh {serverhostname}
2014 cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
2015<
2016 or, for OpenSSH, (one line) >
2017 ssh {serverhostname}
2018 cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
2019<
2020You can test it out with >
2021 ssh {serverhostname}
2022and you should be log onto the server machine without further need to type
2023anything.
2024
2025If you decided to use a passphrase, do: >
2026 ssh-agent $SHELL
2027 ssh-add
2028 ssh {serverhostname}
2029You will be prompted for your key passphrase when you use ssh-add, but not
2030subsequently when you use ssh. For use with vim, you can use >
2031 ssh-agent vim
2032and, when next within vim, use >
2033 :!ssh-add
2034Alternatively, you can apply ssh-agent to the terminal you're planning on
2035running vim in: >
2036 ssh-agent xterm &
2037and do ssh-add whenever you need.
Bram Moolenaar843ee412004-06-30 16:16:41 +00002038
Bram Moolenaar9964e462007-05-05 17:54:07 +00002039For Windows, folks on the vim mailing list have mentioned that Pageant helps
2040with avoiding the constant need to enter the password.
Bram Moolenaar433f7c82006-03-21 21:29:36 +00002041
Bram Moolenaar446cb832008-06-24 21:56:24 +00002042Kingston Fung wrote about another way to avoid constantly needing to enter
2043passwords:
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00002044
Bram Moolenaar446cb832008-06-24 21:56:24 +00002045 In order to avoid the need to type in the password for scp each time, you
2046 provide a hack in the docs to set up a non password ssh account. I found a
2047 better way to do that: I can use a regular ssh account which uses a
2048 password to access the material without the need to key-in the password
2049 each time. It's good for security and convenience. I tried ssh public key
2050 authorization + ssh-agent, implementing this, and it works! Here are two
2051 links with instructions:
2052
2053 http://www.ibm.com/developerworks/library/l-keyc2/
2054 http://sial.org/howto/openssh/publickey-auth/
2055
2056
Bram Moolenaar8d043172014-01-23 14:24:41 +01002057 Ssh hints:
2058
2059 Thomer Gil has provided a hint on how to speed up netrw+ssh:
2060 http://thomer.com/howtos/netrw_ssh.html
2061
2062 Alex Young has several hints on speeding ssh up:
2063 http://usevim.com/2012/03/16/editing-remote-files/
2064
2065
Bram Moolenaar446cb832008-06-24 21:56:24 +00002066LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
2067
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002068Pressing "qb" (query bookmarks) will list both the bookmarked directories and
2069directory traversal history.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002070
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002071Related Topics:
2072 |netrw-gb| how to return (go) to a bookmark
2073 |netrw-mb| how to make a bookmark
2074 |netrw-mB| how to delete bookmarks
2075 |netrw-u| change to a predecessor directory via the history stack
2076 |netrw-U| change to a successor directory via the history stack
Bram Moolenaar446cb832008-06-24 21:56:24 +00002077
2078MAKING A NEW DIRECTORY *netrw-d* {{{2
2079
2080With the "d" map one may make a new directory either remotely (which depends
2081on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002082global variable g:netrw_localmkdir). Netrw will issue a request for the new
Bram Moolenaar446cb832008-06-24 21:56:24 +00002083directory's name. A bare <CR> at that point will abort the making of the
2084directory. Attempts to make a local directory that already exists (as either
2085a file or a directory) will be detected, reported on, and ignored.
2086
Bram Moolenaar15146672011-10-20 22:22:38 +02002087Related topics: |netrw-D|
Bram Moolenaar8d043172014-01-23 14:24:41 +01002088Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
2089 |g:netrw_remote_mkdir| |netrw-%|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002090
2091
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002092MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002093
2094By default, |g:netrw_keepdir| is 1. This setting means that the current
Bram Moolenaarff034192013-04-24 18:51:19 +02002095directory will not track the browsing directory. (done for backwards
2096compatibility with v6's file explorer).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002097
Bram Moolenaarff034192013-04-24 18:51:19 +02002098Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002099track netrw's browsing directory.
2100
2101However, given the default setting for g:netrw_keepdir of 1 where netrw
2102maintains its own separate notion of the current directory, in order to make
Bram Moolenaar85850f32019-07-19 22:05:51 +02002103the two directories the same, use the "cd" map (type cd). That map will
Bram Moolenaar446cb832008-06-24 21:56:24 +00002104set Vim's notion of the current directory to netrw's current browsing
2105directory.
2106
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02002107|netrw-cd|: This map's name was changed from "c" to cd (see |netrw-cd|).
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002108 This change was done to allow for |netrw-cb| and |netrw-cB| maps.
2109
Bram Moolenaar446cb832008-06-24 21:56:24 +00002110Associated setting variable: |g:netrw_keepdir|
2111
Bram Moolenaara6878372014-03-22 21:02:50 +01002112MARKING FILES *netrw-:MF* *netrw-mf* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002113 (also see |netrw-mr|)
2114
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002115Netrw provides several ways to mark files:
Bram Moolenaara6878372014-03-22 21:02:50 +01002116
2117 * One may mark files with the cursor atop a filename and
Bram Moolenaar13600302014-05-22 18:26:40 +02002118 then pressing "mf".
Bram Moolenaara6878372014-03-22 21:02:50 +01002119
2120 * With gvim, in addition one may mark files with
Bram Moolenaar13600302014-05-22 18:26:40 +02002121 <s-leftmouse>. (see |netrw-mouse|)
Bram Moolenaara6878372014-03-22 21:02:50 +01002122
2123 * One may use the :MF command, which takes a list of
Bram Moolenaar13600302014-05-22 18:26:40 +02002124 files (for local directories, the list may include
2125 wildcards -- see |glob()|) >
Bram Moolenaara6878372014-03-22 21:02:50 +01002126
2127 :MF *.c
2128<
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002129 (Note that :MF uses |<f-args>| to break the line
2130 at spaces)
2131
2132 * Mark files using the |argument-list| (|netrw-mA|)
2133
2134 * Mark files based upon a |location-list| (|netrw-qL|)
Bram Moolenaar13600302014-05-22 18:26:40 +02002135
2136 * Mark files based upon the quickfix list (|netrw-qF|)
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002137 (|quickfix-error-lists|)
Bram Moolenaara6878372014-03-22 21:02:50 +01002138
2139The following netrw maps make use of marked files:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002140
2141 |netrw-a| Hide marked files/directories
2142 |netrw-D| Delete marked files/directories
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002143 |netrw-ma| Move marked files' names to |arglist|
2144 |netrw-mA| Move |arglist| filenames to marked file list
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002145 |netrw-mb| Append marked files to bookmarks
2146 |netrw-mB| Delete marked files from bookmarks
Bram Moolenaar446cb832008-06-24 21:56:24 +00002147 |netrw-mc| Copy marked files to target
2148 |netrw-md| Apply vimdiff to marked files
2149 |netrw-me| Edit marked files
Bram Moolenaarff034192013-04-24 18:51:19 +02002150 |netrw-mF| Unmark marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002151 |netrw-mg| Apply vimgrep to marked files
Bram Moolenaara6878372014-03-22 21:02:50 +01002152 |netrw-mm| Move marked files to target
Bram Moolenaar446cb832008-06-24 21:56:24 +00002153 |netrw-mp| Print marked files
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002154 |netrw-ms| Netrw will source marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002155 |netrw-mt| Set target for |netrw-mm| and |netrw-mc|
2156 |netrw-mT| Generate tags using marked files
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002157 |netrw-mv| Apply vim command to marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002158 |netrw-mx| Apply shell command to marked files
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002159 |netrw-mX| Apply shell command to marked files, en bloc
Bram Moolenaar446cb832008-06-24 21:56:24 +00002160 |netrw-mz| Compress/Decompress marked files
2161 |netrw-O| Obtain marked files
2162 |netrw-R| Rename marked files
2163
2164One may unmark files one at a time the same way one marks them; ie. place
2165the cursor atop a marked file and press "mf". This process also works
2166with <s-leftmouse> using gvim. One may unmark all files by pressing
2167"mu" (see |netrw-mu|).
2168
Bram Moolenaaradc21822011-04-01 18:03:16 +02002169Marked files are highlighted using the "netrwMarkFile" highlighting group,
2170which by default is linked to "Identifier" (see Identifier under
2171|group-name|). You may change the highlighting group by putting something
2172like >
2173
2174 highlight clear netrwMarkFile
2175 hi link netrwMarkFile ..whatever..
2176<
2177into $HOME/.vim/after/syntax/netrw.vim .
2178
Bram Moolenaar8d043172014-01-23 14:24:41 +01002179If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
2180mark one or more files. You may mark multiple files by dragging the shifted
2181leftmouse. (see |netrw-mouse|)
2182
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002183 *markfilelist* *global_markfilelist* *local_markfilelist*
Bram Moolenaar446cb832008-06-24 21:56:24 +00002184All marked files are entered onto the global marked file list; there is only
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002185one such list. In addition, every netrw buffer also has its own buffer-local
2186marked file list; since netrw buffers are associated with specific
2187directories, this means that each directory has its own local marked file
2188list. The various commands which operate on marked files use one or the other
2189of the marked file lists.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002190
Bram Moolenaara6878372014-03-22 21:02:50 +01002191Known Problem: if one is using tree mode (|g:netrw_liststyle|) and several
2192directories have files with the same name, then marking such a file will
2193result in all such files being highlighted as if they were all marked. The
2194|markfilelist|, however, will only have the selected file in it. This problem
2195is unlikely to be fixed.
2196
Bram Moolenaar446cb832008-06-24 21:56:24 +00002197
Bram Moolenaarff034192013-04-24 18:51:19 +02002198UNMARKING FILES *netrw-mF* {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002199 (also see |netrw-mf|, |netrw-mu|)
Bram Moolenaarff034192013-04-24 18:51:19 +02002200
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002201The "mF" command will unmark all files in the current buffer. One may also use
2202mf (|netrw-mf|) on a specific, already marked, file to unmark just that file.
Bram Moolenaarff034192013-04-24 18:51:19 +02002203
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002204MARKING FILES BY LOCATION LIST *netrw-qL* {{{2
2205 (also see |netrw-mf|)
Bram Moolenaarff034192013-04-24 18:51:19 +02002206
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002207One may convert |location-list|s into a marked file list using "qL".
2208You may then proceed with commands such as me (|netrw-me|) to edit them.
2209
2210
2211MARKING FILES BY QUICKFIX LIST *netrw-qF* {{{2
Bram Moolenaarff034192013-04-24 18:51:19 +02002212 (also see |netrw-mf|)
2213
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002214One may convert |quickfix-error-lists| into a marked file list using "qF".
2215You may then proceed with commands such as me (|netrw-me|) to edit them.
2216Quickfix error lists are generated, for example, by calls to |:vimgrep|.
Bram Moolenaarff034192013-04-24 18:51:19 +02002217
2218
Bram Moolenaar446cb832008-06-24 21:56:24 +00002219MARKING FILES BY REGULAR EXPRESSION *netrw-mr* {{{2
2220 (also see |netrw-mf|)
2221
2222One may also mark files by pressing "mr"; netrw will then issue a prompt,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002223"Enter regexp: ". You may then enter a shell-style regular expression such
2224as *.c$ (see |glob()|). For remote systems, glob() doesn't work -- so netrw
2225converts "*" into ".*" (see |regexp|) and marks files based on that. In the
2226future I may make it possible to use |regexp|s instead of glob()-style
2227expressions (yet-another-option).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002228
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002229See |cmdline-window| for directions on more on how to edit the regular
2230expression.
2231
Bram Moolenaar446cb832008-06-24 21:56:24 +00002232
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002233MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
2234 (See |netrw-mf| and |netrw-mr| for how to mark files)
2235 (uses the local marked-file list)
2236
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002237The "mv" map causes netrw to execute an arbitrary vim command on each file on
2238the local marked file list, individually:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002239
2240 * 1split
2241 * sil! keepalt e file
2242 * run vim command
2243 * sil! keepalt wq!
2244
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002245A prompt, "Enter vim command: ", will be issued to elicit the vim command you
2246wish used. See |cmdline-window| for directions for more on how to edit the
2247command.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002248
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002249
2250MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002251 (See |netrw-mf| and |netrw-mr| for how to mark files)
2252 (uses the local marked-file list)
2253
2254Upon activation of the "mx" map, netrw will query the user for some (external)
2255command to be applied to all marked files. All "%"s in the command will be
2256substituted with the name of each marked file in turn. If no "%"s are in the
2257command, then the command will be followed by a space and a marked filename.
2258
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002259Example:
2260 (mark files)
2261 mx
2262 Enter command: cat
2263
2264 The result is a series of shell commands:
2265 cat 'file1'
2266 cat 'file2'
2267 ...
2268
2269
2270MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC *netrw-mX* {{{2
2271 (See |netrw-mf| and |netrw-mr| for how to mark files)
2272 (uses the global marked-file list)
2273
2274Upon activation of the 'mX' map, netrw will query the user for some (external)
2275command to be applied to all marked files on the global marked file list. The
2276"en bloc" means that one command will be executed on all the files at once: >
2277
2278 command files
2279
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002280This approach is useful, for example, to select files and make a tarball: >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002281
2282 (mark files)
2283 mX
2284 Enter command: tar cf mynewtarball.tar
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002285<
2286The command that will be run with this example:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002287
2288 tar cf mynewtarball.tar 'file1' 'file2' ...
2289
Bram Moolenaar446cb832008-06-24 21:56:24 +00002290
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002291MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
2292 (See |netrw-mf| and |netrw-mr| for how to mark files)
2293 (uses the global marked-file list)
2294
2295Using ma, one moves filenames from the marked file list to the argument list.
2296Using mA, one moves filenames from the argument list to the marked file list.
2297
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002298See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
2299
2300
2301MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
2302 (See |netrw-mf| and |netrw-mr| for how to mark files)
2303 (uses the global marked-file list)
2304
2305Using cb, one moves filenames from the marked file list to the buffer list.
2306Using cB, one copies filenames from the buffer list to the marked file list.
2307
2308See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002309
2310
Bram Moolenaar446cb832008-06-24 21:56:24 +00002311MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
2312 (See |netrw-mf| and |netrw-mr| for how to mark files)
2313 (uses the local marked file list)
2314
2315If any marked files are compressed, then "mz" will decompress them.
2316If any marked files are decompressed, then "mz" will compress them
2317using the command specified by |g:netrw_compress|; by default,
2318that's "gzip".
2319
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002320For decompression, netrw uses a |Dictionary| of suffices and their
Bram Moolenaar446cb832008-06-24 21:56:24 +00002321associated decompressing utilities; see |g:netrw_decompress|.
2322
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002323Remember that one can mark multiple files by regular expression
2324(see |netrw-mr|); this is particularly useful to facilitate compressing and
2325decompressing a large number of files.
2326
Bram Moolenaar446cb832008-06-24 21:56:24 +00002327Associated setting variables: |g:netrw_compress| |g:netrw_decompress|
2328
2329MARKED FILES: COPYING *netrw-mc* {{{2
2330 (See |netrw-mf| and |netrw-mr| for how to mark files)
2331 (Uses the global marked file list)
2332
2333Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02002334select file(s) (see |netrw-mf|), and press "mc". The copy is done
2335from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002336
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002337If one does not have a target directory set with |netrw-mt|, then netrw
2338will query you for a directory to copy to.
2339
2340One may also copy directories and their contents (local only) to a target
2341directory.
2342
2343Associated setting variables:
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002344 |g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
2345 |g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002346 |g:netrw_ssh_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002347
2348MARKED FILES: DIFF *netrw-md* {{{2
2349 (See |netrw-mf| and |netrw-mr| for how to mark files)
2350 (uses the global marked file list)
2351
2352Use |vimdiff| to visualize difference between selected files (two or
2353three may be selected for this). Uses the global marked file list.
2354
2355MARKED FILES: EDITING *netrw-me* {{{2
2356 (See |netrw-mf| and |netrw-mr| for how to mark files)
2357 (uses the global marked file list)
2358
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002359The "me" command will place the marked files on the |arglist| and commence
Bram Moolenaar446cb832008-06-24 21:56:24 +00002360editing them. One may return the to explorer window with |:Rexplore|.
Bram Moolenaarff034192013-04-24 18:51:19 +02002361(use |:n| and |:p| to edit next and previous files in the arglist)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002362
2363MARKED FILES: GREP *netrw-mg* {{{2
2364 (See |netrw-mf| and |netrw-mr| for how to mark files)
2365 (uses the global marked file list)
2366
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002367The "mg" command will apply |:vimgrep| to the marked files.
Bram Moolenaarff034192013-04-24 18:51:19 +02002368The command will ask for the requested pattern; one may then enter: >
2369
Bram Moolenaar446cb832008-06-24 21:56:24 +00002370 /pattern/[g][j]
2371 ! /pattern/[g][j]
2372 pattern
2373<
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002374With /pattern/, editing will start with the first item on the |quickfix| list
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002375that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|, |:cclose|). The |:vimgrep|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002376command is in use, so without 'g' each line is added to quickfix list only
2377once; with 'g' every match is included.
2378
2379With /pattern/j, "mg" will winnow the current marked file list to just those
2380marked files also possessing the specified pattern. Thus, one may use >
2381
2382 mr ...file-pattern...
2383 mg /pattern/j
2384<
2385to have a marked file list satisfying the file-pattern but also restricted to
2386files containing some desired pattern.
2387
Bram Moolenaarff034192013-04-24 18:51:19 +02002388
Bram Moolenaar446cb832008-06-24 21:56:24 +00002389MARKED FILES: HIDING AND UNHIDING BY SUFFIX *netrw-mh* {{{2
2390 (See |netrw-mf| and |netrw-mr| for how to mark files)
2391 (uses the local marked file list)
2392
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002393The "mh" command extracts the suffices of the marked files and toggles their
Bram Moolenaar446cb832008-06-24 21:56:24 +00002394presence on the hiding list. Please note that marking the same suffix
2395this way multiple times will result in the suffix's presence being toggled
2396for each file (so an even quantity of marked files having the same suffix
2397is the same as not having bothered to select them at all).
2398
2399Related topics: |netrw-a| |g:netrw_list_hide|
2400
2401MARKED FILES: MOVING *netrw-mm* {{{2
2402 (See |netrw-mf| and |netrw-mr| for how to mark files)
2403 (uses the global marked file list)
2404
Bram Moolenaare37d50a2008-08-06 17:06:04 +00002405 WARNING: moving files is more dangerous than copying them.
2406 A file being moved is first copied and then deleted; if the
2407 copy operation fails and the delete succeeds, you will lose
2408 the file. Either try things out with unimportant files
2409 first or do the copy and then delete yourself using mc and D.
2410 Use at your own risk!
2411
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002412Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02002413select file(s) (see |netrw-mf|), and press "mm". The move is done
2414from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002415
2416Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
2417
2418MARKED FILES: PRINTING *netrw-mp* {{{2
2419 (See |netrw-mf| and |netrw-mr| for how to mark files)
2420 (uses the local marked file list)
2421
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002422When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
2423What netrw does is open each file in a one-line window, execute hardcopy, then
2424close the one-line window.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002425
2426
2427MARKED FILES: SOURCING *netrw-ms* {{{2
2428 (See |netrw-mf| and |netrw-mr| for how to mark files)
2429 (uses the local marked file list)
2430
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002431With "ms", netrw will source the marked files (using vim's |:source| command)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002432
2433
Bram Moolenaarff034192013-04-24 18:51:19 +02002434MARKED FILES: SETTING THE TARGET DIRECTORY *netrw-mt* {{{2
2435 (See |netrw-mf| and |netrw-mr| for how to mark files)
2436
2437Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):
2438
2439 * If the cursor is atop a file name, then the netrw window's currently
2440 displayed directory is used for the copy/move-to target.
2441
2442 * Also, if the cursor is in the banner, then the netrw window's currently
2443 displayed directory is used for the copy/move-to target.
2444 Unless the target already is the current directory. In which case,
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002445 typing "mf" clears the target.
Bram Moolenaarff034192013-04-24 18:51:19 +02002446
2447 * However, if the cursor is atop a directory name, then that directory is
2448 used for the copy/move-to target
2449
Bram Moolenaara6878372014-03-22 21:02:50 +01002450 * One may use the :MT [directory] command to set the target *netrw-:MT*
2451 This command uses |<q-args>|, so spaces in the directory name are
2452 permitted without escaping.
2453
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002454 * With mouse-enabled vim or with gvim, one may select a target by using
2455 <c-leftmouse>
2456
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002457There is only one copy/move-to target at a time in a vim session; ie. the
2458target is a script variable (see |s:var|) and is shared between all netrw
2459windows (in an instance of vim).
Bram Moolenaarff034192013-04-24 18:51:19 +02002460
2461When using menus and gvim, netrw provides a "Targets" entry which allows one
2462to pick a target from the list of bookmarks and history.
2463
2464Related topics:
2465 Marking Files......................................|netrw-mf|
2466 Marking Files by Regular Expression................|netrw-mr|
2467 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2468 Marked Files: Target Directory Using History.......|netrw-Th|
2469
2470
Bram Moolenaar446cb832008-06-24 21:56:24 +00002471MARKED FILES: TAGGING *netrw-mT* {{{2
2472 (See |netrw-mf| and |netrw-mr| for how to mark files)
2473 (uses the global marked file list)
2474
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002475The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
Bram Moolenaar446cb832008-06-24 21:56:24 +00002476"ctags") to marked files. For remote browsing, in order to create a tags file
2477netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
2478this to work on remote systems. For your local system, see |ctags| on how to
2479get a version. I myself use hdrtags, currently available at
Bram Moolenaar97d62492012-11-15 21:28:22 +01002480http://www.drchip.org/astronaut/src/index.html , and have >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002481
2482 let g:netrw_ctags= "hdrtag"
2483<
2484in my <.vimrc>.
2485
2486When a remote set of files are tagged, the resulting tags file is "obtained";
Bram Moolenaara6878372014-03-22 21:02:50 +01002487ie. a copy is transferred to the local system's directory. The now local tags
Bram Moolenaar446cb832008-06-24 21:56:24 +00002488file is then modified so that one may use it through the network. The
Bram Moolenaara6878372014-03-22 21:02:50 +01002489modification made concerns the names of the files in the tags; each filename is
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002490preceded by the netrw-compatible URL used to obtain it. When one subsequently
2491uses one of the go to tag actions (|tags|), the URL will be used by netrw to
Bram Moolenaar446cb832008-06-24 21:56:24 +00002492edit the desired file and go to the tag.
2493
Bram Moolenaarc236c162008-07-13 17:41:49 +00002494Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002495
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002496MARKED FILES: TARGET DIRECTORY USING BOOKMARKS *netrw-Tb* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002497
Bram Moolenaara6878372014-03-22 21:02:50 +01002498Sets the marked file copy/move-to target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002499
Bram Moolenaarff034192013-04-24 18:51:19 +02002500The |netrw-qb| map will give you a list of bookmarks (and history).
2501One may choose one of the bookmarks to become your marked file
2502target by using [count]Tb (default count: 1).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002503
Bram Moolenaarff034192013-04-24 18:51:19 +02002504Related topics:
Bram Moolenaara6878372014-03-22 21:02:50 +01002505 Copying files to target............................|netrw-mc|
Bram Moolenaarff034192013-04-24 18:51:19 +02002506 Listing Bookmarks and History......................|netrw-qb|
2507 Marked Files: Setting The Target Directory.........|netrw-mt|
2508 Marked Files: Target Directory Using History.......|netrw-Th|
2509 Marking Files......................................|netrw-mf|
2510 Marking Files by Regular Expression................|netrw-mr|
Bram Moolenaara6878372014-03-22 21:02:50 +01002511 Moving files to target.............................|netrw-mm|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002512
Bram Moolenaar446cb832008-06-24 21:56:24 +00002513
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002514MARKED FILES: TARGET DIRECTORY USING HISTORY *netrw-Th* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002515
Bram Moolenaara6878372014-03-22 21:02:50 +01002516Sets the marked file copy/move-to target.
Bram Moolenaarff034192013-04-24 18:51:19 +02002517
2518The |netrw-qb| map will give you a list of history (and bookmarks).
2519One may choose one of the history entries to become your marked file
2520target by using [count]Th (default count: 0; ie. the current directory).
2521
2522Related topics:
Bram Moolenaara6878372014-03-22 21:02:50 +01002523 Copying files to target............................|netrw-mc|
Bram Moolenaarff034192013-04-24 18:51:19 +02002524 Listing Bookmarks and History......................|netrw-qb|
2525 Marked Files: Setting The Target Directory.........|netrw-mt|
2526 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2527 Marking Files......................................|netrw-mf|
2528 Marking Files by Regular Expression................|netrw-mr|
Bram Moolenaara6878372014-03-22 21:02:50 +01002529 Moving files to target.............................|netrw-mm|
Bram Moolenaarff034192013-04-24 18:51:19 +02002530
Bram Moolenaar446cb832008-06-24 21:56:24 +00002531
2532MARKED FILES: UNMARKING *netrw-mu* {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002533 (See |netrw-mf|, |netrw-mF|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002534
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002535The "mu" mapping will unmark all currently marked files. This command differs
2536from "mF" as the latter only unmarks files in the current directory whereas
2537"mu" will unmark global and all buffer-local marked files.
2538(see |netrw-mF|)
2539
Bram Moolenaar446cb832008-06-24 21:56:24 +00002540
Bram Moolenaar15146672011-10-20 22:22:38 +02002541 *netrw-browser-settings*
Bram Moolenaar446cb832008-06-24 21:56:24 +00002542NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
2543
Bram Moolenaar15146672011-10-20 22:22:38 +02002544(if you're interested in the netrw file transfer settings, see |netrw-options|
2545 and |netrw-protocol|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002546
2547The <netrw.vim> browser provides settings in the form of variables which
2548you may modify; by placing these settings in your <.vimrc>, you may customize
2549your browsing preferences. (see also: |netrw-settings|)
2550>
2551 --- -----------
2552 Var Explanation
2553 --- -----------
Bram Moolenaar8d043172014-01-23 14:24:41 +01002554< *g:netrw_altfile* some like |CTRL-^| to return to the last
2555 edited file. Choose that by setting this
2556 parameter to 1.
2557 Others like |CTRL-^| to return to the
2558 netrw browsing buffer. Choose that by setting
2559 this parameter to 0.
2560 default: =0
2561
2562 *g:netrw_alto* change from above splitting to below splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002563 by setting this variable (see |netrw-o|)
2564 default: =&sb (see |'sb'|)
2565
Bram Moolenaarff034192013-04-24 18:51:19 +02002566 *g:netrw_altv* change from left splitting to right splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002567 by setting this variable (see |netrw-v|)
2568 default: =&spr (see |'spr'|)
2569
Bram Moolenaarff034192013-04-24 18:51:19 +02002570 *g:netrw_banner* enable/suppress the banner
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002571 =0: suppress the banner
2572 =1: banner is enabled (default)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002573
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002574 *g:netrw_bannerbackslash* if this variable exists and is not zero, the
2575 banner will be displayed with backslashes
2576 rather than forward slashes.
2577
Bram Moolenaarff034192013-04-24 18:51:19 +02002578 *g:netrw_browse_split* when browsing, <cr> will open the file by:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002579 =0: re-using the same window (default)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002580 =1: horizontally splitting the window first
2581 =2: vertically splitting the window first
Bram Moolenaar446cb832008-06-24 21:56:24 +00002582 =3: open file in new tab
2583 =4: act like "P" (ie. open previous window)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002584 Note that |g:netrw_preview| may be used
2585 to get vertical splitting instead of
2586 horizontal splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002587 =[servername,tab-number,window-number]
2588 Given a |List| such as this, a remote server
2589 named by the "servername" will be used for
2590 editing. It will also use the specified tab
2591 and window numbers to perform editing
2592 (see |clientserver|, |netrw-ctrl-r|)
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002593 This option does not affect the production of
2594 |:Lexplore| windows.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002595
Bram Moolenaar8d043172014-01-23 14:24:41 +01002596 Related topics:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002597 |g:netrw_alto| |g:netrw_altv|
2598 |netrw-C| |netrw-cr|
2599 |netrw-ctrl-r|
Bram Moolenaar8d043172014-01-23 14:24:41 +01002600
Bram Moolenaarff034192013-04-24 18:51:19 +02002601 *g:netrw_browsex_viewer* specify user's preference for a viewer: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002602 "kfmclient exec"
2603 "gnome-open"
2604< If >
2605 "-"
2606< is used, then netrwFileHandler() will look for
2607 a script/function to handle the given
2608 extension. (see |netrw_filehandler|).
2609
Bram Moolenaarff034192013-04-24 18:51:19 +02002610 *g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002611 Windows: "cacls FILENAME /e /p PERM"
2612 Used to change access permission for a file.
2613
Bram Moolenaarff034192013-04-24 18:51:19 +02002614 *g:netrw_compress* ="gzip"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002615 Will compress marked files with this
2616 command
2617
Bram Moolenaarff034192013-04-24 18:51:19 +02002618 *g:Netrw_corehandler* Allows one to specify something additional
Bram Moolenaar15146672011-10-20 22:22:38 +02002619 to do when handling <core> files via netrw's
2620 browser's "x" command (see |netrw-x|). If
2621 present, g:Netrw_corehandler specifies
2622 either one or more function references
2623 (see |Funcref|). (the capital g:Netrw...
2624 is required its holding a function reference)
2625
2626
Bram Moolenaarff034192013-04-24 18:51:19 +02002627 *g:netrw_ctags* ="ctags"
2628 The default external program used to create
2629 tags
Bram Moolenaarc236c162008-07-13 17:41:49 +00002630
Bram Moolenaarff034192013-04-24 18:51:19 +02002631 *g:netrw_cursor* = 2 (default)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002632 This option controls the use of the
Bram Moolenaaradc21822011-04-01 18:03:16 +02002633 |'cursorline'| (cul) and |'cursorcolumn'|
2634 (cuc) settings by netrw:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002635
Bram Moolenaaradc21822011-04-01 18:03:16 +02002636 Value Thin-Long-Tree Wide
2637 =0 u-cul u-cuc u-cul u-cuc
2638 =1 u-cul u-cuc cul u-cuc
2639 =2 cul u-cuc cul u-cuc
2640 =3 cul u-cuc cul cuc
2641 =4 cul cuc cul cuc
2642
2643 Where
2644 u-cul : user's |'cursorline'| setting used
2645 u-cuc : user's |'cursorcolumn'| setting used
2646 cul : |'cursorline'| locally set
2647 cuc : |'cursorcolumn'| locally set
2648
Bram Moolenaarff034192013-04-24 18:51:19 +02002649 *g:netrw_decompress* = { ".gz" : "gunzip" ,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002650 ".bz2" : "bunzip2" ,
2651 ".zip" : "unzip" ,
2652 ".tar" : "tar -xf"}
2653 A dictionary mapping suffices to
2654 decompression programs.
2655
Bram Moolenaaradc21822011-04-01 18:03:16 +02002656 *g:netrw_dirhistmax* =10: controls maximum quantity of past
2657 history. May be zero to supppress
2658 history.
2659 (related: |netrw-qb| |netrw-u| |netrw-U|)
2660
Bram Moolenaar97d62492012-11-15 21:28:22 +01002661 *g:netrw_dynamic_maxfilenamelen* =32: enables dynamic determination of
2662 |g:netrw_maxfilenamelen|, which affects
2663 local file long listing.
Bram Moolenaara6878372014-03-22 21:02:50 +01002664
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002665 *g:netrw_errorlvl* =0: error levels greater than or equal to
2666 this are permitted to be displayed
2667 0: notes
2668 1: warnings
2669 2: errors
2670
Bram Moolenaarff034192013-04-24 18:51:19 +02002671 *g:netrw_fastbrowse* =0: slow speed directory browsing;
Bram Moolenaar13600302014-05-22 18:26:40 +02002672 never re-uses directory listings;
Bram Moolenaar446cb832008-06-24 21:56:24 +00002673 always obtains directory listings.
2674 =1: medium speed directory browsing;
2675 re-use directory listings only
2676 when remote directory browsing.
2677 (default value)
2678 =2: fast directory browsing;
2679 only obtains directory listings when the
2680 directory hasn't been seen before
2681 (or |netrw-ctrl-l| is used).
2682
2683 Fast browsing retains old directory listing
2684 buffers so that they don't need to be
2685 re-acquired. This feature is especially
2686 important for remote browsing. However, if
2687 a file is introduced or deleted into or from
2688 such directories, the old directory buffer
2689 becomes out-of-date. One may always refresh
2690 such a directory listing with |netrw-ctrl-l|.
2691 This option gives the user the choice of
2692 trading off accuracy (ie. up-to-date listing)
2693 versus speed.
2694
Bram Moolenaar13600302014-05-22 18:26:40 +02002695 *g:netrw_ffkeep* (default: doesn't exist)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002696 If this variable exists and is zero, then
Bram Moolenaar13600302014-05-22 18:26:40 +02002697 netrw will not do a save and restore for
2698 |'fileformat'|.
2699
Bram Moolenaarff034192013-04-24 18:51:19 +02002700 *g:netrw_fname_escape* =' ?&;%'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002701 Used on filenames before remote reading/writing
Bram Moolenaar446cb832008-06-24 21:56:24 +00002702
Bram Moolenaarff034192013-04-24 18:51:19 +02002703 *g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
Bram Moolenaar446cb832008-06-24 21:56:24 +00002704 that can show up as "directories" and "files"
2705 in the listing. This pattern is used to
2706 remove such embedded messages. By default its
2707 value is:
2708 '^total\s\+\d\+$\|
2709 ^Trying\s\+\d\+.*$\|
2710 ^KERBEROS_V\d rejected\|
2711 ^Security extensions not\|
2712 No such file\|
2713 : connect to address [0-9a-fA-F:]*
2714 : No route to host$'
2715
Bram Moolenaarff034192013-04-24 18:51:19 +02002716 *g:netrw_ftp_list_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002717 listing. Defaults:
2718 unix or g:netrw_cygwin set: : "ls -lF"
2719 otherwise "dir"
2720
2721
Bram Moolenaarff034192013-04-24 18:51:19 +02002722 *g:netrw_ftp_sizelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002723 listing, sorted by size of file.
2724 Defaults:
2725 unix or g:netrw_cygwin set: : "ls -slF"
2726 otherwise "dir"
2727
Bram Moolenaarff034192013-04-24 18:51:19 +02002728 *g:netrw_ftp_timelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002729 listing, sorted by time of last modification.
2730 Defaults:
2731 unix or g:netrw_cygwin set: : "ls -tlF"
2732 otherwise "dir"
2733
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002734 *g:netrw_glob_escape* ='[]*?`{~$' (unix)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002735 ='[]*?`{$' (windows
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002736 These characters in directory names are
Bram Moolenaar446cb832008-06-24 21:56:24 +00002737 escaped before applying glob()
2738
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002739 *g:netrw_gx* ="<cfile>"
2740 This option controls how gx (|netrw-gx|) picks
2741 up the text under the cursor. See |expand()|
2742 for possibilities.
2743
Bram Moolenaarff034192013-04-24 18:51:19 +02002744 *g:netrw_hide* Controlled by the "a" map (see |netrw-a|)
2745 =0 : show all
2746 =1 : show not-hidden files
2747 =2 : show hidden files only
Bram Moolenaar85850f32019-07-19 22:05:51 +02002748 default: =1
Bram Moolenaar446cb832008-06-24 21:56:24 +00002749
Bram Moolenaarff034192013-04-24 18:51:19 +02002750 *g:netrw_home* The home directory for where bookmarks and
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002751 history are saved (as .netrwbook and
2752 .netrwhist).
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002753 Netrw uses |expand()|on the string.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002754 default: the first directory on the
2755 |'runtimepath'|
2756
Bram Moolenaarff034192013-04-24 18:51:19 +02002757 *g:netrw_keepdir* =1 (default) keep current directory immune from
Bram Moolenaar446cb832008-06-24 21:56:24 +00002758 the browsing directory.
2759 =0 keep the current directory the same as the
2760 browsing directory.
2761 The current browsing directory is contained in
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02002762 b:netrw_curdir (also see |netrw-cd|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002763
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002764 *g:netrw_keepj* ="keepj" (default) netrw attempts to keep the
2765 |:jumps| table unaffected.
2766 ="" netrw will not use |:keepjumps| with
2767 exceptions only for the
2768 saving/restoration of position.
2769
Bram Moolenaarff034192013-04-24 18:51:19 +02002770 *g:netrw_list_cmd* command for listing remote directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002771 default: (if ssh is executable)
2772 "ssh HOSTNAME ls -FLa"
2773
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002774 *g:netrw_list_cmd_options* If this variable exists, then its contents are
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002775 appended to the g:netrw_list_cmd. For
2776 example, use "2>/dev/null" to get rid of banner
2777 messages on unix systems.
2778
2779
Bram Moolenaarff034192013-04-24 18:51:19 +02002780 *g:netrw_liststyle* Set the default listing style:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002781 = 0: thin listing (one file per line)
2782 = 1: long listing (one file per line with time
2783 stamp information and file size)
2784 = 2: wide listing (multiple files in columns)
2785 = 3: tree style listing
Bram Moolenaar8d043172014-01-23 14:24:41 +01002786
Bram Moolenaarff034192013-04-24 18:51:19 +02002787 *g:netrw_list_hide* comma separated pattern list for hiding files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002788 Patterns are regular expressions (see |regexp|)
Bram Moolenaar8d043172014-01-23 14:24:41 +01002789 There's some special support for git-ignore
2790 files: you may add the output from the helper
2791 function 'netrw_gitignore#Hide() automatically
2792 hiding all gitignored files.
2793 For more details see |netrw-gitignore|.
2794
2795 Examples:
2796 let g:netrw_list_hide= '.*\.swp$'
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002797 let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
Bram Moolenaar8d043172014-01-23 14:24:41 +01002798 default: ""
Bram Moolenaar446cb832008-06-24 21:56:24 +00002799
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002800 *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
2801 =expand("$COMSPEC") Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002802 Copies marked files (|netrw-mf|) to target
2803 directory (|netrw-mt|, |netrw-mc|)
2804
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002805 *g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
2806 =' \c copy' Windows
2807 Options for the |g:netrw_localcopycmd|
2808
2809 *g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
2810 =expand("$COMSPEC") Windows
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002811 Copies directories to target directory.
2812 (|netrw-mc|, |netrw-mt|)
2813
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002814 *g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
2815 =" /c xcopy /e /c /h/ /i /k" Windows
2816 Options for |g:netrw_localcopydircmd|
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002817
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002818 *g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
2819 =expand("$COMSPEC") Windows
2820 command for making a local directory
2821
2822 *g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
2823 =" /c mkdir" Windows
2824 Options for |g:netrw_localmkdir|
2825
2826 *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
2827 =expand("$COMSPEC") Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002828 Moves marked files (|netrw-mf|) to target
2829 directory (|netrw-mt|, |netrw-mm|)
2830
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002831 *g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
2832 =" /c move" Windows
2833 Options for |g:netrw_localmovecmd|
2834
2835 *g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
2836 =expand("$COMSPEC") Windows
2837 Remove directory command (rmdir)
2838 This variable is only used if your vim is
2839 earlier than 7.4 or if your vim doesn't
2840 have patch#1107. Otherwise, |delete()|
2841 is used with the "d" option.
2842
2843 *g:netrw_localrmdiropt* ="" Linux/Unix/MacOS/Cygwin
2844 =" /c rmdir" Windows
2845 Options for |g:netrw_localrmdir|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002846
Bram Moolenaarff034192013-04-24 18:51:19 +02002847 *g:netrw_maxfilenamelen* =32 by default, selected so as to make long
Bram Moolenaar446cb832008-06-24 21:56:24 +00002848 listings fit on 80 column displays.
2849 If your screen is wider, and you have file
2850 or directory names longer than 32 bytes,
2851 you may set this option to keep listings
2852 columnar.
2853
Bram Moolenaarff034192013-04-24 18:51:19 +02002854 *g:netrw_mkdir_cmd* command for making a remote directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002855 via ssh (also see |g:netrw_remote_mkdir|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002856 default: "ssh USEPORT HOSTNAME mkdir"
2857
Bram Moolenaar251e1912011-06-19 05:09:16 +02002858 *g:netrw_mousemaps* =1 (default) enables mouse buttons while
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002859 browsing to:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002860 leftmouse : open file/directory
2861 shift-leftmouse : mark file
2862 middlemouse : same as P
2863 rightmouse : remove file/directory
2864 =0: disables mouse maps
2865
Bram Moolenaar15146672011-10-20 22:22:38 +02002866 *g:netrw_nobeval* doesn't exist (default)
2867 If this variable exists, then balloon
2868 evaluation will be suppressed
2869 (see |'ballooneval'|)
2870
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002871 *g:netrw_sizestyle* not defined: actual bytes (default)
2872 ="b" : actual bytes (default)
2873 ="h" : human-readable (ex. 5k, 4m, 3g)
2874 uses 1000 base
2875 ="H" : human-readable (ex. 5K, 4M, 3G)
2876 uses 1024 base
2877 The long listing (|netrw-i|) and query-file
2878 maps (|netrw-qf|) will display file size
2879 using the specified style.
2880
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002881 *g:netrw_usetab* if this variable exists and is non-zero, then
2882 the <tab> map supporting shrinking/expanding a
2883 Lexplore or netrw window will be enabled.
2884 (see |netrw-c-tab|)
2885
Bram Moolenaara6878372014-03-22 21:02:50 +01002886 *g:netrw_remote_mkdir* command for making a remote directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002887 via ftp (also see |g:netrw_mkdir_cmd|)
2888 default: "mkdir"
2889
Bram Moolenaarff034192013-04-24 18:51:19 +02002890 *g:netrw_retmap* if it exists and is set to one, then:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002891 * if in a netrw-selected file, AND
2892 * no normal-mode <2-leftmouse> mapping exists,
2893 then the <2-leftmouse> will be mapped for easy
Bram Moolenaar446cb832008-06-24 21:56:24 +00002894 return to the netrw browser window.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002895 example: click once to select and open a file,
2896 double-click to return.
2897
2898 Note that one may instead choose to:
2899 * let g:netrw_retmap= 1, AND
2900 * nmap <silent> YourChoice <Plug>NetrwReturn
2901 and have another mapping instead of
2902 <2-leftmouse> to invoke the return.
2903
2904 You may also use the |:Rexplore| command to do
2905 the same thing.
2906
Bram Moolenaar446cb832008-06-24 21:56:24 +00002907 default: =0
2908
Bram Moolenaar13600302014-05-22 18:26:40 +02002909 *g:netrw_rm_cmd* command for removing remote files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002910 default: "ssh USEPORT HOSTNAME rm"
2911
Bram Moolenaar13600302014-05-22 18:26:40 +02002912 *g:netrw_rmdir_cmd* command for removing remote directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002913 default: "ssh USEPORT HOSTNAME rmdir"
2914
Bram Moolenaar13600302014-05-22 18:26:40 +02002915 *g:netrw_rmf_cmd* command for removing remote softlinks
Bram Moolenaar446cb832008-06-24 21:56:24 +00002916 default: "ssh USEPORT HOSTNAME rm -f"
2917
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002918 *g:netrw_servername* use this variable to provide a name for
2919 |netrw-ctrl-r| to use for its server.
2920 default: "NETRWSERVER"
2921
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002922 *g:netrw_sort_by* sort by "name", "time", "size", or
2923 "exten".
Bram Moolenaar446cb832008-06-24 21:56:24 +00002924 default: "name"
2925
Bram Moolenaarff034192013-04-24 18:51:19 +02002926 *g:netrw_sort_direction* sorting direction: "normal" or "reverse"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002927 default: "normal"
2928
Bram Moolenaarff034192013-04-24 18:51:19 +02002929 *g:netrw_sort_options* sorting is done using |:sort|; this
Bram Moolenaarc236c162008-07-13 17:41:49 +00002930 variable's value is appended to the
2931 sort command. Thus one may ignore case,
2932 for example, with the following in your
2933 .vimrc: >
2934 let g:netrw_sort_options="i"
2935< default: ""
2936
Bram Moolenaarff034192013-04-24 18:51:19 +02002937 *g:netrw_sort_sequence* when sorting by name, first sort by the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002938 comma-separated pattern sequence. Note that
Bram Moolenaara6878372014-03-22 21:02:50 +01002939 any filigree added to indicate filetypes
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002940 should be accounted for in your pattern.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002941 default: '[\/]$,*,\.bak$,\.o$,\.h$,
2942 \.info$,\.swp$,\.obj$'
2943
Bram Moolenaarff034192013-04-24 18:51:19 +02002944 *g:netrw_special_syntax* If true, then certain files will be shown
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002945 using special syntax in the browser:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002946
2947 netrwBak : *.bak
2948 netrwCompress: *.gz *.bz2 *.Z *.zip
Bram Moolenaar85850f32019-07-19 22:05:51 +02002949 netrwCoreDump: core.\d\+
Bram Moolenaar446cb832008-06-24 21:56:24 +00002950 netrwData : *.dat
Bram Moolenaar85850f32019-07-19 22:05:51 +02002951 netrwDoc : *.doc,*.txt,*.pdf,
2952 *.pdf,*.docx
Bram Moolenaar446cb832008-06-24 21:56:24 +00002953 netrwHdr : *.h
Bram Moolenaar85850f32019-07-19 22:05:51 +02002954 netrwLex : *.l *.lex
Bram Moolenaar446cb832008-06-24 21:56:24 +00002955 netrwLib : *.a *.so *.lib *.dll
2956 netrwMakefile: [mM]akefile *.mak
2957 netrwObj : *.o *.obj
Bram Moolenaar85850f32019-07-19 22:05:51 +02002958 netrwPix : *.bmp,*.fit,*.fits,*.gif,
2959 *.jpg,*.jpeg,*.pcx,*.ppc
2960 *.pgm,*.png,*.psd,*.rgb
2961 *.tif,*.xbm,*.xcf
Bram Moolenaar446cb832008-06-24 21:56:24 +00002962 netrwTags : tags ANmenu ANtags
Bram Moolenaara6878372014-03-22 21:02:50 +01002963 netrwTilde : *
Bram Moolenaar446cb832008-06-24 21:56:24 +00002964 netrwTmp : tmp* *tmp
Bram Moolenaar85850f32019-07-19 22:05:51 +02002965 netrwYacc : *.y
Bram Moolenaar446cb832008-06-24 21:56:24 +00002966
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002967 In addition, those groups mentioned in
2968 |'suffixes'| are also added to the special
2969 file highlighting group.
2970 These syntax highlighting groups are linked
2971 to netrwGray or Folded by default
2972 (see |hl-Folded|), but one may put lines like >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002973 hi link netrwCompress Visual
2974< into one's <.vimrc> to use one's own
Bram Moolenaara6878372014-03-22 21:02:50 +01002975 preferences. Alternatively, one may
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002976 put such specifications into >
2977 .vim/after/syntax/netrw.vim.
2978< The netrwGray highlighting is set up by
2979 netrw when >
2980 * netrwGray has not been previously
2981 defined
2982 * the gui is running
2983< As an example, I myself use a dark-background
Bram Moolenaara6878372014-03-22 21:02:50 +01002984 colorscheme with the following in
2985 .vim/after/syntax/netrw.vim: >
2986
2987 hi netrwCompress term=NONE cterm=NONE gui=NONE ctermfg=10 guifg=green ctermbg=0 guibg=black
2988 hi netrwData term=NONE cterm=NONE gui=NONE ctermfg=9 guifg=blue ctermbg=0 guibg=black
2989 hi netrwHdr term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2990 hi netrwLex term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2991 hi netrwYacc term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2992 hi netrwLib term=NONE cterm=NONE gui=NONE ctermfg=14 guifg=yellow
2993 hi netrwObj term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2994 hi netrwTilde term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2995 hi netrwTmp term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2996 hi netrwTags term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2997 hi netrwDoc term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=yellow2 guibg=Blue3
2998 hi netrwSymLink term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=grey60
2999<
Bram Moolenaarff034192013-04-24 18:51:19 +02003000 *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
Bram Moolenaar446cb832008-06-24 21:56:24 +00003001 messages, banners, and whatnot that one doesn't
3002 want masquerading as "directories" and "files".
3003 Use this pattern to remove such embedded
3004 messages. By default its value is:
3005 '^total\s\+\d\+$'
3006
Bram Moolenaare6ae6222013-05-21 21:01:10 +02003007 *g:netrw_ssh_cmd* One may specify an executable command
3008 to use instead of ssh for remote actions
3009 such as listing, file removal, etc.
3010 default: ssh
3011
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02003012 *g:netrw_suppress_gx_mesg* =1 : browsers sometimes produce messages
3013 which are normally unwanted intermixed
3014 with the page.
3015 However, when using links, for example,
3016 those messages are what the browser produces.
3017 By setting this option to 0, netrw will not
3018 suppress browser messages.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003019
Bram Moolenaarff034192013-04-24 18:51:19 +02003020 *g:netrw_tmpfile_escape* =' &;'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003021 escape() is applied to all temporary files
Bram Moolenaar446cb832008-06-24 21:56:24 +00003022 to escape these characters.
3023
Bram Moolenaarff034192013-04-24 18:51:19 +02003024 *g:netrw_timefmt* specify format string to vim's strftime().
Bram Moolenaar446cb832008-06-24 21:56:24 +00003025 The default, "%c", is "the preferred date
3026 and time representation for the current
3027 locale" according to my manpage entry for
3028 strftime(); however, not all are satisfied
3029 with it. Some alternatives:
3030 "%a %d %b %Y %T",
3031 " %a %Y-%m-%d %I-%M-%S %p"
3032 default: "%c"
3033
Bram Moolenaarff034192013-04-24 18:51:19 +02003034 *g:netrw_use_noswf* netrw normally avoids writing swapfiles
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003035 for browser buffers. However, under some
Bram Moolenaar446cb832008-06-24 21:56:24 +00003036 systems this apparently is causing nasty
3037 ml_get errors to appear; if you're getting
3038 ml_get errors, try putting
3039 let g:netrw_use_noswf= 0
3040 in your .vimrc.
Bram Moolenaara6878372014-03-22 21:02:50 +01003041 default: 1
Bram Moolenaar446cb832008-06-24 21:56:24 +00003042
Bram Moolenaarff034192013-04-24 18:51:19 +02003043 *g:netrw_winsize* specify initial size of new windows made with
Bram Moolenaar446cb832008-06-24 21:56:24 +00003044 "o" (see |netrw-o|), "v" (see |netrw-v|),
Bram Moolenaar251e1912011-06-19 05:09:16 +02003045 |:Hexplore| or |:Vexplore|. The g:netrw_winsize
3046 is an integer describing the percentage of the
3047 current netrw buffer's window to be used for
3048 the new window.
Bram Moolenaar15146672011-10-20 22:22:38 +02003049 If g:netrw_winsize is less than zero, then
Bram Moolenaar85850f32019-07-19 22:05:51 +02003050 the absolute value of g:netrw_winsize will be
3051 used to specify the quantity of lines or
3052 columns for the new window.
Bram Moolenaar13600302014-05-22 18:26:40 +02003053 If g:netrw_winsize is zero, then a normal
3054 split will be made (ie. |'equalalways'| will
3055 take effect, for example).
Bram Moolenaar251e1912011-06-19 05:09:16 +02003056 default: 50 (for 50%)
Bram Moolenaar446cb832008-06-24 21:56:24 +00003057
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003058 *g:netrw_wiw* =1 specifies the minimum window width to use
3059 when shrinking a netrw/Lexplore window
3060 (see |netrw-c-tab|).
3061
Bram Moolenaarff034192013-04-24 18:51:19 +02003062 *g:netrw_xstrlen* Controls how netrw computes string lengths,
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003063 including multi-byte characters' string
Bram Moolenaar446cb832008-06-24 21:56:24 +00003064 length. (thanks to N Weibull, T Mechelynck)
3065 =0: uses Vim's built-in strlen()
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003066 =1: number of codepoints (Latin a + combining
Bram Moolenaar446cb832008-06-24 21:56:24 +00003067 circumflex is two codepoints) (DEFAULT)
3068 =2: number of spacing codepoints (Latin a +
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003069 combining circumflex is one spacing
Bram Moolenaar446cb832008-06-24 21:56:24 +00003070 codepoint; a hard tab is one; wide and
3071 narrow CJK are one each; etc.)
3072 =3: virtual length (counting tabs as anything
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003073 between 1 and |'tabstop'|, wide CJK as 2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003074 rather than 1, Arabic alif as zero when
3075 immediately preceded by lam, one
3076 otherwise, etc)
3077
Bram Moolenaarff034192013-04-24 18:51:19 +02003078 *g:NetrwTopLvlMenu* This variable specifies the top level
Bram Moolenaar446cb832008-06-24 21:56:24 +00003079 menu name; by default, it's "Netrw.". If
3080 you wish to change this, do so in your
3081 .vimrc.
3082
3083NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible* {{{2
3084
3085Netrw has been designed to handle user options by saving them, setting the
3086options to something that's compatible with netrw's needs, and then restoring
3087them. However, the autochdir option: >
3088 :set acd
Bram Moolenaara6878372014-03-22 21:02:50 +01003089is problematic. Autochdir sets the current directory to that containing the
Bram Moolenaar446cb832008-06-24 21:56:24 +00003090file you edit; this apparently also applies to directories. In other words,
3091autochdir sets the current directory to that containing the "file" (even if
3092that "file" is itself a directory).
3093
Bram Moolenaar15146672011-10-20 22:22:38 +02003094NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003095
3096With the NetrwSettings.vim plugin, >
3097 :NetrwSettings
3098will bring up a window with the many variables that netrw uses for its
Bram Moolenaar1afcace2005-11-25 19:54:28 +00003099settings. You may change any of their values; when you save the file, the
3100settings therein will be used. One may also press "?" on any of the lines for
3101help on what each of the variables do.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003102
Bram Moolenaar5b435d62012-04-05 17:33:26 +02003103(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003104
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003105
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00003106==============================================================================
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003107OBTAINING A FILE *netrw-obtain* *netrw-O* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003108
3109If there are no marked files:
3110
3111 When browsing a remote directory, one may obtain a file under the cursor
3112 (ie. get a copy on your local machine, but not edit it) by pressing the O
3113 key.
3114
3115If there are marked files:
3116
3117 The marked files will be obtained (ie. a copy will be transferred to your
3118 local machine, but not set up for editing).
3119
3120Only ftp and scp are supported for this operation (but since these two are
3121available for browsing, that shouldn't be a problem). The status bar will
3122then show, on its right hand side, a message like "Obtaining filename". The
3123statusline will be restored after the transfer is complete.
3124
3125Netrw can also "obtain" a file using the local browser. Netrw's display
3126of a directory is not necessarily the same as Vim's "current directory",
3127unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select
3128a file using the local browser (by putting the cursor on it) and pressing
3129"O" will then "obtain" the file; ie. copy it to Vim's current directory.
3130
3131Related topics:
3132 * To see what the current directory is, use |:pwd|
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003133 * To make the currently browsed directory the current directory, see
3134 |netrw-cd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00003135 * To automatically make the currently browsed directory the current
3136 directory, see |g:netrw_keepdir|.
3137
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003138 *netrw-newfile* *netrw-createfile*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003139OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%* {{{2
Bram Moolenaarc236c162008-07-13 17:41:49 +00003140
Bram Moolenaara6878372014-03-22 21:02:50 +01003141To open a new file in netrw's current directory, press "%". This map
3142will query the user for a new filename; an empty file by that name will
3143be placed in the netrw's current directory (ie. b:netrw_curdir).
Bram Moolenaarc236c162008-07-13 17:41:49 +00003144
Bram Moolenaar8d043172014-01-23 14:24:41 +01003145Related topics: |netrw-d|
3146
Bram Moolenaarc236c162008-07-13 17:41:49 +00003147
Bram Moolenaar446cb832008-06-24 21:56:24 +00003148PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
3149
3150One may use a preview window by using the "p" key when the cursor is atop the
3151desired filename to be previewed. The display will then split to show both
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003152the browser (where the cursor will remain) and the file (see |:pedit|). By
3153default, the split will be taken horizontally; one may use vertical splitting
3154if one has set |g:netrw_preview| first.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003155
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003156An interesting set of netrw settings is: >
3157
3158 let g:netrw_preview = 1
3159 let g:netrw_liststyle = 3
3160 let g:netrw_winsize = 30
3161
3162These will:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003163
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003164 1. Make vertical splitting the default for previewing files
3165 2. Make the default listing style "tree"
3166 3. When a vertical preview window is opened, the directory listing
Bram Moolenaar5b435d62012-04-05 17:33:26 +02003167 will use only 30% of the columns available; the rest of the window
3168 is used for the preview window.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003169
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003170 Related: if you like this idea, you may also find :Lexplore
3171 (|netrw-:Lexplore|) or |g:netrw_chgwin| of interest
3172
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003173Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|
Bram Moolenaara6878372014-03-22 21:02:50 +01003174
3175
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003176PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003177
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003178To edit a file or directory under the cursor in the previously used (last
3179accessed) window (see :he |CTRL-W_p|), press a "P". If there's only one
3180window, then the one window will be horizontally split (by default).
Bram Moolenaar446cb832008-06-24 21:56:24 +00003181
3182If there's more than one window, the previous window will be re-used on
3183the selected file/directory. If the previous window's associated buffer
3184has been modified, and there's only one window with that buffer, then
3185the user will be asked if s/he wishes to save the buffer first (yes,
3186no, or cancel).
3187
Bram Moolenaarff034192013-04-24 18:51:19 +02003188Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02003189Associated setting variables:
3190 |g:netrw_alto| control above/below splitting
3191 |g:netrw_altv| control right/left splitting
3192 |g:netrw_preview| control horizontal vs vertical splitting
3193 |g:netrw_winsize| control initial sizing
3194
Bram Moolenaara6878372014-03-22 21:02:50 +01003195Also see: |g:netrw_chgwin| |netrw-p|
3196
Bram Moolenaar446cb832008-06-24 21:56:24 +00003197
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003198REFRESHING THE LISTING *netrw-refresh* *netrw-ctrl-l* *netrw-ctrl_l* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003199
3200To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
3201hit the <cr> when atop the ./ directory entry in the listing. One may also
3202refresh a local directory by using ":e .".
3203
3204
Bram Moolenaarff034192013-04-24 18:51:19 +02003205REVERSING SORTING ORDER *netrw-r* *netrw-reverse* {{{2
3206
3207One may toggle between normal and reverse sorting order by pressing the
3208"r" key.
3209
3210Related topics: |netrw-s|
3211Associated setting variable: |g:netrw_sort_direction|
3212
3213
Bram Moolenaar446cb832008-06-24 21:56:24 +00003214RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R* {{{2
3215
3216If there are no marked files: (see |netrw-mf|)
3217
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003218 Renaming files and directories involves moving the cursor to the
Bram Moolenaar446cb832008-06-24 21:56:24 +00003219 file/directory to be moved (renamed) and pressing "R". You will then be
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003220 queried for what you want the file/directory to be renamed to. You may
3221 select a range of lines with the "V" command (visual selection), and then
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003222 press "R"; you will be queried for each file as to what you want it
3223 renamed to.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003224
3225If there are marked files: (see |netrw-mf|)
3226
3227 Marked files will be renamed (moved). You will be queried as above in
3228 order to specify where you want the file/directory to be moved.
3229
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003230 If you answer a renaming query with a "s/frompattern/topattern/", then
3231 subsequent files on the marked file list will be renamed by taking each
3232 name, applying that substitute, and renaming each file to the result.
3233 As an example : >
3234
3235 mr [query: reply with *.c]
3236 R [query: reply with s/^\(.*\)\.c$/\1.cpp/]
3237<
3238 This example will mark all *.c files and then rename them to *.cpp
Bram Moolenaar29634562020-01-09 21:46:04 +01003239 files. Netrw will protect you from overwriting local files without
3240 confirmation, but not remote ones.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003241
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003242 The ctrl-X character has special meaning for renaming files: >
3243
3244 <c-x> : a single ctrl-x tells netrw to ignore the portion of the response
3245 lying between the last '/' and the ctrl-x.
3246
3247 <c-x><c-x> : a pair of contiguous ctrl-x's tells netrw to ignore any
3248 portion of the string preceding the double ctrl-x's.
3249<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003250 WARNING:~
3251
3252 Note that moving files is a dangerous operation; copies are safer. That's
3253 because a "move" for remote files is actually a copy + delete -- and if
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003254 the copy fails and the delete succeeds you may lose the file.
Bram Moolenaara6878372014-03-22 21:02:50 +01003255 Use at your own risk.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003256
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003257The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
3258default its value is: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00003259
3260 ssh HOSTNAME mv
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003261<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003262One may rename a block of files and directories by selecting them with
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003263V (|linewise-visual|) when using thin style.
3264
3265See |cmdline-editing| for more on how to edit the command line; in particular,
3266you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
3267command line under the cursor) useful in conjunction with the R command.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003268
3269
Bram Moolenaar446cb832008-06-24 21:56:24 +00003270SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
3271
3272One may select the sorting style by name, time, or (file) size. The "s" map
3273allows one to circulate amongst the three choices; the directory listing will
3274automatically be refreshed to reflect the selected style.
3275
3276Related topics: |netrw-r| |netrw-S|
3277Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
3278
3279
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003280SETTING EDITING WINDOW *netrw-editwindow* *netrw-C* *netrw-:NetrwC* {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003281
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003282One may select a netrw window for editing with the "C" mapping, using the
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003283:NetrwC [win#] command, or by setting |g:netrw_chgwin| to the selected window
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003284number. Subsequent selection of a file to edit (|netrw-cr|) will use that
3285window.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003286
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003287 * C : by itself, will select the current window holding a netrw buffer
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003288 for subsequent editing via |netrw-cr|. The C mapping is only available
3289 while in netrw buffers.
Bram Moolenaar13600302014-05-22 18:26:40 +02003290
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003291 * [count]C : the count will be used as the window number to be used
3292 for subsequent editing via |netrw-cr|.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003293
3294 * :NetrwC will set |g:netrw_chgwin| to the current window
3295
3296 * :NetrwC win# will set |g:netrw_chgwin| to the specified window
3297 number
3298
Bram Moolenaar13600302014-05-22 18:26:40 +02003299Using >
3300 let g:netrw_chgwin= -1
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003301will restore the default editing behavior
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003302(ie. subsequent editing will use the current window).
Bram Moolenaar13600302014-05-22 18:26:40 +02003303
Bram Moolenaar8d043172014-01-23 14:24:41 +01003304Related topics: |netrw-cr| |g:netrw_browse_split|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003305Associated setting variables: |g:netrw_chgwin|
3306
3307
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003308SHRINKING OR EXPANDING A NETRW OR LEXPLORE WINDOW *netrw-c-tab* {{{2
3309
3310The <c-tab> key will toggle a netrw or |:Lexplore| window's width,
3311but only if |g:netrw_usetab| exists and is non-zero (and, of course,
3312only if your terminal supports differentiating <c-tab> from a plain
3313<tab>).
3314
3315 * If the current window is a netrw window, toggle its width
3316 (between |g:netrw_wiw| and its original width)
3317
3318 * Else if there is a |:Lexplore| window in the current tab, toggle
3319 its width
3320
3321 * Else bring up a |:Lexplore| window
3322
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003323If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003324for <c-tab>, then the <c-tab> will not be mapped. One may map something other
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003325than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003326
3327 nmap <unique> (whatever) <Plug>NetrwShrink
3328<
3329Related topics: |:Lexplore|
3330Associated setting variable: |g:netrw_usetab|
3331
3332
3333USER SPECIFIED MAPS *netrw-usermaps* {{{1
3334
3335One may make customized user maps. Specify a variable, |g:Netrw_UserMaps|,
3336to hold a |List| of lists of keymap strings and function names: >
3337
3338 [["keymap-sequence","ExampleUserMapFunc"],...]
3339<
3340When netrw is setting up maps for a netrw buffer, if |g:Netrw_UserMaps|
3341exists, then the internal function netrw#UserMaps(islocal) is called.
3342This function goes through all the entries in the |g:Netrw_UserMaps| list:
3343
3344 * sets up maps: >
3345 nno <buffer> <silent> KEYMAP-SEQUENCE
3346 :call s:UserMaps(islocal,"ExampleUserMapFunc")
3347< * refreshes if result from that function call is the string
3348 "refresh"
3349 * if the result string is not "", then that string will be
3350 executed (:exe result)
3351 * if the result is a List, then the above two actions on results
3352 will be taken for every string in the result List
3353
3354The user function is passed one argument; it resembles >
3355
3356 fun! ExampleUserMapFunc(islocal)
3357<
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003358where a:islocal is 1 if its a local-directory system call or 0 when
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003359remote-directory system call.
3360
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003361 *netrw-call* *netrw-expose* *netrw-modify*
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003362Use netrw#Expose("varname") to access netrw-internal (script-local)
3363 variables.
3364Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
3365Use netrw#Call("funcname"[,args]) to call a netrw-internal function with
3366 specified arguments.
3367
3368Example: Get a copy of netrw's marked file list: >
3369
3370 let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")
3371<
3372Example: Modify the value of netrw's marked file list: >
3373
3374 call netrw#Modify("netrwmarkfilelist",[])
3375<
3376Example: Clear netrw's marked file list via a mapping on gu >
3377 " ExampleUserMap: {{{2
3378 fun! ExampleUserMap(islocal)
3379 call netrw#Modify("netrwmarkfilelist",[])
3380 call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
3381 let retval= ["refresh"]
3382 return retval
3383 endfun
3384 let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]
3385<
3386
Bram Moolenaar446cb832008-06-24 21:56:24 +0000338710. Problems and Fixes *netrw-problems* {{{1
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003388
3389 (This section is likely to grow as I get feedback)
3390 (also see |netrw-debug|)
Bram Moolenaar488c6512005-08-11 20:09:58 +00003391 *netrw-p1*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003392 P1. I use windows 95, and my ftp dumps four blank lines at the {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003393 end of every read.
3394
3395 See |netrw-fixup|, and put the following into your
3396 <.vimrc> file:
3397
3398 let g:netrw_win95ftp= 1
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003399
Bram Moolenaar488c6512005-08-11 20:09:58 +00003400 *netrw-p2*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003401 P2. I use Windows, and my network browsing with ftp doesn't sort by {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00003402 time or size! -or- The remote system is a Windows server; why
3403 don't I get sorts by time or size?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003404
3405 Windows' ftp has a minimal support for ls (ie. it doesn't
3406 accept sorting options). It doesn't support the -F which
3407 gives an explanatory character (ABC/ for "ABC is a directory").
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003408 Netrw then uses "dir" to get both its thin and long listings.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003409 If you think your ftp does support a full-up ls, put the
3410 following into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003411
Bram Moolenaar9964e462007-05-05 17:54:07 +00003412 let g:netrw_ftp_list_cmd = "ls -lF"
3413 let g:netrw_ftp_timelist_cmd= "ls -tlF"
3414 let g:netrw_ftp_sizelist_cmd= "ls -slF"
3415<
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003416 Alternatively, if you have cygwin on your Windows box, put
Bram Moolenaar9964e462007-05-05 17:54:07 +00003417 into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003418
3419 let g:netrw_cygwin= 1
Bram Moolenaar9964e462007-05-05 17:54:07 +00003420<
3421 This problem also occurs when the remote system is Windows.
3422 In this situation, the various g:netrw_ftp_[time|size]list_cmds
3423 are as shown above, but the remote system will not correctly
3424 modify its listing behavior.
3425
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003426
Bram Moolenaar488c6512005-08-11 20:09:58 +00003427 *netrw-p3*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003428 P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003429 used ssh! That wasn't what I asked for...
3430
3431 Netrw has two methods for browsing remote directories: ssh
3432 and ftp. Unless you specify ftp specifically, ssh is used.
3433 When it comes time to do download a file (not just a directory
3434 listing), netrw will use the given protocol to do so.
3435
Bram Moolenaar488c6512005-08-11 20:09:58 +00003436 *netrw-p4*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003437 P4. I would like long listings to be the default. {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003438
Bram Moolenaar446cb832008-06-24 21:56:24 +00003439 Put the following statement into your |.vimrc|: >
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003440
Bram Moolenaar446cb832008-06-24 21:56:24 +00003441 let g:netrw_liststyle= 1
3442<
3443 Check out |netrw-browser-var| for more customizations that
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003444 you can set.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003445
Bram Moolenaar488c6512005-08-11 20:09:58 +00003446 *netrw-p5*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003447 P5. My times come up oddly in local browsing {{{2
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003448
3449 Does your system's strftime() accept the "%c" to yield dates
Bram Moolenaarff034192013-04-24 18:51:19 +02003450 such as "Sun Apr 27 11:49:23 1997"? If not, do a
3451 "man strftime" and find out what option should be used. Then
3452 put it into your |.vimrc|: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003453
Bram Moolenaar446cb832008-06-24 21:56:24 +00003454 let g:netrw_timefmt= "%X" (where X is the option)
3455<
Bram Moolenaar488c6512005-08-11 20:09:58 +00003456 *netrw-p6*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003457 P6. I want my current directory to track my browsing. {{{2
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003458 How do I do that?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003459
Bram Moolenaar446cb832008-06-24 21:56:24 +00003460 Put the following line in your |.vimrc|:
3461>
Bram Moolenaar433f7c82006-03-21 21:29:36 +00003462 let g:netrw_keepdir= 0
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003463<
Bram Moolenaar9964e462007-05-05 17:54:07 +00003464 *netrw-p7*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003465 P7. I use Chinese (or other non-ascii) characters in my filenames, {{{2
3466 and netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003467
Bram Moolenaar9964e462007-05-05 17:54:07 +00003468 (taken from an answer provided by Wu Yongwei on the vim
3469 mailing list)
Bram Moolenaara6878372014-03-22 21:02:50 +01003470 I now see the problem. Your code page is not 936, right? Vim
Bram Moolenaar9964e462007-05-05 17:54:07 +00003471 seems only able to open files with names that are valid in the
3472 current code page, as are many other applications that do not
3473 use the Unicode version of Windows APIs. This is an OS-related
3474 issue. You should not have such problems when the system
3475 locale uses UTF-8, such as modern Linux distros.
3476
3477 (...it is one more reason to recommend that people use utf-8!)
3478
3479 *netrw-p8*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003480 P8. I'm getting "ssh is not executable on your system" -- what do I {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00003481 do?
3482
3483 (Dudley Fox) Most people I know use putty for windows ssh. It
3484 is a free ssh/telnet application. You can read more about it
3485 here:
3486
3487 http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also:
3488
3489 (Marlin Unruh) This program also works for me. It's a single
3490 executable, so he/she can copy it into the Windows\System32
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003491 folder and create a shortcut to it.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003492
3493 (Dudley Fox) You might also wish to consider plink, as it
3494 sounds most similar to what you are looking for. plink is an
3495 application in the putty suite.
3496
3497 http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink
3498
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003499 (Vissale Neang) Maybe you can try OpenSSH for windows, which
Bram Moolenaar9964e462007-05-05 17:54:07 +00003500 can be obtained from:
3501
3502 http://sshwindows.sourceforge.net/
3503
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003504 It doesn't need the full Cygwin package.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003505
3506 (Antoine Mechelynck) For individual Unix-like programs needed
3507 for work in a native-Windows environment, I recommend getting
3508 them from the GnuWin32 project on sourceforge if it has them:
3509
3510 http://gnuwin32.sourceforge.net/
3511
3512 Unlike Cygwin, which sets up a Unix-like virtual machine on
3513 top of Windows, GnuWin32 is a rewrite of Unix utilities with
3514 Windows system calls, and its programs works quite well in the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003515 cmd.exe "Dos box".
Bram Moolenaar9964e462007-05-05 17:54:07 +00003516
3517 (dave) Download WinSCP and use that to connect to the server.
3518 In Preferences > Editors, set gvim as your editor:
3519
3520 - Click "Add..."
3521 - Set External Editor (adjust path as needed, include
3522 the quotes and !.! at the end):
Bram Moolenaar8024f932020-01-14 19:29:13 +01003523 "c:\Program Files\Vim\vim82\gvim.exe" !.!
Bram Moolenaar9964e462007-05-05 17:54:07 +00003524 - Check that the filetype in the box below is
3525 {asterisk}.{asterisk} (all files), or whatever types
3526 you want (cec: change {asterisk} to * ; I had to
3527 write it that way because otherwise the helptags
Bram Moolenaar446cb832008-06-24 21:56:24 +00003528 system thinks it's a tag)
3529 - Make sure it's at the top of the listbox (click it,
3530 then click "Up" if it's not)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003531 If using the Norton Commander style, you just have to hit <F4>
3532 to edit a file in a local copy of gvim.
3533
3534 (Vit Gottwald) How to generate public/private key and save
3535 public key it on server: >
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02003536 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
3537 (8.3 Getting ready for public key authentication)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003538<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003539 How to use a private key with 'pscp': >
3540
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02003541 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
3542 (5.2.4 Using public key authentication with PSCP)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003543<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003544 (Ben Schmidt) I find the ssh included with cwRsync is
3545 brilliant, and install cwRsync or cwRsyncServer on most
3546 Windows systems I come across these days. I guess COPSSH,
3547 packed by the same person, is probably even better for use as
3548 just ssh on Windows, and probably includes sftp, etc. which I
3549 suspect the cwRsync doesn't, though it might
3550
Bram Moolenaar9964e462007-05-05 17:54:07 +00003551 (cec) To make proper use of these suggestions above, you will
3552 need to modify the following user-settable variables in your
3553 .vimrc:
3554
Bram Moolenaar446cb832008-06-24 21:56:24 +00003555 |g:netrw_ssh_cmd| |g:netrw_list_cmd| |g:netrw_mkdir_cmd|
3556 |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd|
Bram Moolenaar9964e462007-05-05 17:54:07 +00003557
3558 The first one (|g:netrw_ssh_cmd|) is the most important; most
3559 of the others will use the string in g:netrw_ssh_cmd by
3560 default.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003561
Bram Moolenaar9964e462007-05-05 17:54:07 +00003562 *netrw-p9* *netrw-ml_get*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003563 P9. I'm browsing, changing directory, and bang! ml_get errors {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00003564 appear and I have to kill vim. Any way around this?
3565
3566 Normally netrw attempts to avoid writing swapfiles for
3567 its temporary directory buffers. However, on some systems
3568 this attempt appears to be causing ml_get errors to
3569 appear. Please try setting |g:netrw_use_noswf| to 0
3570 in your <.vimrc>: >
3571 let g:netrw_use_noswf= 0
3572<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003573 *netrw-p10*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003574 P10. I'm being pestered with "[something] is a directory" and {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003575 "Press ENTER or type command to continue" prompts...
3576
3577 The "[something] is a directory" prompt is issued by Vim,
3578 not by netrw, and there appears to be no way to work around
3579 it. Coupled with the default cmdheight of 1, this message
3580 causes the "Press ENTER..." prompt. So: read |hit-enter|;
3581 I also suggest that you set your |'cmdheight'| to 2 (or more) in
3582 your <.vimrc> file.
3583
3584 *netrw-p11*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003585 P11. I want to have two windows; a thin one on the left and my {{{2
3586 editing window on the right. How may I accomplish this?
Bram Moolenaar446cb832008-06-24 21:56:24 +00003587
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003588 You probably want netrw running as in a side window. If so, you
3589 will likely find that ":[N]Lexplore" does what you want. The
3590 optional "[N]" allows you to select the quantity of columns you
Bram Moolenaard7464be2015-11-01 16:49:04 +01003591 wish the |:Lexplore|r window to start with (see |g:netrw_winsize|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003592 for how this parameter works).
3593
3594 Previous solution:
3595
Bram Moolenaar446cb832008-06-24 21:56:24 +00003596 * Put the following line in your <.vimrc>:
3597 let g:netrw_altv = 1
3598 * Edit the current directory: :e .
3599 * Select some file, press v
3600 * Resize the windows as you wish (see |CTRL-W_<| and
3601 |CTRL-W_>|). If you're using gvim, you can drag
3602 the separating bar with your mouse.
3603 * When you want a new file, use ctrl-w h to go back to the
3604 netrw browser, select a file, then press P (see |CTRL-W_h|
3605 and |netrw-P|). If you're using gvim, you can press
3606 <leftmouse> in the browser window and then press the
3607 <middlemouse> to select the file.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003608
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003609
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003610 *netrw-p12*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003611 P12. My directory isn't sorting correctly, or unwanted letters are {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003612 appearing in the listed filenames, or things aren't lining
3613 up properly in the wide listing, ...
3614
3615 This may be due to an encoding problem. I myself usually use
3616 utf-8, but really only use ascii (ie. bytes from 32-126).
3617 Multibyte encodings use two (or more) bytes per character.
3618 You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
3619
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003620 *netrw-p13*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003621 P13. I'm a Windows + putty + ssh user, and when I attempt to {{{2
3622 browse, the directories are missing trailing "/"s so netrw treats
3623 them as file transfers instead of as attempts to browse
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003624 subdirectories. How may I fix this?
3625
3626 (mikeyao) If you want to use vim via ssh and putty under Windows,
3627 try combining the use of pscp/psftp with plink. pscp/psftp will
3628 be used to connect and plink will be used to execute commands on
3629 the server, for example: list files and directory using 'ls'.
3630
3631 These are the settings I use to do this:
3632>
3633 " list files, it's the key setting, if you haven't set,
3634 " you will get a blank buffer
3635 let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
3636 " if you haven't add putty directory in system path, you should
3637 " specify scp/sftp command. For examples:
3638 "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
3639 "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
3640<
Bram Moolenaar251e1912011-06-19 05:09:16 +02003641 *netrw-p14*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003642 P14. I would like to speed up writes using Nwrite and scp/ssh {{{2
Bram Moolenaar251e1912011-06-19 05:09:16 +02003643 style connections. How? (Thomer M. Gil)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003644
Bram Moolenaar251e1912011-06-19 05:09:16 +02003645 Try using ssh's ControlMaster and ControlPath (see the ssh_config
3646 man page) to share multiple ssh connections over a single network
3647 connection. That cuts out the cryptographic handshake on each
3648 file write, sometimes speeding it up by an order of magnitude.
3649 (see http://thomer.com/howtos/netrw_ssh.html)
3650 (included by permission)
3651
3652 Add the following to your ~/.ssh/config: >
3653
3654 # you change "*" to the hostname you care about
3655 Host *
3656 ControlMaster auto
3657 ControlPath /tmp/%r@%h:%p
3658
3659< Then create an ssh connection to the host and leave it running: >
3660
3661 ssh -N host.domain.com
3662
3663< Now remotely open a file with Vim's Netrw and enjoy the
3664 zippiness: >
3665
3666 vim scp://host.domain.com//home/user/.bashrc
3667<
3668 *netrw-p15*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003669 P15. How may I use a double-click instead of netrw's usual single {{{2
3670 click to open a file or directory? (Ben Fritz)
Bram Moolenaar251e1912011-06-19 05:09:16 +02003671
3672 First, disable netrw's mapping with >
3673 let g:netrw_mousemaps= 0
3674< and then create a netrw buffer only mapping in
3675 $HOME/.vim/after/ftplugin/netrw.vim: >
3676 nmap <buffer> <2-leftmouse> <CR>
3677< Note that setting g:netrw_mousemaps to zero will turn off
3678 all netrw's mouse mappings, not just the <leftmouse> one.
3679 (see |g:netrw_mousemaps|)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003680
Bram Moolenaar13600302014-05-22 18:26:40 +02003681 *netrw-p16*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003682 P16. When editing remote files (ex. :e ftp://hostname/path/file), {{{2
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003683 under Windows I get an |E303| message complaining that its unable
Bram Moolenaar13600302014-05-22 18:26:40 +02003684 to open a swap file.
3685
3686 (romainl) It looks like you are starting Vim from a protected
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003687 directory. Start netrw from your $HOME or other writable
Bram Moolenaar13600302014-05-22 18:26:40 +02003688 directory.
3689
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003690 *netrw-p17*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003691 P17. Netrw is closing buffers on its own. {{{2
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003692 What steps will reproduce the problem?
3693 1. :Explore, navigate directories, open a file
3694 2. :Explore, open another file
3695 3. Buffer opened in step 1 will be closed. o
3696 What is the expected output? What do you see instead?
3697 I expect both buffers to exist, but only the last one does.
3698
3699 (Lance) Problem is caused by "set autochdir" in .vimrc.
3700 (drchip) I am able to duplicate this problem with |'acd'| set.
3701 It appears that the buffers are not exactly closed;
3702 a ":ls!" will show them (although ":ls" does not).
3703
3704 *netrw-P18*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003705 P18. How to locally edit a file that's only available via {{{2
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003706 another server accessible via ssh?
3707 See http://stackoverflow.com/questions/12469645/
3708 "Using Vim to Remotely Edit A File on ServerB Only
3709 Accessible From ServerA"
3710
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003711 *netrw-P19*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003712 P19. How do I get numbering on in directory listings? {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003713 With |g:netrw_bufsettings|, you can control netrw's buffer
3714 settings; try putting >
3715 let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
3716< in your .vimrc. If you'd like to have relative numbering
3717 instead, try >
3718 let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
3719<
3720 *netrw-P20*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003721 P20. How may I have gvim start up showing a directory listing? {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003722 Try putting the following code snippet into your .vimrc: >
3723 augroup VimStartup
3724 au!
3725 au VimEnter * if expand("%") == "" && argc() == 0 &&
3726 \ (v:servername =~ 'GVIM\d*' || v:servername == "")
3727 \ | e . | endif
3728 augroup END
3729< You may use Lexplore instead of "e" if you're so inclined.
3730 This snippet assumes that you have client-server enabled
3731 (ie. a "huge" vim version).
3732
3733 *netrw-P21*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003734 P21. I've made a directory (or file) with an accented character, {{{2
3735 but netrw isn't letting me enter that directory/read that file:
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003736
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003737 Its likely that the shell or o/s is using a different encoding
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003738 than you have vim (netrw) using. A patch to vim supporting
3739 "systemencoding" may address this issue in the future; for
3740 now, just have netrw use the proper encoding. For example: >
3741
3742 au FileType netrw set enc=latin1
3743<
3744 *netrw-P22*
Bram Moolenaar85850f32019-07-19 22:05:51 +02003745 P22. I get an error message when I try to copy or move a file: {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003746
3747 **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
3748
3749 What's wrong?
3750
3751 Netrw uses several system level commands to do things (see
3752
3753 |g:netrw_localcopycmd|, |g:netrw_localmovecmd|,
3754 |g:netrw_localrmdir|, |g:netrw_mkdir_cmd|).
3755
3756 You may need to adjust the default commands for one or more of
3757 these commands by setting them properly in your .vimrc. Another
3758 source of difficulty is that these commands use vim's local
3759 directory, which may not be the same as the browsing directory
3760 shown by netrw (see |g:netrw_keepdir|).
3761
3762
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003763==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +0000376411. Debugging Netrw Itself *netrw-debug* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003765
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003766Step 1: check that the problem you've encountered hasn't already been resolved
3767by obtaining a copy of the latest (often developmental) netrw at:
3768
3769 http://www.drchip.org/astronaut/vim/index.html#NETRW
3770
3771The <netrw.vim> script is typically installed on systems as something like:
Bram Moolenaar488c6512005-08-11 20:09:58 +00003772>
Bram Moolenaar8024f932020-01-14 19:29:13 +01003773 /usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
3774 /usr/local/share/vim/vim8x/autoload/netrw.vim
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003775 (see output of :echo &rtp)
Bram Moolenaar488c6512005-08-11 20:09:58 +00003776<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003777which is loaded automatically at startup (assuming :set nocp). If you
3778installed a new netrw, then it will be located at >
3779
3780 $HOME/.vim/plugin/netrwPlugin.vim
3781 $HOME/.vim/autoload/netrw.vim
3782<
3783Step 2: assuming that you've installed the latest version of netrw,
3784check that your problem is really due to netrw. Create a file
3785called netrw.vimrc with the following contents: >
3786
3787 set nocp
3788 so $HOME/.vim/plugin/netrwPlugin.vim
3789<
3790Then run netrw as follows: >
3791
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003792 vim -u netrw.vimrc --noplugins -i NONE [some path here]
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003793<
3794Perform whatever netrw commands you need to, and check that the problem is
3795still present. This procedure sidesteps any issues due to personal .vimrc
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003796settings, .viminfo file, and other plugins. If the problem does not appear,
3797then you need to determine which setting in your .vimrc is causing the
3798conflict with netrw or which plugin(s) is/are involved.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003799
3800Step 3: If the problem still is present, then get a debugging trace from
3801netrw:
Bram Moolenaar071d4272004-06-13 20:20:40 +00003802
3803 1. Get the <Decho.vim> script, available as:
3804
Bram Moolenaar97d62492012-11-15 21:28:22 +01003805 http://www.drchip.org/astronaut/vim/index.html#DECHO
Bram Moolenaar071d4272004-06-13 20:20:40 +00003806 or
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00003807 http://vim.sourceforge.net/scripts/script.php?script_id=120
Bram Moolenaar071d4272004-06-13 20:20:40 +00003808
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003809 Decho.vim is provided as a "vimball"; see |vimball-intro|. You
3810 should edit the Decho.vba.gz file and source it in: >
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003811
Bram Moolenaar2346a632021-06-13 19:02:49 +02003812 vim Decho.vba.gz
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003813 :so %
3814 :q
3815<
3816 2. To turn on debug tracing in netrw, then edit the <netrw.vim>
3817 file by typing: >
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003818
3819 vim netrw.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00003820 :DechoOn
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003821 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003822<
3823 To restore to normal non-debugging behavior, re-edit <netrw.vim>
3824 and type >
Bram Moolenaar071d4272004-06-13 20:20:40 +00003825
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003826 vim netrw.vim
3827 :DechoOff
3828 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003829<
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003830 This command, provided by <Decho.vim>, will comment out all
3831 Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).
3832
Bram Moolenaar446cb832008-06-24 21:56:24 +00003833 3. Then bring up vim and attempt to evoke the problem by doing a
3834 transfer or doing some browsing. A set of messages should appear
3835 concerning the steps that <netrw.vim> took in attempting to
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003836 read/write your file over the network in a separate tab or
3837 server vim window.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003838
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003839 Change the netrw.vimrc file to include the Decho plugin: >
3840
3841 set nocp
3842 so $HOME/.vim/plugin/Decho.vim
3843 so $HOME/.vim/plugin/netrwPlugin.vim
3844<
3845 You should continue to run vim with >
3846
3847 vim -u netrw.vimrc --noplugins -i NONE [some path here]
3848<
3849 to avoid entanglements with options and other plugins.
3850
3851 To save the file: under linux, the output will be in a separate
3852 remote server window; in it, just save the file with >
3853
3854 :w! DBG
3855
3856< Under a vim that doesn't support clientserver, your debugging
3857 output will appear in another tab: >
Bram Moolenaar8d043172014-01-23 14:24:41 +01003858
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003859 :tabnext
Bram Moolenaar9964e462007-05-05 17:54:07 +00003860 :set bt=
3861 :w! DBG
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003862<
3863 Furthermore, it'd be helpful if you would type >
Bram Moolenaar8d043172014-01-23 14:24:41 +01003864
Bram Moolenaara6878372014-03-22 21:02:50 +01003865 :Dsep <command>
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003866
Bram Moolenaara6878372014-03-22 21:02:50 +01003867< where <command> is the command you're about to type next,
3868 thereby making it easier to associate which part of the
3869 debugging trace is due to which command.
Bram Moolenaar8d043172014-01-23 14:24:41 +01003870
Bram Moolenaara6878372014-03-22 21:02:50 +01003871 Please send that information to <netrw.vim>'s maintainer along
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003872 with the o/s you're using and the vim version that you're using
Bram Moolenaar29634562020-01-09 21:46:04 +01003873 (see |:version|) (remove the embedded NOSPAM first) >
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003874
Bram Moolenaar29634562020-01-09 21:46:04 +01003875 NcampObell@SdrPchip.AorgM-NOSPAM
Bram Moolenaar9964e462007-05-05 17:54:07 +00003876<
Bram Moolenaar071d4272004-06-13 20:20:40 +00003877==============================================================================
Bram Moolenaar9964e462007-05-05 17:54:07 +0000387812. History *netrw-history* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003879
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02003880 v170: Mar 11, 2020 * (reported by Reiner Herrmann) netrw+tree
3881 would not hide with the ^\..* pattern
3882 correctly.
3883 * (Marcin Szamotulski) NetrwOptionRestore
3884 did not restore options correctly that
3885 had a single quote in the option string.
3886 Apr 13, 2020 * implemented error handling via popup
3887 windows (see |popup_beval()|)
3888 Apr 30, 2020 * (reported by Manatsu Takahashi) while
3889 using Lexplore, a modified file could
3890 be overwritten. Sol'n: will not overwrite,
3891 but will emit an |E37| (although one cannot
3892 add an ! to override)
3893 Jun 07, 2020 * (reported by Jo Totland) repeatedly invoking
3894 :Lexplore and quitting it left unused
3895 hidden buffers. Netrw will now set netrw
3896 buffers created by :Lexplore to |bh|=wipe.
Bram Moolenaar29634562020-01-09 21:46:04 +01003897 v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x
3898 (|netrw-x|) would throw an error when
3899 attempting to open a local directory.
3900 v168: Dec 12, 2019 * scp timeout error message not reported,
3901 hopefully now fixed (Shane Xb Qian)
Bram Moolenaar91359012019-11-30 17:57:03 +01003902 v167: Nov 29, 2019 * netrw does a save&restore on @* and @+.
3903 That causes problems with the clipboard.
3904 Now restores occurs only if @* or @+ have
3905 been changed.
3906 * netrw will change @* or @+ less often.
3907 Never if I happen to have caught all the
3908 operations that modify the unnamed
3909 register (which also writes @*).
3910 * Modified hiding behavior so that "s"
3911 will not ignore hiding.
Bram Moolenaar5ef1c6a2019-11-10 22:09:11 +01003912 v166: Nov 06, 2019 * Removed a space from a nmap for "-"
3913 * Numerous debugging statement changes
Bram Moolenaar85850f32019-07-19 22:05:51 +02003914 v163: Dec 05, 2017 * (Cristi Balan) reported that a setting ('sel')
3915 was left changed
3916 * (Holger Mitschke) reported a problem with
3917 saving and restoring history. Fixed.
3918 * Hopefully I fixed a nasty bug that caused a
3919 file rename to wipe out a buffer that it
3920 should not have wiped out.
3921 * (Holger Mitschke) amended this help file
3922 with additional |g:netrw_special_syntax|
3923 items
Bram Moolenaar5ef1c6a2019-11-10 22:09:11 +01003924 * Prioritized wget over curl for
3925 g:netrw_http_cmd
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003926 v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
3927 with a patch; these are now fixed.
3928 Oct 26, 2016 * I started using mate-terminal and found that
3929 x and gx (|netrw-x| and |netrw-gx|) were no
3930 longer working. Fixed (using atril when
3931 $DESKTOP_SESSION is "mate").
3932 Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
3933 being restored with keepregstar rather than
3934 keepregplus.
3935 Nov 09, 2016 * Broke apart the command from the options,
3936 mostly for Windows. Introduced new netrw
3937 settings: |g:netrw_localcopycmdopt|
3938 |g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt|
3939 |g:netrw_localmovecmdopt| |g:netrw_localrmdiropt|
3940 Nov 21, 2016 * (mattn) provided a patch for preview; swapped
3941 winwidth() with winheight()
3942 Nov 22, 2016 * (glacambre) reported that files containing
3943 spaces weren't being obtained properly via
3944 scp. Fix: apparently using single quotes
3945 such as with 'file name' wasn't enough; the
3946 spaces inside the quotes also had to be
3947 escaped (ie. 'file\ name').
3948 * Also fixed obtain (|netrw-O|) to be able to
3949 obtain files with spaces in their names
3950 Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
3951 when atop "Hiding" in the banner also caused
3952 the active-banner hiding control to occur
3953 Jan 03, 2017 * (Enno Nagel) reported that attempting to
3954 apply netrw to a directory that was without
3955 read permission caused a syntax error.
3956 Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
3957 using netrw#Call() better. Now returns
3958 value of internal routines return, for example.
3959 Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
3960 use |:edit| instead of |:read|. I also
3961 changed the routine name to netrw#FileUrlEdit.
3962 Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
3963 could generate a new listing buffer and
3964 window instead of toggling the netrw display.
3965 Unfortunately, the directions for eliciting
3966 the problem weren't complete, so I may or
3967 may not have fixed that issue.
3968 Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
3969 (see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
3970 Mar 21, 2017 * previously, netrw would specify (safe) settings
3971 even when the setting was already safe for
3972 netrw. Netrw now attempts to leave such
3973 already-netrw-safe settings alone.
3974 (affects s:NetrwOptionRestore() and
3975 s:NetrwSafeOptions(); also introduced
3976 s:NetrwRestoreSetting())
3977 Jun 26, 2017 * (Christian Brabandt) provided a patch to
3978 allow curl to follow redirects (ie. -L
3979 option)
3980 Jun 26, 2017 * (Callum Howard) reported a problem with
3981 :Lexpore not removing the Lexplore window
3982 after a change-directory
3983 Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
3984 previously edited file (e.g. with CTRL-^)
3985 after editing a file:// URL. Patch to
3986 have a "keepalt" included.
3987 Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
3988 did not work on directories in the current
3989 tree
3990 v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
3991 a function that returned a 0 while silently
3992 invoking a shell command. The shell command
3993 activated a ShellCmdPost event which in turn
3994 called s:LocalBrowseRefresh(). That looks
3995 over all netrw buffers for changes needing
3996 refreshes. However, inside a |:map-<expr>|,
3997 tab and window changes are disallowed. Fixed.
3998 (affects netrw's s:LocalBrowseRefresh())
3999 * |g:netrw_localrmdir| not used any more, but
4000 the relevant patch that causes |delete()| to
4001 take over was #1107 (not #1109).
4002 * |expand()| is now used on |g:netrw_home|;
4003 consequently, g:netrw_home may now use
4004 environment variables
4005 * s:NetrwLeftmouse and s:NetrwCLeftmouse will
4006 return without doing anything if invoked
4007 when inside a non-netrw window
4008 Jun 15, 2016 * gx now calls netrw#GX() which returns
4009 the word under the cursor. The new
4010 wrinkle: if one is in a netrw buffer,
4011 then netrw's s:NetrwGetWord().
4012 Jun 22, 2016 * Netrw was executing all its associated
4013 Filetype commands silently; I'm going
4014 to try doing that "noisily" and see if
4015 folks have a problem with that.
4016 Aug 12, 2016 * Changed order of tool selection for
4017 handling http://... viewing.
4018 (Nikolay Aleksandrovich Pavlov)
4019 Aug 21, 2016 * Included hiding/showing/all for tree
4020 listings
4021 * Fixed refresh (^L) for tree listings
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02004022 v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
4023 Feb 23, 2016 * s:ComposePath(base,subdir) now uses
4024 fnameescape() on the base portion
4025 Mar 01, 2016 * (gt_macki) reported where :Explore would
4026 make file unlisted. Fixed (tst943)
4027 Apr 04, 2016 * (reported by John Little) netrw normally
4028 suppresses browser messages, but sometimes
4029 those "messages" are what is wanted.
4030 See |g:netrw_suppress_gx_mesg|
4031 Apr 06, 2016 * (reported by Carlos Pita) deleting a remote
4032 file was giving an error message. Fixed.
4033 Apr 08, 2016 * (Charles Cooper) had a problem with an
4034 undefined b:netrw_curdir. He also provided
4035 a fix.
4036 Apr 20, 2016 * Changed s:NetrwGetBuffer(); now uses
4037 dictionaries. Also fixed the "No Name"
4038 buffer problem.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01004039 v155: Oct 29, 2015 * (Timur Fayzrakhmanov) reported that netrw's
4040 mapping of ctrl-l was not allowing refresh of
4041 other windows when it was done in a netrw
4042 window.
4043 Nov 05, 2015 * Improved s:TreeSqueezeDir() to use search()
4044 instead of a loop
4045 * NetrwBrowse() will return line to
4046 w:netrw_bannercnt if cursor ended up in
4047 banner
4048 Nov 16, 2015 * Added a <Plug>NetrwTreeSqueeze (|netrw-s-cr|)
4049 Nov 17, 2015 * Commented out imaps -- perhaps someone can
4050 tell me how they're useful and should be
4051 retained?
4052 Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01004053 Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
Bram Moolenaare0fa3742016-02-20 15:47:01 +01004054 file in addition to simply bringing up the
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01004055 URL in a browser. Fixed.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01004056 Nov 23, 2015 * Added |g:netrw_sizestyle| support
4057 Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
4058 maps.
4059 Jan 05, 2016 * |netrw-qL| implemented to mark files based
4060 upon |location-list|s; similar to |netrw-qF|.
4061 Jan 19, 2016 * using - call delete(directoryname,"d") -
4062 instead of using g:netrw_localrmdir if
4063 v7.4 + patch#1107 is available
4064 Jan 28, 2016 * changed to using |winsaveview()| and
4065 |winrestview()|
4066 Jan 28, 2016 * s:NetrwTreePath() now does a save and
4067 restore of view
4068 Feb 08, 2016 * Fixed a tree-listing problem with remote
4069 directories
Bram Moolenaara0f849e2015-10-30 14:37:44 +01004070 v154: Feb 26, 2015 * (Yuri Kanivetsky) reported a situation where
4071 a file was not treated properly as a file
4072 due to g:netrw_keepdir == 1
4073 Mar 25, 2015 * (requested by Ben Friz) one may now sort by
4074 extension
4075 Mar 28, 2015 * (requested by Matt Brooks) netrw has a lot
4076 of buffer-local mappings; however, some
4077 plugins (such as vim-surround) set up
4078 conflicting mappings that cause vim to wait.
4079 The "<nowait>" modifier has been included
4080 with most of netrw's mappings to avoid that
4081 delay.
4082 Jun 26, 2015 * |netrw-gn| mapping implemted
4083 * :Ntree NotADir resulted in having
4084 the tree listing expand in the error messages
4085 window. Fixed.
4086 Jun 29, 2015 * Attempting to delete a file remotely caused
4087 an error with "keepsol" mentioned; fixed.
4088 Jul 08, 2015 * Several changes to keep the |:jumps| table
4089 correct when working with
4090 |g:netrw_fastbrowse| set to 2
4091 * wide listing with accented characters fixed
4092 (using %-S instead of %-s with a |printf()|
4093 Jul 13, 2015 * (Daniel Hahler) CheckIfKde() could be true
4094 but kfmclient not installed. Changed order
4095 in netrw#BrowseX(): checks if kde and
4096 kfmclient, then will use xdg-open on a unix
4097 system (if xdg-open is executable)
4098 Aug 11, 2015 * (McDonnell) tree listing mode wouldn't
4099 select a file in a open subdirectory.
4100 * (McDonnell) when multiple subdirectories
4101 were concurrently open in tree listing
4102 mode, a ctrl-L wouldn't refresh properly.
4103 * The netrw:target menu showed duplicate
4104 entries
4105 Oct 13, 2015 * (mattn) provided an exception to handle
4106 windows with shellslash set but no shell
4107 Oct 23, 2015 * if g:netrw_usetab and <c-tab> now used
4108 to control whether NetrwShrink is used
4109 (see |netrw-c-tab|)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004110 v153: May 13, 2014 * added another |g:netrw_ffkeep| usage {{{2
4111 May 14, 2014 * changed s:PerformListing() so that it
4112 always sets ft=netrw for netrw buffers
4113 (ie. even when syntax highlighting is
4114 off, not available, etc)
4115 May 16, 2014 * introduced the |netrw-ctrl-r| functionality
4116 May 17, 2014 * introduced the |netrw-:NetrwMB| functionality
4117 * mb and mB (|netrw-mb|, |netrw-mB|) will
4118 add/remove marked files from bookmark list
4119 May 20, 2014 * (Enno Nagel) reported that :Lex <dirname>
4120 wasn't working. Fixed.
4121 May 26, 2014 * restored test to prevent leftmouse window
4122 resizing from causing refresh.
4123 (see s:NetrwLeftmouse())
4124 * fixed problem where a refresh caused cursor
4125 to go just under the banner instead of
4126 staying put
4127 May 28, 2014 * (László Bimba) provided a patch for opening
4128 the |:Lexplore| window 100% high, optionally
4129 on the right, and will work with remote
4130 files.
4131 May 29, 2014 * implemented :NetrwC (see |netrw-:NetrwC|)
4132 Jun 01, 2014 * Removed some "silent"s from commands used
4133 to implemented scp://... and pscp://...
4134 directory listing. Permits request for
4135 password to appear.
4136 Jun 05, 2014 * (Enno Nagel) reported that user maps "/"
4137 caused problems with "b" and "w", which
4138 are mapped (for wide listings only) to
4139 skip over files rather than just words.
4140 Jun 10, 2014 * |g:netrw_gx| introduced to allow users to
4141 override default "<cfile>" with the gx
4142 (|netrw-gx|) map
4143 Jun 11, 2014 * gx (|netrw-gx|), with |'autowrite'| set,
4144 will write modified files. s:NetrwBrowseX()
4145 will now save, turn off, and restore the
4146 |'autowrite'| setting.
4147 Jun 13, 2014 * added visual map for gx use
4148 Jun 15, 2014 * (Enno Nagel) reported that with having hls
4149 set and wide listing style in use, that the
4150 b and w maps caused unwanted highlighting.
4151 Jul 05, 2014 * |netrw-mv| and |netrw-mX| commands included
4152 Jul 09, 2014 * |g:netrw_keepj| included, allowing optional
4153 keepj
4154 Jul 09, 2014 * fixing bugs due to previous update
4155 Jul 21, 2014 * (Bruno Sutic) provided an updated
4156 netrw_gitignore.vim
4157 Jul 30, 2014 * (Yavuz Yetim) reported that editing two
4158 remote files of the same name caused the
4159 second instance to have a "temporary"
4160 name. Fixed: now they use the same buffer.
4161 Sep 18, 2014 * (Yasuhiro Matsumoto) provided a patch which
4162 allows scp and windows local paths to work.
4163 Oct 07, 2014 * gx (see |netrw-gx|) when atop a directory,
4164 will now do |gf| instead
4165 Nov 06, 2014 * For cygwin: cygstart will be available for
4166 netrw#BrowseX() to use if its executable.
4167 Nov 07, 2014 * Began support for file://... urls. Will use
4168 |g:netrw_file_cmd| (typically elinks or links)
4169 Dec 02, 2014 * began work on having mc (|netrw-mc|) copy
4170 directories. Works for linux machines,
4171 cygwin+vim, but not for windows+gvim.
4172 Dec 02, 2014 * in tree mode, netrw was not opening
4173 directories via symbolic links.
4174 Dec 02, 2014 * added resolved link information to
4175 thin and tree modes
4176 Dec 30, 2014 * (issue#231) |:ls| was not showing
4177 remote-file buffers reliably. Fixed.
4178 v152: Apr 08, 2014 * uses the |'noswapfile'| option (requires {{{2
Bram Moolenaar13600302014-05-22 18:26:40 +02004179 vim 7.4 with patch 213)
4180 * (Enno Nagel) turn |'rnu'| off in netrw
4181 buffers.
4182 * (Quinn Strahl) suggested that netrw
4183 allow regular window splitting to occur,
4184 thereby allowing |'equalalways'| to take
4185 effect.
4186 * (qingtian zhao) normally, netrw will
4187 save and restore the |'fileformat'|;
4188 however, sometimes that isn't wanted
4189 Apr 14, 2014 * whenever netrw marks a buffer as ro,
4190 it will also mark it as nomod.
4191 Apr 16, 2014 * sftp protocol now supported by
4192 netrw#Obtain(); this means that one
4193 may use "mc" to copy a remote file
4194 to a local file using sftp, and that
4195 the |netrw-O| command can obtain remote
4196 files via sftp.
4197 * added [count]C support (see |netrw-C|)
4198 Apr 18, 2014 * when |g:netrw_chgwin| is one more than
4199 the last window, then vertically split
4200 the last window and use it as the
4201 chgwin window.
4202 May 09, 2014 * SavePosn was "saving filename under cursor"
4203 from a non-netrw window when using :Rex.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004204 v151: Jan 22, 2014 * extended :Rexplore to return to buffer {{{2
Bram Moolenaara6878372014-03-22 21:02:50 +01004205 prior to Explore or editing a directory
4206 * (Ken Takata) netrw gave error when
4207 clipboard was disabled. Sol'n: Placed
4208 several if has("clipboard") tests in.
4209 * Fixed ftp://X@Y@Z// problem; X@Y now
4210 part of user id, and only Z is part of
4211 hostname.
4212 * (A Loumiotis) reported that completion
4213 using a directory name containing spaces
4214 did not work. Fixed with a retry in
4215 netrw#Explore() which removes the
4216 backslashes vim inserted.
4217 Feb 26, 2014 * :Rexplore now records the current file
4218 using w:netrw_rexfile when returning via
4219 |:Rexplore|
4220 Mar 08, 2014 * (David Kotchan) provided some patches
4221 allowing netrw to work properly with
4222 windows shares.
4223 * Multiple one-liner help messages available
4224 by pressing <cr> while atop the "Quick
4225 Help" line
4226 * worked on ShellCmdPost, FocusGained event
4227 handling.
4228 * |:Lexplore| path: will be used to update
4229 a left-side netrw browsing directory.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01004230 Mar 12, 2014 * |netrw-s-cr|: use <s-cr> to close
Bram Moolenaara6878372014-03-22 21:02:50 +01004231 tree directory implemented
4232 Mar 13, 2014 * (Tony Mechylynck) reported that using
4233 the browser with ftp on a directory,
4234 and selecting a gzipped txt file, that
4235 an E19 occurred (which was issued by
4236 gzip.vim). Fixed.
4237 Mar 14, 2014 * Implemented :MF and :MT (see |netrw-:MF|
4238 and |netrw-:MT|, respectively)
4239 Mar 17, 2014 * |:Ntree| [dir] wasn't working properly; fixed
4240 Mar 18, 2014 * Changed all uses of set to setl
4241 Mar 18, 2014 * Commented the netrw_btkeep line in
4242 s:NetrwOptionSave(); the effect is that
4243 netrw buffers will remain as |'bt'|=nofile.
4244 This should prevent swapfiles being created
4245 for netrw buffers.
4246 Mar 20, 2014 * Changed all uses of lcd to use s:NetrwLcd()
4247 instead. Consistent error handling results
4248 and it also handles Window's shares
4249 * Fixed |netrw-d| command when applied with ftp
4250 * https: support included for netrw#NetRead()
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004251 v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01004252 return to the netrw directory listing
4253 Jul 13, 2013 * (Jonas Diemer) suggested changing
4254 a <cWORD> to <cfile>.
4255 Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
4256 use of mkdir did not produce directories
Bram Moolenaara6878372014-03-22 21:02:50 +01004257 following the user's umask.
Bram Moolenaar8d043172014-01-23 14:24:41 +01004258 Aug 27, 2013 * introduced |g:netrw_altfile| option
4259 Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
4260 when available, by default
4261 Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
4262 opening some directories properly from the
4263 command line.
4264 Nov 09, 2013 * |:Lexplore| introduced
4265 * (Ondrej Platek) reported an issue with
4266 netrw's trees (P15). Fixed.
4267 * (Jorge Solis) reported that "t" in
4268 tree mode caused netrw to forget its
4269 line position.
4270 Dec 05, 2013 * Added <s-leftmouse> file marking
4271 (see |netrw-mf|)
4272 Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
4273 strlen() instead s:Strlen() when handling
4274 multibyte chars with strpart()
4275 (ie. strpart() is byte oriented, not
4276 display-width oriented).
4277 Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
4278 and a portion of timestamps were wrongly
4279 highlighted with the directory color when
4280 setting `:let g:netrw_liststyle=1` on Windows.
4281 * (Paul Domaskis) noted that sometimes
4282 cursorline was activating in non-netrw
4283 windows. All but one setting of cursorline
4284 was done via setl; there was one that was
4285 overlooked. Fixed.
4286 Dec 24, 2013 * (esquifit) asked that netrw allow the
4287 /cygdrive prefix be a user-alterable
4288 parameter.
4289 Jan 02, 2014 * Fixed a problem with netrw-based ballon
4290 evaluation (ie. netrw#NetrwBaloonHelp()
4291 not having been loaded error messages)
4292 Jan 03, 2014 * Fixed a problem with tree listings
4293 * New command installed: |:Ntree|
4294 Jan 06, 2014 * (Ivan Brennan) reported a problem with
4295 |netrw-P|. Fixed.
4296 Jan 06, 2014 * Fixed a problem with |netrw-P| when the
4297 modified file was to be abandoned.
4298 Jan 15, 2014 * (Matteo Cavalleri) reported that when the
4299 banner is suppressed and tree listing is
4300 used, a blank line was left at the top of
4301 the display. Fixed.
4302 Jan 20, 2014 * (Gideon Go) reported that, in tree listing
4303 style, with a previous window open, that
4304 the wrong directory was being used to open
4305 a file. Fixed. (P21)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004306 v149: Apr 18, 2013 * in wide listing format, now have maps for {{{2
Bram Moolenaare6ae6222013-05-21 21:01:10 +02004307 w and b to move to next/previous file
4308 Apr 26, 2013 * one may now copy files in the same
4309 directory; netrw will issue requests for
4310 what names the files should be copied under
4311 Apr 29, 2013 * Trying Benzinger's problem again. Seems
4312 that commenting out the BufEnter and
4313 installing VimEnter (only) works. Weird
4314 problem! (tree listing, vim -O Dir1 Dir2)
4315 May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
4316 May 02, 2013 * introduced |g:netrw_bannerbackslash| as
4317 requested by Paul Domaskis.
Bram Moolenaar8d043172014-01-23 14:24:41 +01004318 Jul 03, 2013 * Explore now avoids splitting when a buffer
4319 will be hidden.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004320 v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct {{{2
Bram Moolenaarff034192013-04-24 18:51:19 +02004321 choice of listing style, hiding style, and
4322 sorting style
Bram Moolenaar071d4272004-06-13 20:20:40 +00004323
4324==============================================================================
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100432513. Todo *netrw-todo* {{{1
4326
432707/29/09 : banner :|g:netrw_banner| can be used to suppress the
4328 suppression banner. This feature is new and experimental,
4329 so its in the process of being debugged.
433009/04/09 : "gp" : See if it can be made to work for remote systems.
4331 : See if it can be made to work with marked files.
4332
4333==============================================================================
433414. Credits *netrw-credits* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00004335
4336 Vim editor by Bram Moolenaar (Thanks, Bram!)
4337 dav support by C Campbell
4338 fetch support by Bram Moolenaar and C Campbell
Bram Moolenaar29634562020-01-09 21:46:04 +01004339 ftp support by C Campbell <NcampObell@SdrPchip.AorgM-NOSPAM>
Bram Moolenaar071d4272004-06-13 20:20:40 +00004340 http support by Bram Moolenaar <bram@moolenaar.net>
4341 rcp
4342 rsync support by C Campbell (suggested by Erik Warendorph)
4343 scp support by raf <raf@comdyn.com.au>
4344 sftp support by C Campbell
4345
4346 inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell
4347
4348 Jérôme Augé -- also using new buffer method with ftp+.netrc
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004349 Bram Moolenaar -- obviously vim itself, :e and v:cmdarg use,
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00004350 fetch,...
Bram Moolenaar071d4272004-06-13 20:20:40 +00004351 Yasuhiro Matsumoto -- pointing out undo+0r problem and a solution
4352 Erik Warendorph -- for several suggestions (g:netrw_..._cmd
4353 variables, rsync etc)
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004354 Doug Claar -- modifications to test for success with ftp
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00004355 operation
Bram Moolenaar071d4272004-06-13 20:20:40 +00004356
4357==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00004358Modelines: {{{1
Bram Moolenaar1d59aa12020-09-19 18:50:13 +02004359vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker