blob: 478338ed427412f1ca47e63878aa87deae1eb4c6 [file] [log] [blame]
Bram Moolenaarb1c91982018-05-17 17:04:55 +02001*pi_netrw.txt* For Vim version 8.1. Last change: 2017 Nov 03
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
Bram Moolenaarff034192013-04-24 18:51:19 +02003 ------------------------------------------------
4 NETRW REFERENCE MANUAL by Charles E. Campbell
5 ------------------------------------------------
6Author: Charles E. Campbell <NdrOchip@ScampbellPfamily.AbizM>
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01007 (remove NOSPAM from Campbell's email first)
8
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01009Copyright: Copyright (C) 2017 Charles E Campbell *netrw-copyright*
Bram Moolenaar5b435d62012-04-05 17:33:26 +020010 The VIM LICENSE applies to the files in this package, including
11 netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, netrwSettings.vim, and
12 syntax/netrw.vim. Like anything else that's free, netrw.vim and its
13 associated files are provided *as is* and comes with no warranty of
14 any kind, either expressed or implied. No guarantees of
15 merchantability. No guarantees of suitability for any purpose. By
16 using this plugin, you agree that in no event will the copyright
17 holder be liable for any damages resulting from the use of this
18 software. Use at your own risk!
Bram Moolenaar071d4272004-06-13 20:20:40 +000019
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010020 *netrw*
Bram Moolenaar00a927d2010-05-14 23:24:24 +020021 *dav* *ftp* *netrw-file* *rcp* *scp*
22 *davs* *http* *netrw.vim* *rsync* *sftp*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010023 *fetch* *network*
Bram Moolenaar071d4272004-06-13 20:20:40 +000024
25==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +0000261. Contents *netrw-contents* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +000027
Bram Moolenaarff034192013-04-24 18:51:19 +0200281. Contents..............................................|netrw-contents|
292. Starting With Netrw...................................|netrw-start|
303. Netrw Reference.......................................|netrw-ref|
31 EXTERNAL APPLICATIONS AND PROTOCOLS.................|netrw-externapp|
32 READING.............................................|netrw-read|
33 WRITING.............................................|netrw-write|
34 SOURCING............................................|netrw-source|
35 DIRECTORY LISTING...................................|netrw-dirlist|
36 CHANGING THE USERID AND PASSWORD....................|netrw-chgup|
37 VARIABLES AND SETTINGS..............................|netrw-variables|
38 PATHS...............................................|netrw-path|
394. Network-Oriented File Transfer........................|netrw-xfer|
40 NETRC...............................................|netrw-netrc|
41 PASSWORD............................................|netrw-passwd|
425. Activation............................................|netrw-activate|
436. Transparent Remote File Editing.......................|netrw-transparent|
447. Ex Commands...........................................|netrw-ex|
458. Variables and Options.................................|netrw-variables|
469. Browsing..............................................|netrw-browse|
47 Introduction To Browsing............................|netrw-intro-browse|
48 Quick Reference: Maps...............................|netrw-browse-maps|
49 Quick Reference: Commands...........................|netrw-browse-cmds|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010050 Banner Display......................................|netrw-I|
Bram Moolenaarff034192013-04-24 18:51:19 +020051 Bookmarking A Directory.............................|netrw-mb|
52 Browsing............................................|netrw-cr|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010053 Squeezing the Current Tree-Listing Directory........|netrw-s-cr|
Bram Moolenaarff034192013-04-24 18:51:19 +020054 Browsing With A Horizontally Split Window...........|netrw-o|
55 Browsing With A New Tab.............................|netrw-t|
56 Browsing With A Vertically Split Window.............|netrw-v|
57 Change Listing Style.(thin wide long tree)..........|netrw-i|
58 Changing To A Bookmarked Directory..................|netrw-gb|
59 Changing To A Predecessor Directory.................|netrw-u|
60 Changing To A Successor Directory...................|netrw-U|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010061 Customizing Browsing With A Special Handler.........|netrw-x|
Bram Moolenaarff034192013-04-24 18:51:19 +020062 Deleting Bookmarks..................................|netrw-mB|
63 Deleting Files Or Directories.......................|netrw-D|
64 Directory Exploring Commands........................|netrw-explore|
65 Exploring With Stars and Patterns...................|netrw-star|
66 Displaying Information About File...................|netrw-qf|
67 Edit File Or Directory Hiding List..................|netrw-ctrl-h|
68 Editing The Sorting Sequence........................|netrw-S|
69 Forcing treatment as a file or directory............|netrw-gd| |netrw-gf|
70 Going Up............................................|netrw--|
71 Hiding Files Or Directories.........................|netrw-a|
72 Improving Browsing..................................|netrw-ssh-hack|
73 Listing Bookmarks And History.......................|netrw-qb|
74 Making A New Directory..............................|netrw-d|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010075 Making The Browsing Directory The Current Directory.|netrw-cd|
Bram Moolenaarff034192013-04-24 18:51:19 +020076 Marking Files.......................................|netrw-mf|
77 Unmarking Files.....................................|netrw-mF|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010078 Marking Files By Location List......................|netrw-qL|
Bram Moolenaarff034192013-04-24 18:51:19 +020079 Marking Files By QuickFix List......................|netrw-qF|
80 Marking Files By Regular Expression.................|netrw-mr|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +010081 Marked Files: Arbitrary Shell Command...............|netrw-mx|
82 Marked Files: Arbitrary Shell Command, En Bloc......|netrw-mX|
83 Marked Files: Arbitrary Vim Command.................|netrw-mv|
Bram Moolenaare0fa3742016-02-20 15:47:01 +010084 Marked Files: Argument List.........................|netrw-ma| |netrw-mA|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +010085 Marked Files: Buffer List...........................|netrw-cb| |netrw-cB|
Bram Moolenaarff034192013-04-24 18:51:19 +020086 Marked Files: Compression And Decompression.........|netrw-mz|
87 Marked Files: Copying...............................|netrw-mc|
88 Marked Files: Diff..................................|netrw-md|
89 Marked Files: Editing...............................|netrw-me|
90 Marked Files: Grep..................................|netrw-mg|
91 Marked Files: Hiding and Unhiding by Suffix.........|netrw-mh|
92 Marked Files: Moving................................|netrw-mm|
93 Marked Files: Printing..............................|netrw-mp|
94 Marked Files: Sourcing..............................|netrw-ms|
95 Marked Files: Setting the Target Directory..........|netrw-mt|
96 Marked Files: Tagging...............................|netrw-mT|
97 Marked Files: Target Directory Using Bookmarks......|netrw-Tb|
98 Marked Files: Target Directory Using History........|netrw-Th|
99 Marked Files: Unmarking.............................|netrw-mu|
100 Netrw Browser Variables.............................|netrw-browser-var|
101 Netrw Browsing And Option Incompatibilities.........|netrw-incompatible|
102 Netrw Settings Window...............................|netrw-settings-window|
103 Obtaining A File....................................|netrw-O|
104 Preview Window......................................|netrw-p|
105 Previous Window.....................................|netrw-P|
106 Refreshing The Listing..............................|netrw-ctrl-l|
107 Reversing Sorting Order.............................|netrw-r|
108 Renaming Files Or Directories.......................|netrw-R|
109 Selecting Sorting Style.............................|netrw-s|
110 Setting Editing Window..............................|netrw-C|
11110. Problems and Fixes....................................|netrw-problems|
11211. Debugging Netrw Itself................................|netrw-debug|
11312. History...............................................|netrw-history|
11413. Todo..................................................|netrw-todo|
11514. Credits...............................................|netrw-credits|
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116
Bram Moolenaar071d4272004-06-13 20:20:40 +0000117{Vi does not have any of this}
118
119==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00001202. Starting With Netrw *netrw-start* {{{1
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000121
Bram Moolenaar446cb832008-06-24 21:56:24 +0000122Netrw makes reading files, writing files, browsing over a network, and
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100123local browsing easy! First, make sure that you have plugins enabled, so
Bram Moolenaar446cb832008-06-24 21:56:24 +0000124you'll need to have at least the following in your <.vimrc>:
125(or see |netrw-activate|) >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000126
Bram Moolenaar9964e462007-05-05 17:54:07 +0000127 set nocp " 'compatible' is not set
128 filetype plugin on " plugins are enabled
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000129<
130(see |'cp'| and |:filetype-plugin-on|)
131
132Netrw supports "transparent" editing of files on other machines using urls
133(see |netrw-transparent|). As an example of this, let's assume you have an
Bram Moolenaar446cb832008-06-24 21:56:24 +0000134account on some other machine; if you can use scp, try: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000135
136 vim scp://hostname/path/to/file
137<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000138Want to make ssh/scp easier to use? Check out |netrw-ssh-hack|!
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000139
Bram Moolenaar446cb832008-06-24 21:56:24 +0000140So, what if you have ftp, not ssh/scp? That's easy, too; try >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000141
142 vim ftp://hostname/path/to/file
143<
144Want to make ftp simpler to use? See if your ftp supports a file called
145<.netrc> -- typically it goes in your home directory, has read/write
146permissions for only the user to read (ie. not group, world, other, etc),
147and has lines resembling >
148
149 machine HOSTNAME login USERID password "PASSWORD"
150 machine HOSTNAME login USERID password "PASSWORD"
151 ...
Bram Moolenaar9964e462007-05-05 17:54:07 +0000152 default login USERID password "PASSWORD"
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000153<
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200154Windows' ftp doesn't support .netrc; however, one may have in one's .vimrc: >
155
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200156 let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'
Bram Moolenaar97d62492012-11-15 21:28:22 +0100157<
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100158Netrw will substitute the host's machine name for "MACHINE" from the URL it is
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200159attempting to open, and so one may specify >
160 userid
161 password
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200162for each site in a separate file: c:\Users\MyUserName\MachineName.
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200163
Bram Moolenaar446cb832008-06-24 21:56:24 +0000164Now about browsing -- when you just want to look around before editing a
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000165file. For browsing on your current host, just "edit" a directory: >
166
167 vim .
168 vim /home/userid/path
169<
170For browsing on a remote host, "edit" a directory (but make sure that
171the directory name is followed by a "/"): >
172
173 vim scp://hostname/
174 vim ftp://hostname/path/to/dir/
175<
176See |netrw-browse| for more!
177
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100178There are more protocols supported by netrw than just scp and ftp, too: see the
179next section, |netrw-externapp|, on how to use these external applications with
180netrw and vim.
181
Bram Moolenaar13600302014-05-22 18:26:40 +0200182PREVENTING LOADING *netrw-noload*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000183
184If you want to use plugins, but for some reason don't wish to use netrw, then
185you need to avoid loading both the plugin and the autoload portions of netrw.
186You may do so by placing the following two lines in your <.vimrc>: >
187
188 :let g:loaded_netrw = 1
189 :let g:loaded_netrwPlugin = 1
190<
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +0000191
192==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02001933. Netrw Reference *netrw-ref* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000194
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100195 Netrw supports several protocols in addition to scp and ftp as mentioned
Bram Moolenaar446cb832008-06-24 21:56:24 +0000196 in |netrw-start|. These include dav, fetch, http,... well, just look
197 at the list in |netrw-externapp|. Each protocol is associated with a
198 variable which holds the default command supporting that protocol.
199
200EXTERNAL APPLICATIONS AND PROTOCOLS *netrw-externapp* {{{2
Bram Moolenaar071d4272004-06-13 20:20:40 +0000201
Bram Moolenaar8d043172014-01-23 14:24:41 +0100202 Protocol Variable Default Value
203 -------- ---------------- -------------
204 dav: *g:netrw_dav_cmd* = "cadaver" if cadaver is executable
205 dav: g:netrw_dav_cmd = "curl -o" elseif curl is available
206 fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available
207 ftp: *g:netrw_ftp_cmd* = "ftp"
208 http: *g:netrw_http_cmd* = "elinks" if elinks is available
209 http: g:netrw_http_cmd = "links" elseif links is available
210 http: g:netrw_http_cmd = "curl" elseif curl is available
211 http: g:netrw_http_cmd = "wget" elseif wget is available
212 http: g:netrw_http_cmd = "fetch" elseif fetch is available
213 http: *g:netrw_http_put_cmd* = "curl -T"
214 rcp: *g:netrw_rcp_cmd* = "rcp"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100215 rsync: *g:netrw_rsync_cmd* = "rsync" (see |g:netrw_rsync_sep|)
Bram Moolenaar8d043172014-01-23 14:24:41 +0100216 scp: *g:netrw_scp_cmd* = "scp -q"
217 sftp: *g:netrw_sftp_cmd* = "sftp"
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100218 file: *g:netrw_file_cmd* = "elinks" or "links"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100219
220 *g:netrw_http_xcmd* : the option string for http://... protocols are
221 specified via this variable and may be independently overridden. By
222 default, the option arguments for the http-handling commands are: >
223
224 elinks : "-source >"
Bram Moolenaar97d62492012-11-15 21:28:22 +0100225 links : "-dump >"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100226 curl : "-L -o"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100227 wget : "-q -O"
228 fetch : "-o"
229<
230 For example, if your system has elinks, and you'd rather see the
231 page using an attempt at rendering the text, you may wish to have >
232 let g:netrw_http_xcmd= "-dump >"
233< in your .vimrc.
234
Bram Moolenaar8d043172014-01-23 14:24:41 +0100235 g:netrw_http_put_cmd: this option specifies both the executable and
236 any needed options. This command does a PUT operation to the url.
237
Bram Moolenaar071d4272004-06-13 20:20:40 +0000238
Bram Moolenaar446cb832008-06-24 21:56:24 +0000239READING *netrw-read* *netrw-nread* {{{2
240
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100241 Generally, one may just use the URL notation with a normal editing
Bram Moolenaar446cb832008-06-24 21:56:24 +0000242 command, such as >
243
244 :e ftp://[user@]machine/path
245<
246 Netrw also provides the Nread command:
247
Bram Moolenaar071d4272004-06-13 20:20:40 +0000248 :Nread ? give help
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000249 :Nread "machine:path" uses rcp
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000250 :Nread "machine path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000251 :Nread "machine id password path" uses ftp
252 :Nread "dav://machine[:port]/path" uses cadaver
253 :Nread "fetch://[user@]machine/path" uses fetch
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000254 :Nread "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000255 :Nread "http://[user@]machine/path" uses http uses wget
256 :Nread "rcp://[user@]machine/path" uses rcp
257 :Nread "rsync://[user@]machine[:port]/path" uses rsync
258 :Nread "scp://[user@]machine[[:#]port]/path" uses scp
259 :Nread "sftp://[user@]machine/path" uses sftp
Bram Moolenaar071d4272004-06-13 20:20:40 +0000260
Bram Moolenaar446cb832008-06-24 21:56:24 +0000261WRITING *netrw-write* *netrw-nwrite* {{{2
262
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100263 One may just use the URL notation with a normal file writing
Bram Moolenaar446cb832008-06-24 21:56:24 +0000264 command, such as >
265
266 :w ftp://[user@]machine/path
267<
268 Netrw also provides the Nwrite command:
269
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000270 :Nwrite ? give help
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000271 :Nwrite "machine:path" uses rcp
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000272 :Nwrite "machine path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000273 :Nwrite "machine id password path" uses ftp
274 :Nwrite "dav://machine[:port]/path" uses cadaver
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000275 :Nwrite "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000276 :Nwrite "rcp://[user@]machine/path" uses rcp
277 :Nwrite "rsync://[user@]machine[:port]/path" uses rsync
278 :Nwrite "scp://[user@]machine[[:#]port]/path" uses scp
279 :Nwrite "sftp://[user@]machine/path" uses sftp
Bram Moolenaar071d4272004-06-13 20:20:40 +0000280 http: not supported!
281
Bram Moolenaar446cb832008-06-24 21:56:24 +0000282SOURCING *netrw-source* {{{2
283
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100284 One may just use the URL notation with the normal file sourcing
Bram Moolenaar446cb832008-06-24 21:56:24 +0000285 command, such as >
286
287 :so ftp://[user@]machine/path
288<
289 Netrw also provides the Nsource command:
290
Bram Moolenaar9964e462007-05-05 17:54:07 +0000291 :Nsource ? give help
292 :Nsource "dav://machine[:port]/path" uses cadaver
293 :Nsource "fetch://[user@]machine/path" uses fetch
294 :Nsource "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc>
295 :Nsource "http://[user@]machine/path" uses http uses wget
296 :Nsource "rcp://[user@]machine/path" uses rcp
297 :Nsource "rsync://[user@]machine[:port]/path" uses rsync
298 :Nsource "scp://[user@]machine[[:#]port]/path" uses scp
299 :Nsource "sftp://[user@]machine/path" uses sftp
300
Bram Moolenaar13600302014-05-22 18:26:40 +0200301DIRECTORY LISTING *netrw-trailingslash* *netrw-dirlist* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +0000302
303 One may browse a directory to get a listing by simply attempting to
304 edit the directory: >
305
306 :e scp://[user]@hostname/path/
307 :e ftp://[user]@hostname/path/
308<
Bram Moolenaar251e1912011-06-19 05:09:16 +0200309 For remote directory listings (ie. those using scp or ftp), that
310 trailing "/" is necessary (the slash tells netrw to treat the argument
311 as a directory to browse instead of as a file to download).
Bram Moolenaar446cb832008-06-24 21:56:24 +0000312
Bram Moolenaar251e1912011-06-19 05:09:16 +0200313 The Nread command may also be used to accomplish this (again, that
314 trailing slash is necessary): >
Bram Moolenaar446cb832008-06-24 21:56:24 +0000315
Bram Moolenaar251e1912011-06-19 05:09:16 +0200316 :Nread [protocol]://[user]@hostname/path/
317<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000318 *netrw-login* *netrw-password*
319CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* {{{2
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000320
Bram Moolenaar071d4272004-06-13 20:20:40 +0000321 Attempts to use ftp will prompt you for a user-id and a password.
Bram Moolenaar15146672011-10-20 22:22:38 +0200322 These will be saved in global variables |g:netrw_uid| and
323 |s:netrw_passwd|; subsequent use of ftp will re-use those two strings,
324 thereby simplifying use of ftp. However, if you need to use a
325 different user id and/or password, you'll want to call |NetUserPass()|
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000326 first. To work around the need to enter passwords, check if your ftp
327 supports a <.netrc> file in your home directory. Also see
328 |netrw-passwd| (and if you're using ssh/scp hoping to figure out how
Bram Moolenaar15146672011-10-20 22:22:38 +0200329 to not need to use passwords for scp, look at |netrw-ssh-hack|).
Bram Moolenaar071d4272004-06-13 20:20:40 +0000330
331 :NetUserPass [uid [password]] -- prompts as needed
332 :call NetUserPass() -- prompts for uid and password
333 :call NetUserPass("uid") -- prompts for password
334 :call NetUserPass("uid","password") -- sets global uid and password
335
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200336(Related topics: |ftp| |netrw-userpass| |netrw-start|)
337
Bram Moolenaar446cb832008-06-24 21:56:24 +0000338NETRW VARIABLES AND SETTINGS *netrw-variables* {{{2
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200339 (Also see:
340 |netrw-browser-var| : netrw browser option variables
341 |netrw-protocol| : file transfer protocol option variables
342 |netrw-settings| : additional file transfer options
343 |netrw-browser-options| : these options affect browsing directories
344 )
Bram Moolenaar9964e462007-05-05 17:54:07 +0000345
Bram Moolenaar446cb832008-06-24 21:56:24 +0000346Netrw provides a lot of variables which allow you to customize netrw to your
347preferences. One way to look at them is via the command :NetrwSettings (see
348|netrw-settings|) which will display your current netrw settings. Most such
349settings are described below, in |netrw-browser-options|, and in
350|netrw-externapp|:
Bram Moolenaar9964e462007-05-05 17:54:07 +0000351
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100352 *b:netrw_lastfile* last file Network-read/written retained on a
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200353 per-buffer basis (supports plain :Nw )
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100354
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200355 *g:netrw_bufsettings* the settings that netrw buffers have
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100356 (default) noma nomod nonu nowrap ro nobl
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200357
Bram Moolenaar13600302014-05-22 18:26:40 +0200358 *g:netrw_chgwin* specifies a window number where subsequent file edits
359 will take place. (also see |netrw-C|)
360 (default) -1
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100361
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200362 *g:Netrw_funcref* specifies a function (or functions) to be called when
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200363 netrw edits a file. The file is first edited, and
364 then the function reference (|Funcref|) is called.
365 This variable may also hold a |List| of Funcrefs.
366 (default) not defined. (the capital in g:Netrw...
367 is required by its holding a function reference)
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200368>
369 Example: place in .vimrc; affects all file opening
370 fun! MyFuncRef()
371 endfun
372 let g:Netrw_funcref= function("MyFuncRef")
Bram Moolenaara0f849e2015-10-30 14:37:44 +0100373
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200374<
Bram Moolenaara0f849e2015-10-30 14:37:44 +0100375 *g:Netrw_UserMaps* specifies a function or |List| of functions which can
376 be used to set up user-specified maps and functionality.
377 See |netrw-usermaps|
378
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200379 *g:netrw_ftp* if it doesn't exist, use default ftp
380 =0 use default ftp (uid password)
381 =1 use alternate ftp method (user uid password)
382 If you're having trouble with ftp, try changing the
383 value of this variable to see if the alternate ftp
384 method works for your setup.
385
Bram Moolenaar13600302014-05-22 18:26:40 +0200386 *g:netrw_ftp_options* Chosen by default, these options are supposed to
387 turn interactive prompting off and to restrain ftp
388 from attempting auto-login upon initial connection.
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200389 However, it appears that not all ftp implementations
390 support this (ex. ncftp).
391 ="-i -n"
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000392
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100393 *g:netrw_ftpextracmd* default: doesn't exist
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200394 If this variable exists, then any string it contains
395 will be placed into the commands set to your ftp
396 client. As an example:
397 ="passive"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000398
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000399 *g:netrw_ftpmode* ="binary" (default)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200400 ="ascii"
Bram Moolenaarf6cf9872005-08-08 22:00:59 +0000401
Bram Moolenaar9964e462007-05-05 17:54:07 +0000402 *g:netrw_ignorenetrc* =0 (default for linux, cygwin)
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200403 =1 If you have a <.netrc> file but it doesn't work and
404 you want it ignored, then set this variable as
405 shown. (default for Windows + cmd.exe)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000406
407 *g:netrw_menu* =0 disable netrw's menu
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200408 =1 (default) netrw's menu enabled
Bram Moolenaar9964e462007-05-05 17:54:07 +0000409
410 *g:netrw_nogx* if this variable exists, then the "gx" map will not
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200411 be available (see |netrw-gx|)
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000412
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100413 *g:netrw_uid* (ftp) user-id, retained on a per-vim-session basis
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100414 *s:netrw_passwd* (ftp) password, retained on a per-vim-session basis
Bram Moolenaar446cb832008-06-24 21:56:24 +0000415
416 *g:netrw_preview* =0 (default) preview window shown in a horizontally
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200417 split window
418 =1 preview window shown in a vertically split window.
Bram Moolenaar13600302014-05-22 18:26:40 +0200419 Also affects the "previous window" (see |netrw-P|)
420 in the same way.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100421 The |g:netrw_alto| variable may be used to provide
422 additional splitting control:
423 g:netrw_preview g:netrw_alto result
424 0 0 |:aboveleft|
425 0 1 |:belowright|
426 1 0 |:topleft|
427 1 1 |:botright|
428 To control sizing, see |g:netrw_winsize|
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000429
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200430 *g:netrw_scpport* = "-P" : option to use to set port for scp
431 *g:netrw_sshport* = "-p" : option to use to set port for ssh
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000432
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100433 *g:netrw_sepchr* =\0xff
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200434 =\0x01 for enc == euc-jp (and perhaps it should be for
435 others, too, please let me know)
436 Separates priority codes from filenames internally.
437 See |netrw-p12|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100438
Bram Moolenaar446cb832008-06-24 21:56:24 +0000439 *g:netrw_silent* =0 : transfers done normally
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200440 =1 : transfers done silently
Bram Moolenaar446cb832008-06-24 21:56:24 +0000441
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000442 *g:netrw_use_errorwindow* =1 : messages from netrw will use a separate one
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200443 line window. This window provides reliable
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200444 delivery of messages. (default)
445 =0 : messages from netrw will use echoerr ;
446 messages don't always seem to show up this
447 way, but one doesn't have to quit the window.
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +0000448
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000449 *g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200450 lines that o/s's ftp "provides" on transfers
451 =0 force normal ftp behavior (no trailing line removal)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000452
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100453 *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200454 permits network browsing to use ls with time and
455 size sorting (default if windows)
456 =0 assume Windows' scp accepts windows-style paths
457 Network browsing uses dir instead of ls
458 This option is ignored if you're using unix
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000459
460 *g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200461 =1 use WinNT's rcp in binary mode (default)
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000462
Bram Moolenaar446cb832008-06-24 21:56:24 +0000463PATHS *netrw-path* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000464
465Paths to files are generally user-directory relative for most protocols.
466It is possible that some protocol will make paths relative to some
467associated directory, however.
468>
469 example: vim scp://user@host/somefile
470 example: vim scp://user@host/subdir1/subdir2/somefile
471<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000472where "somefile" is in the "user"'s home directory. If you wish to get a
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000473file using root-relative paths, use the full path:
474>
475 example: vim scp://user@host//somefile
476 example: vim scp://user@host//subdir1/subdir2/somefile
477<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000478
479==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00004804. Network-Oriented File Transfer *netrw-xfer* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000481
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100482Network-oriented file transfer under Vim is implemented by a vim script
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000483(<netrw.vim>) using plugin techniques. It currently supports both reading and
484writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch,
Bram Moolenaar071d4272004-06-13 20:20:40 +0000485dav/cadaver, rsync, or sftp.
486
487http is currently supported read-only via use of wget or fetch.
488
489<netrw.vim> is a standard plugin which acts as glue between Vim and the
490various file transfer programs. It uses autocommand events (BufReadCmd,
491FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. >
492
493 ex. vim ftp://hostname/path/to/file
494<
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000495The characters preceding the colon specify the protocol to use; in the
Bram Moolenaar446cb832008-06-24 21:56:24 +0000496example, it's ftp. The <netrw.vim> script then formulates a command or a
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000497series of commands (typically ftp) which it issues to an external program
498(ftp, scp, etc) which does the actual file transfer/protocol. Files are read
499from/written to a temporary file (under Unix/Linux, /tmp/...) which the
500<netrw.vim> script will clean up.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000501
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100502Now, a word about Jan Minář's "FTP User Name and Password Disclosure"; first,
503ftp is not a secure protocol. User names and passwords are transmitted "in
504the clear" over the internet; any snooper tool can pick these up; this is not
505a netrw thing, this is a ftp thing. If you're concerned about this, please
506try to use scp or sftp instead.
507
508Netrw re-uses the user id and password during the same vim session and so long
509as the remote hostname remains the same.
510
511Jan seems to be a bit confused about how netrw handles ftp; normally multiple
512commands are performed in a "ftp session", and he seems to feel that the
513uid/password should only be retained over one ftp session. However, netrw
514does every ftp operation in a separate "ftp session"; so remembering the
515uid/password for just one "ftp session" would be the same as not remembering
516the uid/password at all. IMHO this would rapidly grow tiresome as one
517browsed remote directories, for example.
518
519On the other hand, thanks go to Jan M. for pointing out the many
520vulnerabilities that netrw (and vim itself) had had in handling "crafted"
521filenames. The |shellescape()| and |fnameescape()| functions were written in
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200522response by Bram Moolenaar to handle these sort of problems, and netrw has
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100523been modified to use them. Still, my advice is, if the "filename" looks like
524a vim command that you aren't comfortable with having executed, don't open it.
525
Bram Moolenaar9964e462007-05-05 17:54:07 +0000526 *netrw-putty* *netrw-pscp* *netrw-psftp*
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000527One may modify any protocol's implementing external application by setting a
528variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000529"scp -q"). As an example, consider using PuTTY: >
Bram Moolenaar9964e462007-05-05 17:54:07 +0000530
531 let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
532 let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000533<
Bram Moolenaar15146672011-10-20 22:22:38 +0200534(note: it has been reported that windows 7 with putty v0.6's "-batch" option
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100535 doesn't work, so its best to leave it off for that system)
Bram Moolenaar15146672011-10-20 22:22:38 +0200536
Bram Moolenaar9964e462007-05-05 17:54:07 +0000537See |netrw-p8| for more about putty, pscp, psftp, etc.
538
Bram Moolenaar071d4272004-06-13 20:20:40 +0000539Ftp, an old protocol, seems to be blessed by numerous implementations.
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000540Unfortunately, some implementations are noisy (ie., add junk to the end of the
541file). Thus, concerned users may decide to write a NetReadFixup() function
542that will clean up after reading with their ftp. Some Unix systems (ie.,
543FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is
544not noisy and more convenient, actually, for <netrw.vim> to use.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100545Consequently, if "fetch" is available (ie. executable), it may be preferable
546to use it for ftp://... based transfers.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000547
548For rcp, scp, sftp, and http, one may use network-oriented file transfers
Bram Moolenaar83bab712005-08-01 21:58:57 +0000549transparently; ie.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000550>
551 vim rcp://[user@]machine/path
552 vim scp://[user@]machine/path
553<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100554If your ftp supports <.netrc>, then it too can be transparently used
Bram Moolenaar071d4272004-06-13 20:20:40 +0000555if the needed triad of machine name, user id, and password are present in
556that file. Your ftp must be able to use the <.netrc> file on its own, however.
557>
558 vim ftp://[user@]machine[[:#]portnumber]/path
559<
Bram Moolenaaradc21822011-04-01 18:03:16 +0200560Windows provides an ftp (typically c:\Windows\System32\ftp.exe) which uses
561an option, -s:filename (filename can and probably should be a full path)
562which contains ftp commands which will be automatically run whenever ftp
563starts. You may use this feature to enter a user and password for one site: >
564 userid
565 password
Bram Moolenaar13600302014-05-22 18:26:40 +0200566< *netrw-windows-netrc* *netrw-windows-s*
567If |g:netrw_ftp_cmd| contains -s:[path/]MACHINE, then (on Windows machines
568only) netrw will substitute the current machine name requested for ftp
569connections for MACHINE. Hence one can have multiple machine.ftp files
570containing login and password for ftp. Example: >
Bram Moolenaaradc21822011-04-01 18:03:16 +0200571
Bram Moolenaarff034192013-04-24 18:51:19 +0200572 let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
573 vim ftp://myhost.somewhere.net/
Bram Moolenaar13600302014-05-22 18:26:40 +0200574
Bram Moolenaaradc21822011-04-01 18:03:16 +0200575will use a file >
Bram Moolenaar13600302014-05-22 18:26:40 +0200576
Bram Moolenaaradc21822011-04-01 18:03:16 +0200577 C:\Users\Myself\myhost.ftp
578<
579Often, ftp will need to query the user for the userid and password.
Bram Moolenaar83bab712005-08-01 21:58:57 +0000580The latter will be done "silently"; ie. asterisks will show up instead of
Bram Moolenaar071d4272004-06-13 20:20:40 +0000581the actually-typed-in password. Netrw will retain the userid and password
582for subsequent read/writes from the most recent transfer so subsequent
583transfers (read/write) to or from that machine will take place without
584additional prompting.
585
586 *netrw-urls*
587 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000588 | Reading | Writing | Uses |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000589 +=================================+============================+============+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000590 | DAV: | | |
591 | dav://host/path | | cadaver |
592 | :Nread dav://host/path | :Nwrite dav://host/path | cadaver |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000593 +---------------------------------+----------------------------+------------+
Bram Moolenaar446cb832008-06-24 21:56:24 +0000594 | DAV + SSL: | | |
595 | davs://host/path | | cadaver |
596 | :Nread davs://host/path | :Nwrite davs://host/path | cadaver |
597 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000598 | FETCH: | | |
599 | fetch://[user@]host/path | | |
600 | fetch://[user@]host:http/path | Not Available | fetch |
601 | :Nread fetch://[user@]host/path| | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000602 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000603 | FILE: | | |
604 | file:///* | file:///* | |
605 | file://localhost/* | file://localhost/* | |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000606 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000607 | FTP: (*3) | (*3) | |
608 | ftp://[user@]host/path | ftp://[user@]host/path | ftp (*2) |
609 | :Nread ftp://host/path | :Nwrite ftp://host/path | ftp+.netrc |
610 | :Nread host path | :Nwrite host path | ftp+.netrc |
611 | :Nread host uid pass path | :Nwrite host uid pass path | ftp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000612 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000613 | HTTP: wget is executable: (*4) | | |
614 | http://[user@]host/path | Not Available | wget |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000615 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000616 | HTTP: fetch is executable (*4) | | |
617 | http://[user@]host/path | Not Available | fetch |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000618 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000619 | RCP: | | |
620 | rcp://[user@]host/path | rcp://[user@]host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000621 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000622 | RSYNC: | | |
623 | rsync://[user@]host/path | rsync://[user@]host/path | rsync |
624 | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync |
625 | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000626 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000627 | SCP: | | |
628 | scp://[user@]host/path | scp://[user@]host/path | scp |
629 | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000630 +---------------------------------+----------------------------+------------+
Bram Moolenaar9964e462007-05-05 17:54:07 +0000631 | SFTP: | | |
632 | sftp://[user@]host/path | sftp://[user@]host/path | sftp |
633 | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) |
Bram Moolenaar071d4272004-06-13 20:20:40 +0000634 +=================================+============================+============+
635
636 (*1) For an absolute path use scp://machine//path.
637
638 (*2) if <.netrc> is present, it is assumed that it will
639 work with your ftp client. Otherwise the script will
Bram Moolenaar9964e462007-05-05 17:54:07 +0000640 prompt for user-id and password.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000641
Bram Moolenaar9964e462007-05-05 17:54:07 +0000642 (*3) for ftp, "machine" may be machine#port or machine:port
Bram Moolenaar071d4272004-06-13 20:20:40 +0000643 if a different port is needed than the standard ftp port
644
645 (*4) for http:..., if wget is available it will be used. Otherwise,
646 if fetch is available it will be used.
647
648Both the :Nread and the :Nwrite ex-commands can accept multiple filenames.
649
650
651NETRC *netrw-netrc*
652
Bram Moolenaar446cb832008-06-24 21:56:24 +0000653The <.netrc> file, typically located in your home directory, contains lines
654therein which map a hostname (machine name) to the user id and password you
655prefer to use with it.
656
Bram Moolenaar071d4272004-06-13 20:20:40 +0000657The typical syntax for lines in a <.netrc> file is given as shown below.
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000658Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000659>
660 machine {full machine name} login {user-id} password "{password}"
661 default login {user-id} password "{password}"
662
663Your ftp client must handle the use of <.netrc> on its own, but if the
664<.netrc> file exists, an ftp transfer will not ask for the user-id or
665password.
666
667 Note:
668 Since this file contains passwords, make very sure nobody else can
669 read this file! Most programs will refuse to use a .netrc that is
670 readable for others. Don't forget that the system administrator can
Bram Moolenaar446cb832008-06-24 21:56:24 +0000671 still read the file! Ie. for Linux/Unix: chmod 600 .netrc
Bram Moolenaar071d4272004-06-13 20:20:40 +0000672
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200673Even though Windows' ftp clients typically do not support .netrc, netrw has
674a work-around: see |netrw-windows-s|.
675
Bram Moolenaar071d4272004-06-13 20:20:40 +0000676
677PASSWORD *netrw-passwd*
678
679The script attempts to get passwords for ftp invisibly using |inputsecret()|,
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200680a built-in Vim function. See |netrw-userpass| for how to change the password
Bram Moolenaar071d4272004-06-13 20:20:40 +0000681after one has set it.
682
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000683Unfortunately there doesn't appear to be a way for netrw to feed a password to
684scp. Thus every transfer via scp will require re-entry of the password.
Bram Moolenaar446cb832008-06-24 21:56:24 +0000685However, |netrw-ssh-hack| can help with this problem.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000686
687
688==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00006895. Activation *netrw-activate* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000690
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000691Network-oriented file transfers are available by default whenever Vim's
Bram Moolenaar446cb832008-06-24 21:56:24 +0000692|'nocompatible'| mode is enabled. Netrw's script files reside in your
693system's plugin, autoload, and syntax directories; just the
694plugin/netrwPlugin.vim script is sourced automatically whenever you bring up
695vim. The main script in autoload/netrw.vim is only loaded when you actually
696use netrw. I suggest that, at a minimum, you have at least the following in
697your <.vimrc> customization file: >
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000698
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000699 set nocp
700 if version >= 600
701 filetype plugin indent on
702 endif
703<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +0100704By also including the following lines in your .vimrc, one may have netrw
705immediately activate when using [g]vim without any filenames, showing the
706current directory: >
707
708 " Augroup VimStartup:
709 augroup VimStartup
710 au!
711 au VimEnter * if expand("%") == "" | e . | endif
712 augroup END
713<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000714
715==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02007166. Transparent Remote File Editing *netrw-transparent* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000717
718Transparent file transfers occur whenever a regular file read or write
Bram Moolenaar446cb832008-06-24 21:56:24 +0000719(invoked via an |:autocmd| for |BufReadCmd|, |BufWriteCmd|, or |SourceCmd|
720events) is made. Thus one may read, write, or source files across networks
721just as easily as if they were local files! >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000722
723 vim ftp://[user@]machine/path
724 ...
725 :wq
726
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000727See |netrw-activate| for more on how to encourage your vim to use plugins
728such as netrw.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000729
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000730
Bram Moolenaar071d4272004-06-13 20:20:40 +0000731==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00007327. Ex Commands *netrw-ex* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +0000733
Bram Moolenaarc01140a2006-03-24 22:21:52 +0000734The usual read/write commands are supported. There are also a few
Bram Moolenaar446cb832008-06-24 21:56:24 +0000735additional commands available. Often you won't need to use Nwrite or
Bram Moolenaar9964e462007-05-05 17:54:07 +0000736Nread as shown in |netrw-transparent| (ie. simply use >
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100737 :e URL
738 :r URL
739 :w URL
Bram Moolenaar9964e462007-05-05 17:54:07 +0000740instead, as appropriate) -- see |netrw-urls|. In the explanations
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100741below, a {netfile} is a URL to a remote file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000742
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200743 *:Nwrite* *:Nw*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000744:[range]Nw[rite] Write the specified lines to the current
Bram Moolenaar071d4272004-06-13 20:20:40 +0000745 file as specified in b:netrw_lastfile.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200746 (related: |netrw-nwrite|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000747
Bram Moolenaar446cb832008-06-24 21:56:24 +0000748:[range]Nw[rite] {netfile} [{netfile}]...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000749 Write the specified lines to the {netfile}.
750
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200751 *:Nread* *:Nr*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100752:Nr[ead] Read the lines from the file specified in b:netrw_lastfile
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200753 into the current buffer. (related: |netrw-nread|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000754
Bram Moolenaar446cb832008-06-24 21:56:24 +0000755:Nr[ead] {netfile} {netfile}...
Bram Moolenaar071d4272004-06-13 20:20:40 +0000756 Read the {netfile} after the current line.
757
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200758 *:Nsource* *:Ns*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000759:Ns[ource] {netfile}
Bram Moolenaar9964e462007-05-05 17:54:07 +0000760 Source the {netfile}.
761 To start up vim using a remote .vimrc, one may use
762 the following (all on one line) (tnx to Antoine Mechelynck) >
763 vim -u NORC -N
764 --cmd "runtime plugin/netrwPlugin.vim"
765 --cmd "source scp://HOSTNAME/.vimrc"
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200766< (related: |netrw-source|)
767
768:call NetUserPass() *NetUserPass()*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000769 If g:netrw_uid and s:netrw_passwd don't exist,
770 this function will query the user for them.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200771 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000772
773:call NetUserPass("userid")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000774 This call will set the g:netrw_uid and, if
Bram Moolenaar071d4272004-06-13 20:20:40 +0000775 the password doesn't exist, will query the user for it.
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200776 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000777
778:call NetUserPass("userid","passwd")
Bram Moolenaar446cb832008-06-24 21:56:24 +0000779 This call will set both the g:netrw_uid and s:netrw_passwd.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000780 The user-id and password are used by ftp transfers. One may
Bram Moolenaar446cb832008-06-24 21:56:24 +0000781 effectively remove the user-id and password by using empty
782 strings (ie. "").
Bram Moolenaar00a927d2010-05-14 23:24:24 +0200783 (related: |netrw-userpass|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000784
Bram Moolenaar9964e462007-05-05 17:54:07 +0000785:NetrwSettings This command is described in |netrw-settings| -- used to
786 display netrw settings and change netrw behavior.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +0000787
Bram Moolenaar071d4272004-06-13 20:20:40 +0000788
789==============================================================================
Bram Moolenaar13600302014-05-22 18:26:40 +02007908. Variables and Options *netrw-var* *netrw-settings* {{{1
Bram Moolenaar446cb832008-06-24 21:56:24 +0000791
Bram Moolenaar15146672011-10-20 22:22:38 +0200792(also see: |netrw-options| |netrw-variables| |netrw-protocol|
Bram Moolenaar5b435d62012-04-05 17:33:26 +0200793 |netrw-browser-settings| |netrw-browser-options| )
Bram Moolenaar071d4272004-06-13 20:20:40 +0000794
Bram Moolenaar9964e462007-05-05 17:54:07 +0000795The <netrw.vim> script provides several variables which act as options to
Bram Moolenaar446cb832008-06-24 21:56:24 +0000796affect <netrw.vim>'s file transfer behavior. These variables typically may be
797set in the user's <.vimrc> file: (see also |netrw-settings| |netrw-protocol|)
Bram Moolenaar15146672011-10-20 22:22:38 +0200798 *netrw-options*
Bram Moolenaar446cb832008-06-24 21:56:24 +0000799>
Bram Moolenaar9964e462007-05-05 17:54:07 +0000800 -------------
801 Netrw Options
802 -------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000803 Option Meaning
804 -------------- -----------------------------------------------
805<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000806 b:netrw_col Holds current cursor position (during NetWrite)
807 g:netrw_cygwin =1 assume scp under windows is from cygwin
808 (default/windows)
809 =0 assume scp under windows accepts windows
810 style paths (default/else)
811 g:netrw_ftp =0 use default ftp (uid password)
812 g:netrw_ftpmode ="binary" (default)
813 ="ascii" (your choice)
814 g:netrw_ignorenetrc =1 (default)
815 if you have a <.netrc> file but you don't
Bram Moolenaar071d4272004-06-13 20:20:40 +0000816 want it used, then set this variable. Its
817 mere existence is enough to cause <.netrc>
818 to be ignored.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000819 b:netrw_lastfile Holds latest method/machine/path.
820 b:netrw_line Holds current line number (during NetWrite)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000821 g:netrw_silent =0 transfers done normally
822 =1 transfers done silently
823 g:netrw_uid Holds current user-id for ftp.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000824 g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default)
825 =1 use WinNT/2K/XP's rcp, binary mode
826 g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc
827 =1 use default method to do ftp >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000828 -----------------------------------------------------------------------
829<
Bram Moolenaar13600302014-05-22 18:26:40 +0200830 *netrw-internal-variables*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000831The script will also make use of the following variables internally, albeit
832temporarily.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000833>
834 -------------------
835 Temporary Variables
836 -------------------
837 Variable Meaning
838 -------- ------------------------------------
839<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100840 b:netrw_method Index indicating rcp/ftp+.netrc/ftp
841 w:netrw_method (same as b:netrw_method)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000842 g:netrw_machine Holds machine name parsed from input
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100843 b:netrw_fname Holds filename being accessed >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000844 ------------------------------------------------------------
845<
Bram Moolenaar446cb832008-06-24 21:56:24 +0000846 *netrw-protocol*
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000847
848Netrw supports a number of protocols. These protocols are invoked using the
849variables listed below, and may be modified by the user.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000850>
851 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000852 Protocol Control Options
Bram Moolenaar071d4272004-06-13 20:20:40 +0000853 ------------------------
Bram Moolenaar9964e462007-05-05 17:54:07 +0000854 Option Type Setting Meaning
855 --------- -------- -------------- ---------------------------
Bram Moolenaar8d043172014-01-23 14:24:41 +0100856< netrw_ftp variable =doesn't exist userid set by "user userid"
Bram Moolenaar9964e462007-05-05 17:54:07 +0000857 =0 userid set by "user userid"
858 =1 userid set by "userid"
859 NetReadFixup function =doesn't exist no change
860 =exists Allows user to have files
861 read via ftp automatically
862 transformed however they wish
863 by NetReadFixup()
Bram Moolenaar8d043172014-01-23 14:24:41 +0100864 g:netrw_dav_cmd var ="cadaver" if cadaver is executable
865 g:netrw_dav_cmd var ="curl -o" elseif curl is executable
866 g:netrw_fetch_cmd var ="fetch -o" if fetch is available
867 g:netrw_ftp_cmd var ="ftp"
868 g:netrw_http_cmd var ="fetch -o" if fetch is available
869 g:netrw_http_cmd var ="wget -O" else if wget is available
870 g:netrw_http_put_cmd var ="curl -T"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100871 |g:netrw_list_cmd| var ="ssh USEPORT HOSTNAME ls -Fa"
Bram Moolenaar8d043172014-01-23 14:24:41 +0100872 g:netrw_rcp_cmd var ="rcp"
Bram Moolenaarb0d45e72017-11-05 18:19:24 +0100873 g:netrw_rsync_cmd var ="rsync"
874 *g:netrw_rsync_sep* var ="/" used to separate the hostname
875 from the file spec
Bram Moolenaar8d043172014-01-23 14:24:41 +0100876 g:netrw_scp_cmd var ="scp -q"
877 g:netrw_sftp_cmd var ="sftp" >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000878 -------------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000879<
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000880 *netrw-ftp*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000881
Bram Moolenaar9964e462007-05-05 17:54:07 +0000882The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|)
883specify the external program to use handle the ftp protocol. They may
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200884include command line options (such as -p for passive mode). Example: >
Bram Moolenaar071d4272004-06-13 20:20:40 +0000885
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +0200886 let g:netrw_ftp_cmd= "ftp -p"
887<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000888Browsing is supported by using the |g:netrw_list_cmd|; the substring
889"HOSTNAME" will be changed via substitution with whatever the current request
890is for a hostname.
891
892Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's
893that give trouble . In order to best understand how to use these options if
894ftp is giving you troubles, a bit of discussion is provided on how netrw does
895ftp reads.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000896
897For ftp, netrw typically builds up lines of one of the following formats in a
Bram Moolenaar071d4272004-06-13 20:20:40 +0000898temporary file:
899>
900 IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1
901 ---------------------------------- ------------------------------
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000902<
Bram Moolenaar9964e462007-05-05 17:54:07 +0000903 open machine [port] open machine [port]
904 user userid password userid password
905 [g:netrw_ftpmode] password
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200906 [g:netrw_ftpextracmd] [g:netrw_ftpmode]
Bram Moolenaar9964e462007-05-05 17:54:07 +0000907 get filename tempfile [g:netrw_extracmd]
908 get filename tempfile >
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000909 ---------------------------------------------------------------------
Bram Moolenaar071d4272004-06-13 20:20:40 +0000910<
Bram Moolenaar8ada2cc2010-07-29 20:43:36 +0200911The |g:netrw_ftpmode| and |g:netrw_ftpextracmd| are optional.
Bram Moolenaar9964e462007-05-05 17:54:07 +0000912
Bram Moolenaar071d4272004-06-13 20:20:40 +0000913Netrw then executes the lines above by use of a filter:
914>
915 :%! {g:netrw_ftp_cmd} -i [-n]
916<
Bram Moolenaar071d4272004-06-13 20:20:40 +0000917where
918 g:netrw_ftp_cmd is usually "ftp",
919 -i tells ftp not to be interactive
920 -n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>)
921
922If <.netrc> exists it will be used to avoid having to query the user for
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000923userid and password. The transferred file is put into a temporary file.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000924The temporary file is then read into the main editing session window that
925requested it and the temporary file deleted.
926
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000927If your ftp doesn't accept the "user" command and immediately just demands a
928userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000929
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +0000930 *netrw-cadaver*
931To handle the SSL certificate dialog for untrusted servers, one may pull
932down the certificate and place it into /usr/ssl/cert.pem. This operation
933renders the server treatment as "trusted".
934
Bram Moolenaar433f7c82006-03-21 21:29:36 +0000935 *netrw-fixup* *netreadfixup*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000936If your ftp for whatever reason generates unwanted lines (such as AUTH
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100937messages) you may write a NetReadFixup() function:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000938>
939 function! NetReadFixup(method,line1,line2)
940 " a:line1: first new line in current file
941 " a:line2: last new line in current file
942 if a:method == 1 "rcp
943 elseif a:method == 2 "ftp + <.netrc>
944 elseif a:method == 3 "ftp + machine,uid,password,filename
945 elseif a:method == 4 "scp
946 elseif a:method == 5 "http/wget
947 elseif a:method == 6 "dav/cadaver
948 elseif a:method == 7 "rsync
949 elseif a:method == 8 "fetch
950 elseif a:method == 9 "sftp
Bram Moolenaar9964e462007-05-05 17:54:07 +0000951 else " complain
Bram Moolenaar071d4272004-06-13 20:20:40 +0000952 endif
953 endfunction
954>
Bram Moolenaar1afcace2005-11-25 19:54:28 +0000955The NetReadFixup() function will be called if it exists and thus allows you to
956customize your reading process. As a further example, <netrw.vim> contains
957just such a function to handle Windows 95 ftp. For whatever reason, Windows
95895's ftp dumps four blank lines at the end of a transfer, and so it is
959desirable to automate their removal. Here's some code taken from <netrw.vim>
960itself:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000961>
962 if has("win95") && g:netrw_win95ftp
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000963 fun! NetReadFixup(method, line1, line2)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000964 if method == 3 " ftp (no <.netrc>)
Bram Moolenaar9964e462007-05-05 17:54:07 +0000965 let fourblanklines= line2 - 3
966 silent fourblanklines.",".line2."g/^\s*/d"
Bram Moolenaar071d4272004-06-13 20:20:40 +0000967 endif
968 endfunction
969 endif
970>
Bram Moolenaare6ae6222013-05-21 21:01:10 +0200971(Related topics: |ftp| |netrw-userpass| |netrw-start|)
Bram Moolenaar071d4272004-06-13 20:20:40 +0000972
973==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00009749. Browsing *netrw-browsing* *netrw-browse* *netrw-help* {{{1
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100975 *netrw-browser* *netrw-dir* *netrw-list*
Bram Moolenaar83bab712005-08-01 21:58:57 +0000976
Bram Moolenaar446cb832008-06-24 21:56:24 +0000977INTRODUCTION TO BROWSING *netrw-intro-browse* {{{2
978 (Quick References: |netrw-quickmaps| |netrw-quickcoms|)
Bram Moolenaar83bab712005-08-01 21:58:57 +0000979
Bram Moolenaar446cb832008-06-24 21:56:24 +0000980Netrw supports the browsing of directories on your local system and on remote
981hosts; browsing includes listing files and directories, entering directories,
982editing files therein, deleting files/directories, making new directories,
983moving (renaming) files and directories, copying files and directories, etc.
984One may mark files and execute any system command on them! The Netrw browser
985generally implements the previous explorer's maps and commands for remote
986directories, although details (such as pertinent global variable names)
987necessarily differ. To browse a directory, simply "edit" it! >
Bram Moolenaar269ec652004-07-29 08:43:53 +0000988
Bram Moolenaar446cb832008-06-24 21:56:24 +0000989 vim /your/directory/
990 vim .
991 vim c:\your\directory\
992<
993(Related topics: |netrw-cr| |netrw-o| |netrw-p| |netrw-P| |netrw-t|
994 |netrw-mf| |netrw-mx| |netrw-D| |netrw-R| |netrw-v| )
Bram Moolenaard4755bb2004-09-02 19:12:26 +0000995
996The Netrw remote file and directory browser handles two protocols: ssh and
Bram Moolenaar446cb832008-06-24 21:56:24 +0000997ftp. The protocol in the url, if it is ftp, will cause netrw also to use ftp
998in its remote browsing. Specifying any other protocol will cause it to be
999used for file transfers; but the ssh protocol will be used to do remote
1000browsing.
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001001
Bram Moolenaar446cb832008-06-24 21:56:24 +00001002To use Netrw's remote directory browser, simply attempt to read a "file" with
1003a trailing slash and it will be interpreted as a request to list a directory:
1004>
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001005 vim [protocol]://[user@]hostname/path/
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +00001006<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001007where [protocol] is typically scp or ftp. As an example, try: >
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +00001008
Bram Moolenaar446cb832008-06-24 21:56:24 +00001009 vim ftp://ftp.home.vim.org/pub/vim/
1010<
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001011For local directories, the trailing slash is not required. Again, because it's
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001012easy to miss: to browse remote directories, the URL must terminate with a
Bram Moolenaar446cb832008-06-24 21:56:24 +00001013slash!
Bram Moolenaar83bab712005-08-01 21:58:57 +00001014
Bram Moolenaar446cb832008-06-24 21:56:24 +00001015If you'd like to avoid entering the password repeatedly for remote directory
1016listings with ssh or scp, see |netrw-ssh-hack|. To avoid password entry with
1017ftp, see |netrw-netrc| (if your ftp supports it).
Bram Moolenaar83bab712005-08-01 21:58:57 +00001018
Bram Moolenaar446cb832008-06-24 21:56:24 +00001019There are several things you can do to affect the browser's display of files:
Bram Moolenaar83bab712005-08-01 21:58:57 +00001020
Bram Moolenaar446cb832008-06-24 21:56:24 +00001021 * To change the listing style, press the "i" key (|netrw-i|).
1022 Currently there are four styles: thin, long, wide, and tree.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001023 To make that change "permanent", see |g:netrw_liststyle|.
Bram Moolenaar83bab712005-08-01 21:58:57 +00001024
Bram Moolenaar446cb832008-06-24 21:56:24 +00001025 * To hide files (don't want to see those xyz~ files anymore?) see
1026 |netrw-ctrl-h|.
Bram Moolenaar83bab712005-08-01 21:58:57 +00001027
Bram Moolenaar446cb832008-06-24 21:56:24 +00001028 * Press s to sort files by name, time, or size.
1029
1030See |netrw-browse-cmds| for all the things you can do with netrw!
1031
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001032 *netrw-getftype* *netrw-filigree* *netrw-ftype*
1033The |getftype()| function is used to append a bit of filigree to indicate
1034filetype to locally listed files:
1035
1036 directory : /
1037 executable : *
1038 fifo : |
1039 links : @
1040 sockets : =
1041
1042The filigree also affects the |g:netrw_sort_sequence|.
1043
Bram Moolenaar446cb832008-06-24 21:56:24 +00001044
1045QUICK HELP *netrw-quickhelp* {{{2
1046 (Use ctrl-] to select a topic)~
1047 Intro to Browsing...............................|netrw-intro-browse|
1048 Quick Reference: Maps.........................|netrw-quickmap|
1049 Quick Reference: Commands.....................|netrw-browse-cmds|
1050 Hiding
1051 Edit hiding list..............................|netrw-ctrl-h|
1052 Hiding Files or Directories...................|netrw-a|
1053 Hiding/Unhiding by suffix.....................|netrw-mh|
1054 Hiding dot-files.............................|netrw-gh|
1055 Listing Style
1056 Select listing style (thin/long/wide/tree)....|netrw-i|
1057 Associated setting variable...................|g:netrw_liststyle|
1058 Shell command used to perform listing.........|g:netrw_list_cmd|
1059 Quick file info...............................|netrw-qf|
1060 Sorted by
1061 Select sorting style (name/time/size).........|netrw-s|
1062 Editing the sorting sequence..................|netrw-S|
Bram Moolenaarc236c162008-07-13 17:41:49 +00001063 Sorting options...............................|g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001064 Associated setting variable...................|g:netrw_sort_sequence|
1065 Reverse sorting order.........................|netrw-r|
1066
1067
1068 *netrw-quickmap* *netrw-quickmaps*
1069QUICK REFERENCE: MAPS *netrw-browse-maps* {{{2
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001070>
Bram Moolenaar446cb832008-06-24 21:56:24 +00001071 --- ----------------- ----
1072 Map Quick Explanation Link
1073 --- ----------------- ----
1074< <F1> Causes Netrw to issue help
1075 <cr> Netrw will enter the directory or read the file |netrw-cr|
1076 <del> Netrw will attempt to remove the file/directory |netrw-del|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001077 <c-h> Edit file hiding list |netrw-ctrl-h|
1078 <c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l|
1079 <c-r> Browse using a gvim server |netrw-ctrl-r|
1080 <c-tab> Shrink/expand a netrw/explore window |netrw-c-tab|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001081 - Makes Netrw go up one directory |netrw--|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001082 a Cycles between normal display, |netrw-a|
Bram Moolenaar13600302014-05-22 18:26:40 +02001083 hiding (suppress display of files matching g:netrw_list_hide)
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001084 and showing (display only files which match g:netrw_list_hide)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001085 c Make browsing directory the current directory |netrw-c|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001086 C Setting the editing window |netrw-C|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001087 d Make a directory |netrw-d|
1088 D Attempt to remove the file(s)/directory(ies) |netrw-D|
1089 gb Go to previous bookmarked directory |netrw-gb|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001090 gd Force treatment as directory |netrw-gd|
1091 gf Force treatment as file |netrw-gf|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001092 gh Quick hide/unhide of dot-files |netrw-gh|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001093 gn Make top of tree the directory below the cursor |netrw-gn|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001094 i Cycle between thin, long, wide, and tree listings |netrw-i|
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001095 I Toggle the displaying of the banner |netrw-I|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001096 mb Bookmark current directory |netrw-mb|
1097 mc Copy marked files to marked-file target directory |netrw-mc|
1098 md Apply diff to marked files (up to 3) |netrw-md|
1099 me Place marked files on arg list and edit them |netrw-me|
1100 mf Mark a file |netrw-mf|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001101 mF Unmark files |netrw-mF|
1102 mg Apply vimgrep to marked files |netrw-mg|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001103 mh Toggle marked file suffices' presence on hiding list |netrw-mh|
1104 mm Move marked files to marked-file target directory |netrw-mm|
1105 mp Print marked files |netrw-mp|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001106 mr Mark files using a shell-style |regexp| |netrw-mr|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001107 mt Current browsing directory becomes markfile target |netrw-mt|
1108 mT Apply ctags to marked files |netrw-mT|
1109 mu Unmark all marked files |netrw-mu|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001110 mv Apply arbitrary vim command to marked files |netrw-mv|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001111 mx Apply arbitrary shell command to marked files |netrw-mx|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001112 mX Apply arbitrary shell command to marked files en bloc|netrw-mX|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001113 mz Compress/decompress marked files |netrw-mz|
1114 o Enter the file/directory under the cursor in a new |netrw-o|
Bram Moolenaar13600302014-05-22 18:26:40 +02001115 browser window. A horizontal split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001116 O Obtain a file specified by cursor |netrw-O|
1117 p Preview the file |netrw-p|
1118 P Browse in the previously used window |netrw-P|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001119 qb List bookmarked directories and history |netrw-qb|
1120 qf Display information on file |netrw-qf|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001121 qF Mark files using a quickfix list |netrw-qF|
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001122 qL Mark files using a |location-list| |netrw-qL|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001123 r Reverse sorting order |netrw-r|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001124 R Rename the designated file(s)/directory(ies) |netrw-R|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001125 s Select sorting style: by name, time, or file size |netrw-s|
1126 S Specify suffix priority for name-sorting |netrw-S|
1127 t Enter the file/directory under the cursor in a new tab|netrw-t|
1128 u Change to recently-visited directory |netrw-u|
1129 U Change to subsequently-visited directory |netrw-U|
1130 v Enter the file/directory under the cursor in a new |netrw-v|
Bram Moolenaar13600302014-05-22 18:26:40 +02001131 browser window. A vertical split is used.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001132 x View file with an associated program |netrw-x|
Bram Moolenaar97d62492012-11-15 21:28:22 +01001133 X Execute filename under cursor via |system()| |netrw-X|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001134
Bram Moolenaarc236c162008-07-13 17:41:49 +00001135 % Open a new file in netrw's current directory |netrw-%|
1136
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001137 *netrw-mouse* *netrw-leftmouse* *netrw-middlemouse* *netrw-rightmouse*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001138 <leftmouse> (gvim only) selects word under mouse as if a <cr>
1139 had been pressed (ie. edit file, change directory)
1140 <middlemouse> (gvim only) same as P selecting word under mouse;
1141 see |netrw-P|
1142 <rightmouse> (gvim only) delete file/directory using word under
1143 mouse
1144 <2-leftmouse> (gvim only) when:
Bram Moolenaar13600302014-05-22 18:26:40 +02001145 * in a netrw-selected file, AND
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001146 * |g:netrw_retmap| == 1 AND
Bram Moolenaar13600302014-05-22 18:26:40 +02001147 * the user doesn't already have a <2-leftmouse>
Bram Moolenaarff034192013-04-24 18:51:19 +02001148 mapping defined before netrw is autoloaded,
Bram Moolenaar446cb832008-06-24 21:56:24 +00001149 then a double clicked leftmouse button will return
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001150 to the netrw browser window. See |g:netrw_retmap|.
Bram Moolenaar8d043172014-01-23 14:24:41 +01001151 <s-leftmouse> (gvim only) like mf, will mark files. Dragging
1152 the shifted leftmouse will mark multiple files.
1153 (see |netrw-mf|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001154
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001155 (to disable mouse buttons while browsing: |g:netrw_mousemaps|)
1156
Bram Moolenaar446cb832008-06-24 21:56:24 +00001157 *netrw-quickcom* *netrw-quickcoms*
1158QUICK REFERENCE: COMMANDS *netrw-explore-cmds* *netrw-browse-cmds* {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01001159 :NetrwClean[!]............................................|netrw-clean|
1160 :NetrwSettings............................................|netrw-settings|
1161 :Ntree....................................................|netrw-ntree|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001162 :Explore[!] [dir] Explore directory of current file......|netrw-explore|
1163 :Hexplore[!] [dir] Horizontal Split & Explore.............|netrw-explore|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001164 :Lexplore[!] [dir] Left Explorer Toggle...................|netrw-explore|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001165 :Nexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1166 :Pexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1167 :Rexplore Return to Explorer.....................|netrw-explore|
1168 :Sexplore[!] [dir] Split & Explore directory .............|netrw-explore|
1169 :Texplore[!] [dir] Tab & Explore..........................|netrw-explore|
1170 :Vexplore[!] [dir] Vertical Split & Explore...............|netrw-explore|
1171
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001172
1173BANNER DISPLAY *netrw-I*
1174
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001175One may toggle the displaying of the banner by pressing "I".
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001176
1177Also See: |g:netrw_banner|
1178
1179
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001180BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001181
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001182One may easily "bookmark" the currently browsed directory by using >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001183
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001184 mb
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00001185<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001186 *.netrwbook*
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001187Bookmarks are retained in between sessions of vim in a file called .netrwbook
1188as a |List|, which is typically stored in the first directory on the user's
1189'|runtimepath|'; entries are kept in sorted order.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001190
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001191If there are marked files and/or directories, mb will add them to the bookmark
1192list.
1193
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001194 *netrw-:NetrwMB*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001195Addtionally, one may use :NetrwMB to bookmark files or directories. >
1196
1197 :NetrwMB[!] [files/directories]
1198
1199< No bang: enters files/directories into Netrw's bookmark system
1200
1201 No argument and in netrw buffer:
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001202 if there are marked files : bookmark marked files
1203 otherwise : bookmark file/directory under cursor
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001204 No argument and not in netrw buffer: bookmarks current open file
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001205 Has arguments : |glob()|s each arg and bookmarks them
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001206
1207 With bang: deletes files/directories from Netrw's bookmark system
1208
1209The :NetrwMB command is available outside of netrw buffers (once netrw has been
1210invoked in the session).
1211
1212The file ".netrwbook" holds bookmarks when netrw (and vim) is not active. By
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001213default, its stored on the first directory on the user's |'runtimepath'|.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001214
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001215Related Topics:
1216 |netrw-gb| how to return (go) to a bookmark
1217 |netrw-mB| how to delete bookmarks
1218 |netrw-qb| how to list bookmarks
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001219 |g:netrw_home| controls where .netrwbook is kept
Bram Moolenaar4a85b412006-04-23 22:40:29 +00001220
1221
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001222BROWSING *netrw-enter* *netrw-cr* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001223
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00001224Browsing is simple: move the cursor onto a file or directory of interest.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001225Hitting the <cr> (the return key) will select the file or directory.
1226Directories will themselves be listed, and files will be opened using the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001227protocol given in the original read request.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001228
Bram Moolenaar446cb832008-06-24 21:56:24 +00001229 CAVEAT: There are four forms of listing (see |netrw-i|). Netrw assumes that
1230 two or more spaces delimit filenames and directory names for the long and
1231 wide listing formats. Thus, if your filename or directory name has two or
1232 more sequential spaces embedded in it, or any trailing spaces, then you'll
1233 need to use the "thin" format to select it.
Bram Moolenaar843ee412004-06-30 16:16:41 +00001234
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001235The |g:netrw_browse_split| option, which is zero by default, may be used to
Bram Moolenaar446cb832008-06-24 21:56:24 +00001236cause the opening of files to be done in a new window or tab instead of the
1237default. When the option is one or two, the splitting will be taken
1238horizontally or vertically, respectively. When the option is set to three, a
1239<cr> will cause the file to appear in a new tab.
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001240
Bram Moolenaar83bab712005-08-01 21:58:57 +00001241
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001242When using the gui (gvim), one may select a file by pressing the <leftmouse>
1243button. In addition, if
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001244
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001245 * |g:netrw_retmap| == 1 AND (its default value is 0)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001246 * in a netrw-selected file, AND
1247 * the user doesn't already have a <2-leftmouse> mapping defined before
1248 netrw is loaded
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001249
Bram Moolenaar446cb832008-06-24 21:56:24 +00001250then a doubly-clicked leftmouse button will return to the netrw browser
1251window.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001252
Bram Moolenaar446cb832008-06-24 21:56:24 +00001253Netrw attempts to speed up browsing, especially for remote browsing where one
1254may have to enter passwords, by keeping and re-using previously obtained
1255directory listing buffers. The |g:netrw_fastbrowse| variable is used to
1256control this behavior; one may have slow browsing (no buffer re-use), medium
1257speed browsing (re-use directory buffer listings only for remote directories),
1258and fast browsing (re-use directory buffer listings as often as possible).
1259The price for such re-use is that when changes are made (such as new files
1260are introduced into a directory), the listing may become out-of-date. One may
1261always refresh directory listing buffers by pressing ctrl-L (see
1262|netrw-ctrl-l|).
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001263
1264 *netrw-s-cr*
1265Squeezing the Current Tree-Listing Directory~
1266
1267When the tree listing style is enabled (see |netrw-i|) and one is using
1268gvim, then the <s-cr> mapping may be used to squeeze (close) the
1269directory currently containing the cursor.
1270
1271Otherwise, one may remap a key combination of one's own choice to get
1272this effect: >
1273
1274 nmap <buffer> <silent> <nowait> YOURKEYCOMBO <Plug>NetrwTreeSqueeze
1275<
1276Put this line in $HOME/ftplugin/netrw/netrw.vim; it needs to be generated
1277for netrw buffers only.
Bram Moolenaara6878372014-03-22 21:02:50 +01001278
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001279Related topics:
1280 |netrw-ctrl-r| |netrw-o| |netrw-p|
1281 |netrw-P| |netrw-t| |netrw-v|
1282Associated setting variables:
1283 |g:netrw_browse_split| |g:netrw_fastbrowse|
1284 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1285 |g:netrw_ftp_timelist_cmd| |g:netrw_ssh_browse_reject|
1286 |g:netrw_ssh_cmd| |g:netrw_use_noswf|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001287
1288
1289BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz* {{{2
1290
1291Normally one enters a file or directory using the <cr>. However, the "o" map
1292allows one to open a new window to hold the new directory listing or file. A
1293horizontal split is used. (for vertical splitting, see |netrw-v|)
1294
1295Normally, the o key splits the window horizontally with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001296cursor at the top.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001297
1298Associated setting variables: |g:netrw_alto| |g:netrw_winsize|
1299
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001300Related topics:
1301 |netrw-ctrl-r| |netrw-o| |netrw-p|
1302 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001303Associated setting variables:
1304 |g:netrw_alto| control above/below splitting
1305 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001306
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001307BROWSING WITH A NEW TAB *netrw-t* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001308
1309Normally one enters a file or directory using the <cr>. The "t" map
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001310allows one to open a new window holding the new directory listing or file in
Bram Moolenaarff034192013-04-24 18:51:19 +02001311a new tab.
1312
1313If you'd like to have the new listing in a background tab, use |gT|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001314
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001315Related topics:
1316 |netrw-ctrl-r| |netrw-o| |netrw-p|
1317 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001318Associated setting variables:
1319 |g:netrw_winsize| control initial sizing
Bram Moolenaar446cb832008-06-24 21:56:24 +00001320
1321BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* {{{2
1322
1323Normally one enters a file or directory using the <cr>. However, the "v" map
1324allows one to open a new window to hold the new directory listing or file. A
1325vertical split is used. (for horizontal splitting, see |netrw-o|)
1326
1327Normally, the v key splits the window vertically with the new window and
Bram Moolenaar15146672011-10-20 22:22:38 +02001328cursor at the left.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001329
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001330There is only one tree listing buffer; using "v" on a displayed subdirectory
Bram Moolenaar446cb832008-06-24 21:56:24 +00001331will split the screen, but the same buffer will be shown twice.
1332
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001333Related topics:
1334 |netrw-ctrl-r| |netrw-o| |netrw-p|
1335 |netrw-P| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02001336Associated setting variables:
1337 |g:netrw_altv| control right/left splitting
1338 |g:netrw_winsize| control initial sizing
1339
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001340
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001341BROWSING USING A GVIM SERVER *netrw-ctrl-r* {{{2
1342
1343One may keep a browsing gvim separate from the gvim being used to edit.
1344Use the <c-r> map on a file (not a directory) in the netrw browser, and it
1345will use a gvim server (see |g:netrw_servername|). Subsequent use of <cr>
1346(see |netrw-cr|) will re-use that server for editing files.
1347
1348Related topics:
1349 |netrw-ctrl-r| |netrw-o| |netrw-p|
1350 |netrw-P| |netrw-t| |netrw-v|
1351Associated setting variables:
1352 |g:netrw_servername| : sets name of server
1353 |g:netrw_browse_split| : controls how <cr> will open files
1354
1355
1356CHANGE LISTING STYLE (THIN LONG WIDE TREE) *netrw-i* {{{2
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001357
Bram Moolenaar9964e462007-05-05 17:54:07 +00001358The "i" map cycles between the thin, long, wide, and tree listing formats.
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001359
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001360The thin listing format gives just the files' and directories' names.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001361
Bram Moolenaar8299df92004-07-10 09:47:34 +00001362The long listing is either based on the "ls" command via ssh for remote
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001363directories or displays the filename, file size (in bytes), and the time and
1364date of last modification for local directories. With the long listing
1365format, netrw is not able to recognize filenames which have trailing spaces.
1366Use the thin listing format for such files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001367
Bram Moolenaar9964e462007-05-05 17:54:07 +00001368The wide listing format uses two or more contiguous spaces to delineate
1369filenames; when using that format, netrw won't be able to recognize or use
1370filenames which have two or more contiguous spaces embedded in the name or any
1371trailing spaces. The thin listing format will, however, work with such files.
Bram Moolenaar13600302014-05-22 18:26:40 +02001372The wide listing format is the most compact.
Bram Moolenaar9964e462007-05-05 17:54:07 +00001373
1374The tree listing format has a top directory followed by files and directories
Bram Moolenaar13600302014-05-22 18:26:40 +02001375preceded by one or more "|"s, which indicate the directory depth. One may
1376open and close directories by pressing the <cr> key while atop the directory
1377name.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001378
1379One may make a preferred listing style your default; see |g:netrw_liststyle|.
1380As an example, by putting the following line in your .vimrc, >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001381 let g:netrw_liststyle= 3
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001382the tree style will become your default listing style.
Bram Moolenaar8299df92004-07-10 09:47:34 +00001383
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001384One typical way to use the netrw tree display is to: >
1385
1386 vim .
1387 (use i until a tree display shows)
1388 navigate to a file
1389 v (edit as desired in vertically split window)
1390 ctrl-w h (to return to the netrw listing)
1391 P (edit newly selected file in the previous window)
1392 ctrl-w h (to return to the netrw listing)
1393 P (edit newly selected file in the previous window)
1394 ...etc...
1395<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001396Associated setting variables: |g:netrw_liststyle| |g:netrw_maxfilenamelen|
1397 |g:netrw_timefmt| |g:netrw_list_cmd|
Bram Moolenaar8299df92004-07-10 09:47:34 +00001398
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001399CHANGE FILE PERMISSION *netrw-gp* {{{2
1400
1401"gp" will ask you for a new permission for the file named under the cursor.
1402Currently, this only works for local files.
1403
1404Associated setting variables: |g:netrw_chgperm|
1405
Bram Moolenaar83bab712005-08-01 21:58:57 +00001406
Bram Moolenaar446cb832008-06-24 21:56:24 +00001407CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* {{{2
Bram Moolenaar843ee412004-06-30 16:16:41 +00001408
Bram Moolenaar446cb832008-06-24 21:56:24 +00001409To change directory back to a bookmarked directory, use
Bram Moolenaar843ee412004-06-30 16:16:41 +00001410
Bram Moolenaar446cb832008-06-24 21:56:24 +00001411 {cnt}gb
Bram Moolenaar843ee412004-06-30 16:16:41 +00001412
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001413Any count may be used to reference any of the bookmarks.
Bram Moolenaarff034192013-04-24 18:51:19 +02001414Note that |netrw-qb| shows both bookmarks and history; to go
1415to a location stored in the history see |netrw-u| and |netrw-U|.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001416
1417Related Topics:
1418 |netrw-mB| how to delete bookmarks
1419 |netrw-mb| how to make a bookmark
1420 |netrw-qb| how to list bookmarks
Bram Moolenaar843ee412004-06-30 16:16:41 +00001421
Bram Moolenaar843ee412004-06-30 16:16:41 +00001422
Bram Moolenaar00a927d2010-05-14 23:24:24 +02001423CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001424
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001425Every time you change to a new directory (new for the current session), netrw
1426will save the directory in a recently-visited directory history list (unless
1427|g:netrw_dirhistmax| is zero; by default, it holds ten entries). With the "u"
1428map, one can change to an earlier directory (predecessor). To do the
1429opposite, see |netrw-U|.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001430
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001431The "u" map also accepts counts to go back in the history several slots. For
1432your convenience, qb (see |netrw-qb|) lists the history number which may be
1433used in that count.
Bram Moolenaarff034192013-04-24 18:51:19 +02001434
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001435 *.netrwhist*
Bram Moolenaarff034192013-04-24 18:51:19 +02001436See |g:netrw_dirhistmax| for how to control the quantity of history stack
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001437slots. The file ".netrwhist" holds history when netrw (and vim) is not
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001438active. By default, its stored on the first directory on the user's
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001439|'runtimepath'|.
1440
1441Related Topics:
1442 |netrw-U| changing to a successor directory
1443 |g:netrw_home| controls where .netrwhist is kept
Bram Moolenaarff034192013-04-24 18:51:19 +02001444
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001445
Bram Moolenaar446cb832008-06-24 21:56:24 +00001446CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir* {{{2
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001447
1448With the "U" map, one can change to a later directory (successor).
1449This map is the opposite of the "u" map. (see |netrw-u|) Use the
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001450qb map to list both the bookmarks and history. (see |netrw-qb|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001451
Bram Moolenaarff034192013-04-24 18:51:19 +02001452The "U" map also accepts counts to go forward in the history several slots.
1453
1454See |g:netrw_dirhistmax| for how to control the quantity of history stack
1455slots.
1456
Bram Moolenaar446cb832008-06-24 21:56:24 +00001457
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001458CHANGING TREE TOP *netrw-ntree* *:Ntree* *netrw-gn* {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01001459
1460One may specify a new tree top for tree listings using >
1461
1462 :Ntree [dirname]
1463
1464Without a "dirname", the current line is used (and any leading depth
1465information is elided).
1466With a "dirname", the specified directory name is used.
1467
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001468The "gn" map will take the word below the cursor and use that for
1469changing the top of the tree listing.
1470
Bram Moolenaar8d043172014-01-23 14:24:41 +01001471
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001472NETRW CLEAN *netrw-clean* *:NetrwClean* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001473
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001474With :NetrwClean one may easily remove netrw from one's home directory;
Bram Moolenaar446cb832008-06-24 21:56:24 +00001475more precisely, from the first directory on your |'runtimepath'|.
1476
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001477With :NetrwClean!, netrw will attempt to remove netrw from all directories on
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001478your |'runtimepath'|. Of course, you have to have write/delete permissions
1479correct to do this.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001480
1481With either form of the command, netrw will first ask for confirmation
1482that the removal is in fact what you want to do. If netrw doesn't have
1483permission to remove a file, it will issue an error message.
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00001484
Bram Moolenaar9964e462007-05-05 17:54:07 +00001485 *netrw-gx*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001486CUSTOMIZING BROWSING WITH A SPECIAL HANDLER *netrw-x* *netrw-handler* {{{2
Bram Moolenaar9964e462007-05-05 17:54:07 +00001487 (also see |netrw_filehandler|)
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001488
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001489Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001490best seen with a special handler (ie. a tool provided with your computer's
1491operating system). Netrw allows one to invoke such special handlers by: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001492
1493 * when Exploring, hit the "x" key
1494 * when editing, hit gx with the cursor atop the special filename
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001495< (latter not available if the |g:netrw_nogx| variable exists)
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001496
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001497Netrw determines which special handler by the following method:
1498
1499 * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to
1500 view files. Examples of useful settings (place into your <.vimrc>): >
1501
1502 :let g:netrw_browsex_viewer= "kfmclient exec"
1503< or >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001504 :let g:netrw_browsex_viewer= "xdg-open"
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001505<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001506 If g:netrw_browsex_viewer == '-', then netrwFileHandlers#Invoke() will be
1507 used instead (see |netrw_filehandler|).
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001508
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001509 * for Windows 32 or 64, the URL and FileProtocolHandler dlls are used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001510 * for Gnome (with gnome-open): gnome-open is used.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001511 * for KDE (with kfmclient) : kfmclient is used
Bram Moolenaar446cb832008-06-24 21:56:24 +00001512 * for Mac OS X : open is used.
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001513 * otherwise the netrwFileHandler plugin is used.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001514
1515The file's suffix is used by these various approaches to determine an
Bram Moolenaar1afcace2005-11-25 19:54:28 +00001516appropriate application to use to "handle" these files. Such things as
1517OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps,
1518*.eps) can be handled.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001519
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001520The gx mapping extends to all buffers; apply "gx" while atop a word and netrw
1521will apply a special handler to it (like "x" works when in a netrw buffer).
1522One may also use visual mode (see |visual-start|) to select the text that the
1523special handler will use. Normally gx uses expand("<cfile>") to pick up the
1524text under the cursor; one may change what |expand()| uses via the
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001525|g:netrw_gx| variable (options include "<cword>", "<cWORD>"). Note that
1526expand("<cfile>") depends on the |'isfname'| setting. Alternatively, one may
1527select the text to be used by gx by making a visual selection (see
1528|visual-block|) and then pressing gx.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001529
1530Associated setting variables:
1531 |g:netrw_gx| control how gx picks up the text under the cursor
1532 |g:netrw_nogx| prevent gx map while editing
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02001533 |g:netrw_suppress_gx_mesg| controls gx's suppression of browser messages
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001534
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001535 *netrw_filehandler*
Bram Moolenaar9964e462007-05-05 17:54:07 +00001536
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001537When |g:netrw_browsex_viewer| exists and is "-", then netrw will attempt to
1538handle the special file with a vim function. The "x" map applies a function
1539to a file, based on its extension. Of course, the handler function must exist
1540for it to be called!
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001541>
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001542 Ex. mypgm.html x -> NFH_html("scp://user@host/some/path/mypgm.html")
1543
1544< Users may write their own netrw File Handler functions to
1545 support more suffixes with special handling. See
1546 <autoload/netrwFileHandlers.vim> for examples on how to make
1547 file handler functions. As an example: >
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001548
Bram Moolenaar9964e462007-05-05 17:54:07 +00001549 " NFH_suffix(filename)
1550 fun! NFH_suffix(filename)
1551 ..do something special with filename..
1552 endfun
1553<
1554These functions need to be defined in some file in your .vim/plugin
1555(vimfiles\plugin) directory. Vim's function names may not have punctuation
1556characters (except for the underscore) in them. To support suffices that
1557contain such characters, netrw will first convert the suffix using the
1558following table: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001559
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001560 @ -> AT ! -> EXCLAMATION % -> PERCENT
1561 : -> COLON = -> EQUAL ? -> QUESTION
Bram Moolenaar9964e462007-05-05 17:54:07 +00001562 , -> COMMA - -> MINUS ; -> SEMICOLON
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001563 $ -> DOLLAR + -> PLUS ~ -> TILDE
1564<
Bram Moolenaar9964e462007-05-05 17:54:07 +00001565So, for example: >
Bram Moolenaarafeb4fa2006-02-01 21:51:12 +00001566
Bram Moolenaar9964e462007-05-05 17:54:07 +00001567 file.rcs,v -> NFH_rcsCOMMAv()
1568<
1569If more such translations are necessary, please send me email: >
1570 NdrOchip at ScampbellPfamily.AbizM - NOSPAM
1571with a request.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00001572
Bram Moolenaar446cb832008-06-24 21:56:24 +00001573Associated setting variable: |g:netrw_browsex_viewer|
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001574
Bram Moolenaar446cb832008-06-24 21:56:24 +00001575 *netrw-curdir*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001576DELETING BOOKMARKS *netrw-mB* {{{2
1577
1578To delete a bookmark, use >
1579
1580 {cnt}mB
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001581
1582If there are marked files, then mB will remove them from the
1583bookmark list.
1584
1585Alternatively, one may use :NetrwMB! (see |netrw-:NetrwMB|). >
1586
1587 :NetrwMB! [files/directories]
1588
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001589Related Topics:
1590 |netrw-gb| how to return (go) to a bookmark
1591 |netrw-mb| how to make a bookmark
1592 |netrw-qb| how to list bookmarks
1593
1594
Bram Moolenaar446cb832008-06-24 21:56:24 +00001595DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001596
Bram Moolenaar446cb832008-06-24 21:56:24 +00001597If files have not been marked with |netrw-mf|: (local marked file list)
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00001598
Bram Moolenaar446cb832008-06-24 21:56:24 +00001599 Deleting/removing files and directories involves moving the cursor to the
1600 file/directory to be deleted and pressing "D". Directories must be empty
1601 first before they can be successfully removed. If the directory is a
1602 softlink to a directory, then netrw will make two requests to remove the
1603 directory before succeeding. Netrw will ask for confirmation before doing
1604 the removal(s). You may select a range of lines with the "V" command
1605 (visual selection), and then pressing "D".
Bram Moolenaar9964e462007-05-05 17:54:07 +00001606
Bram Moolenaar446cb832008-06-24 21:56:24 +00001607If files have been marked with |netrw-mf|: (local marked file list)
1608
1609 Marked files (and empty directories) will be deleted; again, you'll be
1610 asked to confirm the deletion before it actually takes place.
1611
Bram Moolenaar13600302014-05-22 18:26:40 +02001612A further approach is to delete files which match a pattern.
1613
1614 * use :MF pattern (see |netrw-:MF|); then press "D".
1615
1616 * use mr (see |netrw-mr|) which will prompt you for pattern.
1617 This will cause the matching files to be marked. Then,
1618 press "D".
1619
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001620If your vim has 7.4 with patch#1107, then |g:netrw_localrmdir| no longer
1621is used to remove directories; instead, vim's |delete()| is used with
1622the "d" option. Please note that only empty directories may be deleted
1623with the "D" mapping. Regular files are deleted with |delete()|, too.
1624
Bram Moolenaar446cb832008-06-24 21:56:24 +00001625The |g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, and |g:netrw_rmdir_cmd| variables are
Bram Moolenaar13600302014-05-22 18:26:40 +02001626used to control the attempts to remove remote files and directories. The
Bram Moolenaar446cb832008-06-24 21:56:24 +00001627g:netrw_rm_cmd is used with files, and its default value is:
1628
1629 g:netrw_rm_cmd: ssh HOSTNAME rm
1630
1631The g:netrw_rmdir_cmd variable is used to support the removal of directories.
1632Its default value is:
1633
Bram Moolenaar13600302014-05-22 18:26:40 +02001634 |g:netrw_rmdir_cmd|: ssh HOSTNAME rmdir
Bram Moolenaar446cb832008-06-24 21:56:24 +00001635
1636If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
1637to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
1638
Bram Moolenaar13600302014-05-22 18:26:40 +02001639 |g:netrw_rmf_cmd|: ssh HOSTNAME rm -f
Bram Moolenaar446cb832008-06-24 21:56:24 +00001640
Bram Moolenaar15146672011-10-20 22:22:38 +02001641Related topics: |netrw-d|
Bram Moolenaar5b435d62012-04-05 17:33:26 +02001642Associated setting variable: |g:netrw_localrmdir| |g:netrw_rm_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001643 |g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001644
1645
Bram Moolenaar446cb832008-06-24 21:56:24 +00001646*netrw-explore* *netrw-hexplore* *netrw-nexplore* *netrw-pexplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001647*netrw-rexplore* *netrw-sexplore* *netrw-texplore* *netrw-vexplore* *netrw-lexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001648DIRECTORY EXPLORATION COMMANDS {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001649
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001650 :[N]Explore[!] [dir]... Explore directory of current file *:Explore*
1651 :[N]Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001652 :[N]Lexplore[!] [dir]... Left Explorer Toggle *:Lexplore*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001653 :[N]Sexplore[!] [dir]... Split&Explore current file's directory *:Sexplore*
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001654 :[N]Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001655 :Texplore [dir]... Tab & Explore *:Texplore*
1656 :Rexplore ... Return to/from Explorer *:Rexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001657
1658 Used with :Explore **/pattern : (also see |netrw-starstar|)
1659 :Nexplore............. go to next matching file *:Nexplore*
1660 :Pexplore............. go to previous matching file *:Pexplore*
1661
Bram Moolenaara6878372014-03-22 21:02:50 +01001662 *netrw-:Explore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001663:Explore will open the local-directory browser on the current file's
1664 directory (or on directory [dir] if specified). The window will be
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001665 split only if the file has been modified and |'hidden'| is not set,
1666 otherwise the browsing window will take over that window. Normally
1667 the splitting is taken horizontally.
Bram Moolenaara6878372014-03-22 21:02:50 +01001668 Also see: |netrw-:Rexplore|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001669:Explore! is like :Explore, but will use vertical splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001670
Bram Moolenaara6878372014-03-22 21:02:50 +01001671 *netrw-:Hexplore*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001672:Hexplore [dir] does an :Explore with |:belowright| horizontal splitting.
1673:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001674
1675 *netrw-:Lexplore*
1676:[N]Lexplore [dir] toggles a full height Explorer window on the left hand side
1677 of the current tab. It will open a netrw window on the current
1678 directory if [dir] is omitted; a :Lexplore [dir] will show the
1679 specified directory in the left-hand side browser display no matter
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001680 from which window the command is issued.
1681
1682 By default, :Lexplore will change an uninitialized |g:netrw_chgwin|
1683 to 2; edits will thus preferentially be made in window#2.
1684
1685 The [N] specifies a |g:netrw_winsize| just for the new :Lexplore
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001686 window.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001687
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001688 Those who like this method often also like tree style displays;
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001689 see |g:netrw_liststyle|.
1690
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001691:[N]Lexplore! [dir] is similar to :Lexplore, except that the full-height
1692 Explorer window will open on the right hand side and an
1693 uninitialized |g:netrw_chgwin| will be set to 1 (eg. edits will
1694 preferentially occur in the leftmost window).
1695
Bram Moolenaara0f849e2015-10-30 14:37:44 +01001696 Also see: |netrw-C| |g:netrw_browse_split| |g:netrw_wiw|
1697 |netrw-p| |netrw-P| |g:netrw_chgwin|
1698 |netrw-c-tab| |g:netrw_winsize|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001699
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001700 *netrw-:Sexplore*
1701:[N]Sexplore will always split the window before invoking the local-directory
1702 browser. As with Explore, the splitting is normally done
1703 horizontally.
1704:[N]Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically.
1705
Bram Moolenaara6878372014-03-22 21:02:50 +01001706 *netrw-:Texplore*
Bram Moolenaar8d043172014-01-23 14:24:41 +01001707:Texplore [dir] does a |:tabnew| before generating the browser window
Bram Moolenaar446cb832008-06-24 21:56:24 +00001708
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001709 *netrw-:Vexplore*
1710:[N]Vexplore [dir] does an :Explore with |:leftabove| vertical splitting.
1711:[N]Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001712
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001713The optional parameters are:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001714
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001715 [N]: This parameter will override |g:netrw_winsize| to specify the quantity of
1716 rows and/or columns the new explorer window should have.
1717 Otherwise, the |g:netrw_winsize| variable, if it has been specified by the
1718 user, is used to control the quantity of rows and/or columns new
1719 explorer windows should have.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001720
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001721 [dir]: By default, these explorer commands use the current file's directory.
1722 However, one may explicitly provide a directory (path) to use instead;
1723 ie. >
1724
1725 :Explore /some/path
1726<
Bram Moolenaara6878372014-03-22 21:02:50 +01001727 *netrw-:Rexplore*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001728:Rexplore This command is a little different from the other Explore commands
1729 as it doesn't necessarily open an Explorer window.
Bram Moolenaara6878372014-03-22 21:02:50 +01001730
1731 Return to Explorer~
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001732 When one edits a file using netrw which can occur, for example,
1733 when pressing <cr> while the cursor is atop a filename in a netrw
1734 browser window, a :Rexplore issued while editing that file will
1735 return the display to that of the last netrw browser display in
1736 that window.
Bram Moolenaara6878372014-03-22 21:02:50 +01001737
1738 Return from Explorer~
1739 Conversely, when one is editing a directory, issuing a :Rexplore
Bram Moolenaar13600302014-05-22 18:26:40 +02001740 will return to editing the file that was last edited in that
Bram Moolenaara6878372014-03-22 21:02:50 +01001741 window.
1742
1743 The <2-leftmouse> map (which is only available under gvim and
1744 cooperative terms) does the same as :Rexplore.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001745
Bram Moolenaar8d043172014-01-23 14:24:41 +01001746Also see: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|
1747
Bram Moolenaar446cb832008-06-24 21:56:24 +00001748
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001749*netrw-star* *netrw-starpat* *netrw-starstar* *netrw-starstarpat* *netrw-grep*
1750EXPLORING WITH STARS AND PATTERNS {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00001751
1752When Explore, Sexplore, Hexplore, or Vexplore are used with one of the
Bram Moolenaare0fa3742016-02-20 15:47:01 +01001753following four patterns Explore generates a list of files which satisfy the
1754request for the local file system. These exploration patterns will not work
1755with remote file browsing.
Bram Moolenaar446cb832008-06-24 21:56:24 +00001756
1757 */filepat files in current directory which satisfy filepat
1758 **/filepat files in current directory or below which satisfy the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001759 file pattern
Bram Moolenaar446cb832008-06-24 21:56:24 +00001760 *//pattern files in the current directory which contain the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001761 pattern (vimgrep is used)
Bram Moolenaar446cb832008-06-24 21:56:24 +00001762 **//pattern files in the current directory or below which contain
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001763 the pattern (vimgrep is used)
Bram Moolenaar572cb562005-08-05 21:35:02 +00001764<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001765The cursor will be placed on the first file in the list. One may then
1766continue to go to subsequent files on that list via |:Nexplore| or to
1767preceding files on that list with |:Pexplore|. Explore will update the
1768directory and place the cursor appropriately.
1769
1770A plain >
1771 :Explore
1772will clear the explore list.
1773
1774If your console or gui produces recognizable shift-up or shift-down sequences,
1775then you'll likely find using shift-downarrow and shift-uparrow convenient.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001776They're mapped by netrw as follows:
Bram Moolenaar446cb832008-06-24 21:56:24 +00001777
1778 <s-down> == Nexplore, and
1779 <s-up> == Pexplore.
1780
1781As an example, consider
1782>
1783 :Explore */*.c
1784 :Nexplore
1785 :Nexplore
1786 :Pexplore
1787<
1788The status line will show, on the right hand side of the status line, a
1789message like "Match 3 of 20".
1790
Bram Moolenaara6878372014-03-22 21:02:50 +01001791Associated setting variables:
1792 |g:netrw_keepdir| |g:netrw_browse_split|
1793 |g:netrw_fastbrowse| |g:netrw_ftp_browse_reject|
1794 |g:netrw_ftp_list_cmd| |g:netrw_ftp_sizelist_cmd|
1795 |g:netrw_ftp_timelist_cmd| |g:netrw_list_cmd|
1796 |g:netrw_liststyle|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001797
1798
Bram Moolenaar446cb832008-06-24 21:56:24 +00001799DISPLAYING INFORMATION ABOUT FILE *netrw-qf* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001800
Bram Moolenaar446cb832008-06-24 21:56:24 +00001801With the cursor atop a filename, pressing "qf" will reveal the file's size
1802and last modification timestamp. Currently this capability is only available
1803for local files.
Bram Moolenaar578b49e2005-09-10 19:22:57 +00001804
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001805
Bram Moolenaar446cb832008-06-24 21:56:24 +00001806EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide* {{{2
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001807
Bram Moolenaar446cb832008-06-24 21:56:24 +00001808The "<ctrl-h>" map brings up a requestor allowing the user to change the
1809file/directory hiding list contained in |g:netrw_list_hide|. The hiding list
1810consists of one or more patterns delimited by commas. Files and/or
1811directories satisfying these patterns will either be hidden (ie. not shown) or
1812be the only ones displayed (see |netrw-a|).
1813
1814The "gh" mapping (see |netrw-gh|) quickly alternates between the usual
1815hiding list and the hiding of files or directories that begin with ".".
1816
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001817As an example, >
1818 let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
1819Effectively, this makes the effect of a |netrw-gh| command the initial setting.
1820What it means:
1821
1822 \(^\|\s\s\) : if the line begins with the following, -or-
1823 two consecutive spaces are encountered
1824 \zs : start the hiding match now
1825 \. : if it now begins with a dot
1826 \S\+ : and is followed by one or more non-whitespace
1827 characters
1828
Bram Moolenaar446cb832008-06-24 21:56:24 +00001829Associated setting variables: |g:netrw_hide| |g:netrw_list_hide|
1830Associated topics: |netrw-a| |netrw-gh| |netrw-mh|
Bram Moolenaard4755bb2004-09-02 19:12:26 +00001831
Bram Moolenaar15146672011-10-20 22:22:38 +02001832 *netrw-sort-sequence*
Bram Moolenaar446cb832008-06-24 21:56:24 +00001833EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* {{{2
1834
1835When "Sorted by" is name, one may specify priority via the sorting sequence
1836(g:netrw_sort_sequence). The sorting sequence typically prioritizes the
1837name-listing by suffix, although any pattern will do. Patterns are delimited
1838by commas. The default sorting sequence is (all one line):
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01001839
1840For Unix: >
1841 '[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
1842 \.info$,\.swp$,\.bak$,\~$'
1843<
1844Otherwise: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001845 '[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
1846 \.swp$,\.bak$,\~$'
1847<
1848The lone * is where all filenames not covered by one of the other patterns
1849will end up. One may change the sorting sequence by modifying the
1850g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by
1851using the "S" map.
1852
Bram Moolenaarc236c162008-07-13 17:41:49 +00001853Related topics: |netrw-s| |netrw-S|
1854Associated setting variables: |g:netrw_sort_sequence| |g:netrw_sort_options|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001855
1856
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001857EXECUTING FILE UNDER CURSOR VIA SYSTEM() *netrw-X* {{{2
Bram Moolenaar97d62492012-11-15 21:28:22 +01001858
1859Pressing X while the cursor is atop an executable file will yield a prompt
1860using the filename asking for any arguments. Upon pressing a [return], netrw
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01001861will then call |system()| with that command and arguments. The result will be
1862displayed by |:echomsg|, and so |:messages| will repeat display of the result.
1863Ansi escape sequences will be stripped out.
1864
1865See |cmdline-window| for directions for more on how to edit the arguments.
Bram Moolenaar97d62492012-11-15 21:28:22 +01001866
1867
Bram Moolenaaradc21822011-04-01 18:03:16 +02001868FORCING TREATMENT AS A FILE OR DIRECTORY *netrw-gd* *netrw-gf* {{{2
1869
1870Remote symbolic links (ie. those listed via ssh or ftp) are problematic
1871in that it is difficult to tell whether they link to a file or to a
1872directory.
1873
1874To force treatment as a file: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001875 gf
Bram Moolenaaradc21822011-04-01 18:03:16 +02001876<
1877To force treatment as a directory: use >
Bram Moolenaar97d62492012-11-15 21:28:22 +01001878 gd
Bram Moolenaaradc21822011-04-01 18:03:16 +02001879<
1880
Bram Moolenaar446cb832008-06-24 21:56:24 +00001881GOING UP *netrw--* {{{2
1882
1883To go up a directory, press "-" or press the <cr> when atop the ../ directory
1884entry in the listing.
1885
1886Netrw will use the command in |g:netrw_list_cmd| to perform the directory
1887listing operation after changing HOSTNAME to the host specified by the
Bram Moolenaara6878372014-03-22 21:02:50 +01001888user-prpvided url. By default netrw provides the command as: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00001889
1890 ssh HOSTNAME ls -FLa
Bram Moolenaara6878372014-03-22 21:02:50 +01001891<
Bram Moolenaar446cb832008-06-24 21:56:24 +00001892where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
1893read. Naturally, the user may override this command with whatever is
1894preferred. The NetList function which implements remote browsing
1895expects that directories will be flagged by a trailing slash.
1896
1897
1898HIDING FILES OR DIRECTORIES *netrw-a* *netrw-hiding* {{{2
1899
1900Netrw's browsing facility allows one to use the hiding list in one of three
1901ways: ignore it, hide files which match, and show only those files which
1902match.
1903
1904If no files have been marked via |netrw-mf|:
1905
1906The "a" map allows the user to cycle through the three hiding modes.
1907
1908The |g:netrw_list_hide| variable holds a comma delimited list of patterns
1909based on regular expressions (ex. ^.*\.obj$,^\.) which specify the hiding list.
1910(also see |netrw-ctrl-h|) To set the hiding list, use the <c-h> map. As an
1911example, to hide files which begin with a ".", one may use the <c-h> map to
1912set the hiding list to '^\..*' (or one may put let g:netrw_list_hide= '^\..*'
1913in one's <.vimrc>). One may then use the "a" key to show all files, hide
1914matching files, or to show only the matching files.
1915
1916 Example: \.[ch]$
1917 This hiding list command will hide/show all *.c and *.h files.
1918
1919 Example: \.c$,\.h$
1920 This hiding list command will also hide/show all *.c and *.h
1921 files.
1922
1923Don't forget to use the "a" map to select the mode (normal/hiding/show) you
1924want!
1925
1926If files have been marked using |netrw-mf|, then this command will:
1927
1928 if showing all files or non-hidden files:
1929 modify the g:netrw_list_hide list by appending the marked files to it
1930 and showing only non-hidden files.
1931
1932 else if showing hidden files only:
1933 modify the g:netrw_list_hide list by removing the marked files from it
1934 and showing only non-hidden files.
1935 endif
1936
1937 *netrw-gh* *netrw-hide*
1938As a quick shortcut, one may press >
1939 gh
1940to toggle between hiding files which begin with a period (dot) and not hiding
1941them.
1942
Bram Moolenaar8d043172014-01-23 14:24:41 +01001943Associated setting variables: |g:netrw_list_hide| |g:netrw_hide|
Bram Moolenaar446cb832008-06-24 21:56:24 +00001944Associated topics: |netrw-a| |netrw-ctrl-h| |netrw-mh|
1945
Bram Moolenaar8d043172014-01-23 14:24:41 +01001946 *netrw-gitignore*
1947Netrw provides a helper function 'netrw_gitignore#Hide()' that, when used with
1948|g:netrw_list_hide| automatically hides all git-ignored files.
1949
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001950'netrw_gitignore#Hide' searches for patterns in the following files: >
1951
Bram Moolenaar8d043172014-01-23 14:24:41 +01001952 './.gitignore'
1953 './.git/info/exclude'
1954 global gitignore file: `git config --global core.excludesfile`
1955 system gitignore file: `git config --system core.excludesfile`
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001956<
Bram Moolenaar8d043172014-01-23 14:24:41 +01001957Files that do not exist, are ignored.
1958Git-ignore patterns are taken from existing files, and converted to patterns for
1959hiding files. For example, if you had '*.log' in your '.gitignore' file, it
1960would be converted to '.*\.log'.
1961
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001962To use this function, simply assign its output to |g:netrw_list_hide| option. >
Bram Moolenaar8d043172014-01-23 14:24:41 +01001963
1964 Example: let g:netrw_list_hide= netrw_gitignore#Hide()
1965 Git-ignored files are hidden in Netrw.
1966
1967 Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
1968 Function can take additional files with git-ignore patterns.
1969
1970 Example: g:netrw_list_hide= netrw_gitignore#Hide() . '.*\.swp$'
1971 Combining 'netrw_gitignore#Hide' with custom patterns.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01001972<
Bram Moolenaar8d043172014-01-23 14:24:41 +01001973
Bram Moolenaar446cb832008-06-24 21:56:24 +00001974IMPROVING BROWSING *netrw-listhack* *netrw-ssh-hack* {{{2
Bram Moolenaarcfbc5ee2004-07-02 15:38:35 +00001975
1976Especially with the remote directory browser, constantly entering the password
1977is tedious.
1978
Bram Moolenaar9964e462007-05-05 17:54:07 +00001979For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00001980tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip
1981for setting up no-password ssh and scp and discusses associated security
Bram Moolenaar9964e462007-05-05 17:54:07 +00001982issues. It used to be available at http://hacks.oreilly.com/pub/h/66 ,
1983but apparently that address is now being redirected to some "hackzine".
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001984I'll attempt a summary based on that article and on a communication from
1985Ben Schmidt:
Bram Moolenaar843ee412004-06-30 16:16:41 +00001986
Bram Moolenaare37d50a2008-08-06 17:06:04 +00001987 1. Generate a public/private key pair on the local machine
1988 (ssh client): >
1989 ssh-keygen -t rsa
1990 (saving the file in ~/.ssh/id_rsa as prompted)
1991<
1992 2. Just hit the <CR> when asked for passphrase (twice) for no
1993 passphrase. If you do use a passphrase, you will also need to use
1994 ssh-agent so you only have to type the passphrase once per session.
1995 If you don't use a passphrase, simply logging onto your local
1996 computer or getting access to the keyfile in any way will suffice
1997 to access any ssh servers which have that key authorized for login.
1998
1999 3. This creates two files: >
2000 ~/.ssh/id_rsa
2001 ~/.ssh/id_rsa.pub
2002<
2003 4. On the target machine (ssh server): >
2004 cd
2005 mkdir -p .ssh
2006 chmod 0700 .ssh
2007<
2008 5. On your local machine (ssh client): (one line) >
2009 ssh {serverhostname}
2010 cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
2011<
2012 or, for OpenSSH, (one line) >
2013 ssh {serverhostname}
2014 cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
2015<
2016You can test it out with >
2017 ssh {serverhostname}
2018and you should be log onto the server machine without further need to type
2019anything.
2020
2021If you decided to use a passphrase, do: >
2022 ssh-agent $SHELL
2023 ssh-add
2024 ssh {serverhostname}
2025You will be prompted for your key passphrase when you use ssh-add, but not
2026subsequently when you use ssh. For use with vim, you can use >
2027 ssh-agent vim
2028and, when next within vim, use >
2029 :!ssh-add
2030Alternatively, you can apply ssh-agent to the terminal you're planning on
2031running vim in: >
2032 ssh-agent xterm &
2033and do ssh-add whenever you need.
Bram Moolenaar843ee412004-06-30 16:16:41 +00002034
Bram Moolenaar9964e462007-05-05 17:54:07 +00002035For Windows, folks on the vim mailing list have mentioned that Pageant helps
2036with avoiding the constant need to enter the password.
Bram Moolenaar433f7c82006-03-21 21:29:36 +00002037
Bram Moolenaar446cb832008-06-24 21:56:24 +00002038Kingston Fung wrote about another way to avoid constantly needing to enter
2039passwords:
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00002040
Bram Moolenaar446cb832008-06-24 21:56:24 +00002041 In order to avoid the need to type in the password for scp each time, you
2042 provide a hack in the docs to set up a non password ssh account. I found a
2043 better way to do that: I can use a regular ssh account which uses a
2044 password to access the material without the need to key-in the password
2045 each time. It's good for security and convenience. I tried ssh public key
2046 authorization + ssh-agent, implementing this, and it works! Here are two
2047 links with instructions:
2048
2049 http://www.ibm.com/developerworks/library/l-keyc2/
2050 http://sial.org/howto/openssh/publickey-auth/
2051
2052
Bram Moolenaar8d043172014-01-23 14:24:41 +01002053 Ssh hints:
2054
2055 Thomer Gil has provided a hint on how to speed up netrw+ssh:
2056 http://thomer.com/howtos/netrw_ssh.html
2057
2058 Alex Young has several hints on speeding ssh up:
2059 http://usevim.com/2012/03/16/editing-remote-files/
2060
2061
Bram Moolenaar446cb832008-06-24 21:56:24 +00002062LISTING BOOKMARKS AND HISTORY *netrw-qb* *netrw-listbookmark* {{{2
2063
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002064Pressing "qb" (query bookmarks) will list both the bookmarked directories and
2065directory traversal history.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002066
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002067Related Topics:
2068 |netrw-gb| how to return (go) to a bookmark
2069 |netrw-mb| how to make a bookmark
2070 |netrw-mB| how to delete bookmarks
2071 |netrw-u| change to a predecessor directory via the history stack
2072 |netrw-U| change to a successor directory via the history stack
Bram Moolenaar446cb832008-06-24 21:56:24 +00002073
2074MAKING A NEW DIRECTORY *netrw-d* {{{2
2075
2076With the "d" map one may make a new directory either remotely (which depends
2077on the global variable g:netrw_mkdir_cmd) or locally (which depends on the
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002078global variable g:netrw_localmkdir). Netrw will issue a request for the new
Bram Moolenaar446cb832008-06-24 21:56:24 +00002079directory's name. A bare <CR> at that point will abort the making of the
2080directory. Attempts to make a local directory that already exists (as either
2081a file or a directory) will be detected, reported on, and ignored.
2082
Bram Moolenaar15146672011-10-20 22:22:38 +02002083Related topics: |netrw-D|
Bram Moolenaar8d043172014-01-23 14:24:41 +01002084Associated setting variables: |g:netrw_localmkdir| |g:netrw_mkdir_cmd|
2085 |g:netrw_remote_mkdir| |netrw-%|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002086
2087
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002088MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-cd* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002089
2090By default, |g:netrw_keepdir| is 1. This setting means that the current
Bram Moolenaarff034192013-04-24 18:51:19 +02002091directory will not track the browsing directory. (done for backwards
2092compatibility with v6's file explorer).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002093
Bram Moolenaarff034192013-04-24 18:51:19 +02002094Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002095track netrw's browsing directory.
2096
2097However, given the default setting for g:netrw_keepdir of 1 where netrw
2098maintains its own separate notion of the current directory, in order to make
2099the two directories the same, use the "c" map (just type c). That map will
2100set Vim's notion of the current directory to netrw's current browsing
2101directory.
2102
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002103*netrw-c* : This map's name has been changed from "c" to cd (see |netrw-cd|).
2104 This change was done to allow for |netrw-cb| and |netrw-cB| maps.
2105
Bram Moolenaar446cb832008-06-24 21:56:24 +00002106Associated setting variable: |g:netrw_keepdir|
2107
Bram Moolenaara6878372014-03-22 21:02:50 +01002108MARKING FILES *netrw-:MF* *netrw-mf* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002109 (also see |netrw-mr|)
2110
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002111Netrw provides several ways to mark files:
Bram Moolenaara6878372014-03-22 21:02:50 +01002112
2113 * One may mark files with the cursor atop a filename and
Bram Moolenaar13600302014-05-22 18:26:40 +02002114 then pressing "mf".
Bram Moolenaara6878372014-03-22 21:02:50 +01002115
2116 * With gvim, in addition one may mark files with
Bram Moolenaar13600302014-05-22 18:26:40 +02002117 <s-leftmouse>. (see |netrw-mouse|)
Bram Moolenaara6878372014-03-22 21:02:50 +01002118
2119 * One may use the :MF command, which takes a list of
Bram Moolenaar13600302014-05-22 18:26:40 +02002120 files (for local directories, the list may include
2121 wildcards -- see |glob()|) >
Bram Moolenaara6878372014-03-22 21:02:50 +01002122
2123 :MF *.c
2124<
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002125 (Note that :MF uses |<f-args>| to break the line
2126 at spaces)
2127
2128 * Mark files using the |argument-list| (|netrw-mA|)
2129
2130 * Mark files based upon a |location-list| (|netrw-qL|)
Bram Moolenaar13600302014-05-22 18:26:40 +02002131
2132 * Mark files based upon the quickfix list (|netrw-qF|)
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002133 (|quickfix-error-lists|)
Bram Moolenaara6878372014-03-22 21:02:50 +01002134
2135The following netrw maps make use of marked files:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002136
2137 |netrw-a| Hide marked files/directories
2138 |netrw-D| Delete marked files/directories
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002139 |netrw-ma| Move marked files' names to |arglist|
2140 |netrw-mA| Move |arglist| filenames to marked file list
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002141 |netrw-mb| Append marked files to bookmarks
2142 |netrw-mB| Delete marked files from bookmarks
Bram Moolenaar446cb832008-06-24 21:56:24 +00002143 |netrw-mc| Copy marked files to target
2144 |netrw-md| Apply vimdiff to marked files
2145 |netrw-me| Edit marked files
Bram Moolenaarff034192013-04-24 18:51:19 +02002146 |netrw-mF| Unmark marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002147 |netrw-mg| Apply vimgrep to marked files
Bram Moolenaara6878372014-03-22 21:02:50 +01002148 |netrw-mm| Move marked files to target
Bram Moolenaar446cb832008-06-24 21:56:24 +00002149 |netrw-mp| Print marked files
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002150 |netrw-ms| Netrw will source marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002151 |netrw-mt| Set target for |netrw-mm| and |netrw-mc|
2152 |netrw-mT| Generate tags using marked files
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002153 |netrw-mv| Apply vim command to marked files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002154 |netrw-mx| Apply shell command to marked files
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002155 |netrw-mX| Apply shell command to marked files, en bloc
Bram Moolenaar446cb832008-06-24 21:56:24 +00002156 |netrw-mz| Compress/Decompress marked files
2157 |netrw-O| Obtain marked files
2158 |netrw-R| Rename marked files
2159
2160One may unmark files one at a time the same way one marks them; ie. place
2161the cursor atop a marked file and press "mf". This process also works
2162with <s-leftmouse> using gvim. One may unmark all files by pressing
2163"mu" (see |netrw-mu|).
2164
Bram Moolenaaradc21822011-04-01 18:03:16 +02002165Marked files are highlighted using the "netrwMarkFile" highlighting group,
2166which by default is linked to "Identifier" (see Identifier under
2167|group-name|). You may change the highlighting group by putting something
2168like >
2169
2170 highlight clear netrwMarkFile
2171 hi link netrwMarkFile ..whatever..
2172<
2173into $HOME/.vim/after/syntax/netrw.vim .
2174
Bram Moolenaar8d043172014-01-23 14:24:41 +01002175If the mouse is enabled and works with your vim, you may use <s-leftmouse> to
2176mark one or more files. You may mark multiple files by dragging the shifted
2177leftmouse. (see |netrw-mouse|)
2178
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002179 *markfilelist* *global_markfilelist* *local_markfilelist*
Bram Moolenaar446cb832008-06-24 21:56:24 +00002180All marked files are entered onto the global marked file list; there is only
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002181one such list. In addition, every netrw buffer also has its own buffer-local
2182marked file list; since netrw buffers are associated with specific
2183directories, this means that each directory has its own local marked file
2184list. The various commands which operate on marked files use one or the other
2185of the marked file lists.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002186
Bram Moolenaara6878372014-03-22 21:02:50 +01002187Known Problem: if one is using tree mode (|g:netrw_liststyle|) and several
2188directories have files with the same name, then marking such a file will
2189result in all such files being highlighted as if they were all marked. The
2190|markfilelist|, however, will only have the selected file in it. This problem
2191is unlikely to be fixed.
2192
Bram Moolenaar446cb832008-06-24 21:56:24 +00002193
Bram Moolenaarff034192013-04-24 18:51:19 +02002194UNMARKING FILES *netrw-mF* {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002195 (also see |netrw-mf|, |netrw-mu|)
Bram Moolenaarff034192013-04-24 18:51:19 +02002196
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002197The "mF" command will unmark all files in the current buffer. One may also use
2198mf (|netrw-mf|) on a specific, already marked, file to unmark just that file.
Bram Moolenaarff034192013-04-24 18:51:19 +02002199
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002200MARKING FILES BY LOCATION LIST *netrw-qL* {{{2
2201 (also see |netrw-mf|)
Bram Moolenaarff034192013-04-24 18:51:19 +02002202
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002203One may convert |location-list|s into a marked file list using "qL".
2204You may then proceed with commands such as me (|netrw-me|) to edit them.
2205
2206
2207MARKING FILES BY QUICKFIX LIST *netrw-qF* {{{2
Bram Moolenaarff034192013-04-24 18:51:19 +02002208 (also see |netrw-mf|)
2209
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002210One may convert |quickfix-error-lists| into a marked file list using "qF".
2211You may then proceed with commands such as me (|netrw-me|) to edit them.
2212Quickfix error lists are generated, for example, by calls to |:vimgrep|.
Bram Moolenaarff034192013-04-24 18:51:19 +02002213
2214
Bram Moolenaar446cb832008-06-24 21:56:24 +00002215MARKING FILES BY REGULAR EXPRESSION *netrw-mr* {{{2
2216 (also see |netrw-mf|)
2217
2218One may also mark files by pressing "mr"; netrw will then issue a prompt,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002219"Enter regexp: ". You may then enter a shell-style regular expression such
2220as *.c$ (see |glob()|). For remote systems, glob() doesn't work -- so netrw
2221converts "*" into ".*" (see |regexp|) and marks files based on that. In the
2222future I may make it possible to use |regexp|s instead of glob()-style
2223expressions (yet-another-option).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002224
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002225See |cmdline-window| for directions on more on how to edit the regular
2226expression.
2227
Bram Moolenaar446cb832008-06-24 21:56:24 +00002228
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002229MARKED FILES, ARBITRARY VIM COMMAND *netrw-mv* {{{2
2230 (See |netrw-mf| and |netrw-mr| for how to mark files)
2231 (uses the local marked-file list)
2232
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002233The "mv" map causes netrw to execute an arbitrary vim command on each file on
2234the local marked file list, individually:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002235
2236 * 1split
2237 * sil! keepalt e file
2238 * run vim command
2239 * sil! keepalt wq!
2240
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002241A prompt, "Enter vim command: ", will be issued to elicit the vim command you
2242wish used. See |cmdline-window| for directions for more on how to edit the
2243command.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002244
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002245
2246MARKED FILES, ARBITRARY SHELL COMMAND *netrw-mx* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002247 (See |netrw-mf| and |netrw-mr| for how to mark files)
2248 (uses the local marked-file list)
2249
2250Upon activation of the "mx" map, netrw will query the user for some (external)
2251command to be applied to all marked files. All "%"s in the command will be
2252substituted with the name of each marked file in turn. If no "%"s are in the
2253command, then the command will be followed by a space and a marked filename.
2254
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002255Example:
2256 (mark files)
2257 mx
2258 Enter command: cat
2259
2260 The result is a series of shell commands:
2261 cat 'file1'
2262 cat 'file2'
2263 ...
2264
2265
2266MARKED FILES, ARBITRARY SHELL COMMAND, EN BLOC *netrw-mX* {{{2
2267 (See |netrw-mf| and |netrw-mr| for how to mark files)
2268 (uses the global marked-file list)
2269
2270Upon activation of the 'mX' map, netrw will query the user for some (external)
2271command to be applied to all marked files on the global marked file list. The
2272"en bloc" means that one command will be executed on all the files at once: >
2273
2274 command files
2275
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002276This approach is useful, for example, to select files and make a tarball: >
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002277
2278 (mark files)
2279 mX
2280 Enter command: tar cf mynewtarball.tar
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002281<
2282The command that will be run with this example:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002283
2284 tar cf mynewtarball.tar 'file1' 'file2' ...
2285
Bram Moolenaar446cb832008-06-24 21:56:24 +00002286
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002287MARKED FILES: ARGUMENT LIST *netrw-ma* *netrw-mA*
2288 (See |netrw-mf| and |netrw-mr| for how to mark files)
2289 (uses the global marked-file list)
2290
2291Using ma, one moves filenames from the marked file list to the argument list.
2292Using mA, one moves filenames from the argument list to the marked file list.
2293
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002294See Also: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|
2295
2296
2297MARKED FILES: BUFFER LIST *netrw-cb* *netrw-cB*
2298 (See |netrw-mf| and |netrw-mr| for how to mark files)
2299 (uses the global marked-file list)
2300
2301Using cb, one moves filenames from the marked file list to the buffer list.
2302Using cB, one copies filenames from the buffer list to the marked file list.
2303
2304See Also: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002305
2306
Bram Moolenaar446cb832008-06-24 21:56:24 +00002307MARKED FILES: COMPRESSION AND DECOMPRESSION *netrw-mz* {{{2
2308 (See |netrw-mf| and |netrw-mr| for how to mark files)
2309 (uses the local marked file list)
2310
2311If any marked files are compressed, then "mz" will decompress them.
2312If any marked files are decompressed, then "mz" will compress them
2313using the command specified by |g:netrw_compress|; by default,
2314that's "gzip".
2315
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002316For decompression, netrw uses a |Dictionary| of suffices and their
Bram Moolenaar446cb832008-06-24 21:56:24 +00002317associated decompressing utilities; see |g:netrw_decompress|.
2318
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002319Remember that one can mark multiple files by regular expression
2320(see |netrw-mr|); this is particularly useful to facilitate compressing and
2321decompressing a large number of files.
2322
Bram Moolenaar446cb832008-06-24 21:56:24 +00002323Associated setting variables: |g:netrw_compress| |g:netrw_decompress|
2324
2325MARKED FILES: COPYING *netrw-mc* {{{2
2326 (See |netrw-mf| and |netrw-mr| for how to mark files)
2327 (Uses the global marked file list)
2328
2329Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02002330select file(s) (see |netrw-mf|), and press "mc". The copy is done
2331from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002332
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002333If one does not have a target directory set with |netrw-mt|, then netrw
2334will query you for a directory to copy to.
2335
2336One may also copy directories and their contents (local only) to a target
2337directory.
2338
2339Associated setting variables:
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002340 |g:netrw_localcopycmd| |g:netrw_localcopycmdopt|
2341 |g:netrw_localcopydircmd| |g:netrw_localcopydircmdopt|
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002342 |g:netrw_ssh_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002343
2344MARKED FILES: DIFF *netrw-md* {{{2
2345 (See |netrw-mf| and |netrw-mr| for how to mark files)
2346 (uses the global marked file list)
2347
2348Use |vimdiff| to visualize difference between selected files (two or
2349three may be selected for this). Uses the global marked file list.
2350
2351MARKED FILES: EDITING *netrw-me* {{{2
2352 (See |netrw-mf| and |netrw-mr| for how to mark files)
2353 (uses the global marked file list)
2354
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002355The "me" command will place the marked files on the |arglist| and commence
Bram Moolenaar446cb832008-06-24 21:56:24 +00002356editing them. One may return the to explorer window with |:Rexplore|.
Bram Moolenaarff034192013-04-24 18:51:19 +02002357(use |:n| and |:p| to edit next and previous files in the arglist)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002358
2359MARKED FILES: GREP *netrw-mg* {{{2
2360 (See |netrw-mf| and |netrw-mr| for how to mark files)
2361 (uses the global marked file list)
2362
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002363The "mg" command will apply |:vimgrep| to the marked files.
Bram Moolenaarff034192013-04-24 18:51:19 +02002364The command will ask for the requested pattern; one may then enter: >
2365
Bram Moolenaar446cb832008-06-24 21:56:24 +00002366 /pattern/[g][j]
2367 ! /pattern/[g][j]
2368 pattern
2369<
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002370With /pattern/, editing will start with the first item on the |quickfix| list
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002371that vimgrep sets up (see |:copen|, |:cnext|, |:cprevious|, |:cclose|). The |:vimgrep|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002372command is in use, so without 'g' each line is added to quickfix list only
2373once; with 'g' every match is included.
2374
2375With /pattern/j, "mg" will winnow the current marked file list to just those
2376marked files also possessing the specified pattern. Thus, one may use >
2377
2378 mr ...file-pattern...
2379 mg /pattern/j
2380<
2381to have a marked file list satisfying the file-pattern but also restricted to
2382files containing some desired pattern.
2383
Bram Moolenaarff034192013-04-24 18:51:19 +02002384
Bram Moolenaar446cb832008-06-24 21:56:24 +00002385MARKED FILES: HIDING AND UNHIDING BY SUFFIX *netrw-mh* {{{2
2386 (See |netrw-mf| and |netrw-mr| for how to mark files)
2387 (uses the local marked file list)
2388
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002389The "mh" command extracts the suffices of the marked files and toggles their
Bram Moolenaar446cb832008-06-24 21:56:24 +00002390presence on the hiding list. Please note that marking the same suffix
2391this way multiple times will result in the suffix's presence being toggled
2392for each file (so an even quantity of marked files having the same suffix
2393is the same as not having bothered to select them at all).
2394
2395Related topics: |netrw-a| |g:netrw_list_hide|
2396
2397MARKED FILES: MOVING *netrw-mm* {{{2
2398 (See |netrw-mf| and |netrw-mr| for how to mark files)
2399 (uses the global marked file list)
2400
Bram Moolenaare37d50a2008-08-06 17:06:04 +00002401 WARNING: moving files is more dangerous than copying them.
2402 A file being moved is first copied and then deleted; if the
2403 copy operation fails and the delete succeeds, you will lose
2404 the file. Either try things out with unimportant files
2405 first or do the copy and then delete yourself using mc and D.
2406 Use at your own risk!
2407
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002408Select a target directory with mt (|netrw-mt|). Then change directory,
Bram Moolenaaradc21822011-04-01 18:03:16 +02002409select file(s) (see |netrw-mf|), and press "mm". The move is done
2410from the current window (where one does the mf) to the target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002411
2412Associated setting variable: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|
2413
2414MARKED FILES: PRINTING *netrw-mp* {{{2
2415 (See |netrw-mf| and |netrw-mr| for how to mark files)
2416 (uses the local marked file list)
2417
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002418When "mp" is used, netrw will apply the |:hardcopy| command to marked files.
2419What netrw does is open each file in a one-line window, execute hardcopy, then
2420close the one-line window.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002421
2422
2423MARKED FILES: SOURCING *netrw-ms* {{{2
2424 (See |netrw-mf| and |netrw-mr| for how to mark files)
2425 (uses the local marked file list)
2426
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002427With "ms", netrw will source the marked files (using vim's |:source| command)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002428
2429
Bram Moolenaarff034192013-04-24 18:51:19 +02002430MARKED FILES: SETTING THE TARGET DIRECTORY *netrw-mt* {{{2
2431 (See |netrw-mf| and |netrw-mr| for how to mark files)
2432
2433Set the marked file copy/move-to target (see |netrw-mc| and |netrw-mm|):
2434
2435 * If the cursor is atop a file name, then the netrw window's currently
2436 displayed directory is used for the copy/move-to target.
2437
2438 * Also, if the cursor is in the banner, then the netrw window's currently
2439 displayed directory is used for the copy/move-to target.
2440 Unless the target already is the current directory. In which case,
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002441 typing "mf" clears the target.
Bram Moolenaarff034192013-04-24 18:51:19 +02002442
2443 * However, if the cursor is atop a directory name, then that directory is
2444 used for the copy/move-to target
2445
Bram Moolenaara6878372014-03-22 21:02:50 +01002446 * One may use the :MT [directory] command to set the target *netrw-:MT*
2447 This command uses |<q-args>|, so spaces in the directory name are
2448 permitted without escaping.
2449
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002450 * With mouse-enabled vim or with gvim, one may select a target by using
2451 <c-leftmouse>
2452
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002453There is only one copy/move-to target at a time in a vim session; ie. the
2454target is a script variable (see |s:var|) and is shared between all netrw
2455windows (in an instance of vim).
Bram Moolenaarff034192013-04-24 18:51:19 +02002456
2457When using menus and gvim, netrw provides a "Targets" entry which allows one
2458to pick a target from the list of bookmarks and history.
2459
2460Related topics:
2461 Marking Files......................................|netrw-mf|
2462 Marking Files by Regular Expression................|netrw-mr|
2463 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2464 Marked Files: Target Directory Using History.......|netrw-Th|
2465
2466
Bram Moolenaar446cb832008-06-24 21:56:24 +00002467MARKED FILES: TAGGING *netrw-mT* {{{2
2468 (See |netrw-mf| and |netrw-mr| for how to mark files)
2469 (uses the global marked file list)
2470
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002471The "mT" mapping will apply the command in |g:netrw_ctags| (by default, it is
Bram Moolenaar446cb832008-06-24 21:56:24 +00002472"ctags") to marked files. For remote browsing, in order to create a tags file
2473netrw will use ssh (see |g:netrw_ssh_cmd|), and so ssh must be available for
2474this to work on remote systems. For your local system, see |ctags| on how to
2475get a version. I myself use hdrtags, currently available at
Bram Moolenaar97d62492012-11-15 21:28:22 +01002476http://www.drchip.org/astronaut/src/index.html , and have >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002477
2478 let g:netrw_ctags= "hdrtag"
2479<
2480in my <.vimrc>.
2481
2482When a remote set of files are tagged, the resulting tags file is "obtained";
Bram Moolenaara6878372014-03-22 21:02:50 +01002483ie. a copy is transferred to the local system's directory. The now local tags
Bram Moolenaar446cb832008-06-24 21:56:24 +00002484file is then modified so that one may use it through the network. The
Bram Moolenaara6878372014-03-22 21:02:50 +01002485modification made concerns the names of the files in the tags; each filename is
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002486preceded by the netrw-compatible URL used to obtain it. When one subsequently
2487uses one of the go to tag actions (|tags|), the URL will be used by netrw to
Bram Moolenaar446cb832008-06-24 21:56:24 +00002488edit the desired file and go to the tag.
2489
Bram Moolenaarc236c162008-07-13 17:41:49 +00002490Associated setting variables: |g:netrw_ctags| |g:netrw_ssh_cmd|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002491
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002492MARKED FILES: TARGET DIRECTORY USING BOOKMARKS *netrw-Tb* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002493
Bram Moolenaara6878372014-03-22 21:02:50 +01002494Sets the marked file copy/move-to target.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002495
Bram Moolenaarff034192013-04-24 18:51:19 +02002496The |netrw-qb| map will give you a list of bookmarks (and history).
2497One may choose one of the bookmarks to become your marked file
2498target by using [count]Tb (default count: 1).
Bram Moolenaar446cb832008-06-24 21:56:24 +00002499
Bram Moolenaarff034192013-04-24 18:51:19 +02002500Related topics:
Bram Moolenaara6878372014-03-22 21:02:50 +01002501 Copying files to target............................|netrw-mc|
Bram Moolenaarff034192013-04-24 18:51:19 +02002502 Listing Bookmarks and History......................|netrw-qb|
2503 Marked Files: Setting The Target Directory.........|netrw-mt|
2504 Marked Files: Target Directory Using History.......|netrw-Th|
2505 Marking Files......................................|netrw-mf|
2506 Marking Files by Regular Expression................|netrw-mr|
Bram Moolenaara6878372014-03-22 21:02:50 +01002507 Moving files to target.............................|netrw-mm|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002508
Bram Moolenaar446cb832008-06-24 21:56:24 +00002509
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002510MARKED FILES: TARGET DIRECTORY USING HISTORY *netrw-Th* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00002511
Bram Moolenaara6878372014-03-22 21:02:50 +01002512Sets the marked file copy/move-to target.
Bram Moolenaarff034192013-04-24 18:51:19 +02002513
2514The |netrw-qb| map will give you a list of history (and bookmarks).
2515One may choose one of the history entries to become your marked file
2516target by using [count]Th (default count: 0; ie. the current directory).
2517
2518Related topics:
Bram Moolenaara6878372014-03-22 21:02:50 +01002519 Copying files to target............................|netrw-mc|
Bram Moolenaarff034192013-04-24 18:51:19 +02002520 Listing Bookmarks and History......................|netrw-qb|
2521 Marked Files: Setting The Target Directory.........|netrw-mt|
2522 Marked Files: Target Directory Using Bookmarks.....|netrw-Tb|
2523 Marking Files......................................|netrw-mf|
2524 Marking Files by Regular Expression................|netrw-mr|
Bram Moolenaara6878372014-03-22 21:02:50 +01002525 Moving files to target.............................|netrw-mm|
Bram Moolenaarff034192013-04-24 18:51:19 +02002526
Bram Moolenaar446cb832008-06-24 21:56:24 +00002527
2528MARKED FILES: UNMARKING *netrw-mu* {{{2
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002529 (See |netrw-mf|, |netrw-mF|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002530
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002531The "mu" mapping will unmark all currently marked files. This command differs
2532from "mF" as the latter only unmarks files in the current directory whereas
2533"mu" will unmark global and all buffer-local marked files.
2534(see |netrw-mF|)
2535
Bram Moolenaar446cb832008-06-24 21:56:24 +00002536
Bram Moolenaar15146672011-10-20 22:22:38 +02002537 *netrw-browser-settings*
Bram Moolenaar446cb832008-06-24 21:56:24 +00002538NETRW BROWSER VARIABLES *netrw-browser-options* *netrw-browser-var* {{{2
2539
Bram Moolenaar15146672011-10-20 22:22:38 +02002540(if you're interested in the netrw file transfer settings, see |netrw-options|
2541 and |netrw-protocol|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002542
2543The <netrw.vim> browser provides settings in the form of variables which
2544you may modify; by placing these settings in your <.vimrc>, you may customize
2545your browsing preferences. (see also: |netrw-settings|)
2546>
2547 --- -----------
2548 Var Explanation
2549 --- -----------
Bram Moolenaar8d043172014-01-23 14:24:41 +01002550< *g:netrw_altfile* some like |CTRL-^| to return to the last
2551 edited file. Choose that by setting this
2552 parameter to 1.
2553 Others like |CTRL-^| to return to the
2554 netrw browsing buffer. Choose that by setting
2555 this parameter to 0.
2556 default: =0
2557
2558 *g:netrw_alto* change from above splitting to below splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002559 by setting this variable (see |netrw-o|)
2560 default: =&sb (see |'sb'|)
2561
Bram Moolenaarff034192013-04-24 18:51:19 +02002562 *g:netrw_altv* change from left splitting to right splitting
Bram Moolenaar446cb832008-06-24 21:56:24 +00002563 by setting this variable (see |netrw-v|)
2564 default: =&spr (see |'spr'|)
2565
Bram Moolenaarff034192013-04-24 18:51:19 +02002566 *g:netrw_banner* enable/suppress the banner
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002567 =0: suppress the banner
2568 =1: banner is enabled (default)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002569
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002570 *g:netrw_bannerbackslash* if this variable exists and is not zero, the
2571 banner will be displayed with backslashes
2572 rather than forward slashes.
2573
Bram Moolenaarff034192013-04-24 18:51:19 +02002574 *g:netrw_browse_split* when browsing, <cr> will open the file by:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002575 =0: re-using the same window (default)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002576 =1: horizontally splitting the window first
2577 =2: vertically splitting the window first
Bram Moolenaar446cb832008-06-24 21:56:24 +00002578 =3: open file in new tab
2579 =4: act like "P" (ie. open previous window)
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002580 Note that |g:netrw_preview| may be used
2581 to get vertical splitting instead of
2582 horizontal splitting.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002583 =[servername,tab-number,window-number]
2584 Given a |List| such as this, a remote server
2585 named by the "servername" will be used for
2586 editing. It will also use the specified tab
2587 and window numbers to perform editing
2588 (see |clientserver|, |netrw-ctrl-r|)
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002589 This option does not affect the production of
2590 |:Lexplore| windows.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002591
Bram Moolenaar8d043172014-01-23 14:24:41 +01002592 Related topics:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002593 |g:netrw_alto| |g:netrw_altv|
2594 |netrw-C| |netrw-cr|
2595 |netrw-ctrl-r|
Bram Moolenaar8d043172014-01-23 14:24:41 +01002596
Bram Moolenaarff034192013-04-24 18:51:19 +02002597 *g:netrw_browsex_viewer* specify user's preference for a viewer: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002598 "kfmclient exec"
2599 "gnome-open"
2600< If >
2601 "-"
2602< is used, then netrwFileHandler() will look for
2603 a script/function to handle the given
2604 extension. (see |netrw_filehandler|).
2605
Bram Moolenaarff034192013-04-24 18:51:19 +02002606 *g:netrw_chgperm* Unix/Linux: "chmod PERM FILENAME"
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002607 Windows: "cacls FILENAME /e /p PERM"
2608 Used to change access permission for a file.
2609
Bram Moolenaarff034192013-04-24 18:51:19 +02002610 *g:netrw_compress* ="gzip"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002611 Will compress marked files with this
2612 command
2613
Bram Moolenaarff034192013-04-24 18:51:19 +02002614 *g:Netrw_corehandler* Allows one to specify something additional
Bram Moolenaar15146672011-10-20 22:22:38 +02002615 to do when handling <core> files via netrw's
2616 browser's "x" command (see |netrw-x|). If
2617 present, g:Netrw_corehandler specifies
2618 either one or more function references
2619 (see |Funcref|). (the capital g:Netrw...
2620 is required its holding a function reference)
2621
2622
Bram Moolenaarff034192013-04-24 18:51:19 +02002623 *g:netrw_ctags* ="ctags"
2624 The default external program used to create
2625 tags
Bram Moolenaarc236c162008-07-13 17:41:49 +00002626
Bram Moolenaarff034192013-04-24 18:51:19 +02002627 *g:netrw_cursor* = 2 (default)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002628 This option controls the use of the
Bram Moolenaaradc21822011-04-01 18:03:16 +02002629 |'cursorline'| (cul) and |'cursorcolumn'|
2630 (cuc) settings by netrw:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002631
Bram Moolenaaradc21822011-04-01 18:03:16 +02002632 Value Thin-Long-Tree Wide
2633 =0 u-cul u-cuc u-cul u-cuc
2634 =1 u-cul u-cuc cul u-cuc
2635 =2 cul u-cuc cul u-cuc
2636 =3 cul u-cuc cul cuc
2637 =4 cul cuc cul cuc
2638
2639 Where
2640 u-cul : user's |'cursorline'| setting used
2641 u-cuc : user's |'cursorcolumn'| setting used
2642 cul : |'cursorline'| locally set
2643 cuc : |'cursorcolumn'| locally set
2644
Bram Moolenaarff034192013-04-24 18:51:19 +02002645 *g:netrw_decompress* = { ".gz" : "gunzip" ,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002646 ".bz2" : "bunzip2" ,
2647 ".zip" : "unzip" ,
2648 ".tar" : "tar -xf"}
2649 A dictionary mapping suffices to
2650 decompression programs.
2651
Bram Moolenaaradc21822011-04-01 18:03:16 +02002652 *g:netrw_dirhistmax* =10: controls maximum quantity of past
2653 history. May be zero to supppress
2654 history.
2655 (related: |netrw-qb| |netrw-u| |netrw-U|)
2656
Bram Moolenaar97d62492012-11-15 21:28:22 +01002657 *g:netrw_dynamic_maxfilenamelen* =32: enables dynamic determination of
2658 |g:netrw_maxfilenamelen|, which affects
2659 local file long listing.
Bram Moolenaara6878372014-03-22 21:02:50 +01002660
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002661 *g:netrw_errorlvl* =0: error levels greater than or equal to
2662 this are permitted to be displayed
2663 0: notes
2664 1: warnings
2665 2: errors
2666
Bram Moolenaarff034192013-04-24 18:51:19 +02002667 *g:netrw_fastbrowse* =0: slow speed directory browsing;
Bram Moolenaar13600302014-05-22 18:26:40 +02002668 never re-uses directory listings;
Bram Moolenaar446cb832008-06-24 21:56:24 +00002669 always obtains directory listings.
2670 =1: medium speed directory browsing;
2671 re-use directory listings only
2672 when remote directory browsing.
2673 (default value)
2674 =2: fast directory browsing;
2675 only obtains directory listings when the
2676 directory hasn't been seen before
2677 (or |netrw-ctrl-l| is used).
2678
2679 Fast browsing retains old directory listing
2680 buffers so that they don't need to be
2681 re-acquired. This feature is especially
2682 important for remote browsing. However, if
2683 a file is introduced or deleted into or from
2684 such directories, the old directory buffer
2685 becomes out-of-date. One may always refresh
2686 such a directory listing with |netrw-ctrl-l|.
2687 This option gives the user the choice of
2688 trading off accuracy (ie. up-to-date listing)
2689 versus speed.
2690
Bram Moolenaar13600302014-05-22 18:26:40 +02002691 *g:netrw_ffkeep* (default: doesn't exist)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002692 If this variable exists and is zero, then
Bram Moolenaar13600302014-05-22 18:26:40 +02002693 netrw will not do a save and restore for
2694 |'fileformat'|.
2695
Bram Moolenaarff034192013-04-24 18:51:19 +02002696 *g:netrw_fname_escape* =' ?&;%'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002697 Used on filenames before remote reading/writing
Bram Moolenaar446cb832008-06-24 21:56:24 +00002698
Bram Moolenaarff034192013-04-24 18:51:19 +02002699 *g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings
Bram Moolenaar446cb832008-06-24 21:56:24 +00002700 that can show up as "directories" and "files"
2701 in the listing. This pattern is used to
2702 remove such embedded messages. By default its
2703 value is:
2704 '^total\s\+\d\+$\|
2705 ^Trying\s\+\d\+.*$\|
2706 ^KERBEROS_V\d rejected\|
2707 ^Security extensions not\|
2708 No such file\|
2709 : connect to address [0-9a-fA-F:]*
2710 : No route to host$'
2711
Bram Moolenaarff034192013-04-24 18:51:19 +02002712 *g:netrw_ftp_list_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002713 listing. Defaults:
2714 unix or g:netrw_cygwin set: : "ls -lF"
2715 otherwise "dir"
2716
2717
Bram Moolenaarff034192013-04-24 18:51:19 +02002718 *g:netrw_ftp_sizelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002719 listing, sorted by size of file.
2720 Defaults:
2721 unix or g:netrw_cygwin set: : "ls -slF"
2722 otherwise "dir"
2723
Bram Moolenaarff034192013-04-24 18:51:19 +02002724 *g:netrw_ftp_timelist_cmd* options for passing along to ftp for directory
Bram Moolenaar446cb832008-06-24 21:56:24 +00002725 listing, sorted by time of last modification.
2726 Defaults:
2727 unix or g:netrw_cygwin set: : "ls -tlF"
2728 otherwise "dir"
2729
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002730 *g:netrw_glob_escape* ='[]*?`{~$' (unix)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02002731 ='[]*?`{$' (windows
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002732 These characters in directory names are
Bram Moolenaar446cb832008-06-24 21:56:24 +00002733 escaped before applying glob()
2734
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002735 *g:netrw_gx* ="<cfile>"
2736 This option controls how gx (|netrw-gx|) picks
2737 up the text under the cursor. See |expand()|
2738 for possibilities.
2739
Bram Moolenaarff034192013-04-24 18:51:19 +02002740 *g:netrw_hide* Controlled by the "a" map (see |netrw-a|)
2741 =0 : show all
2742 =1 : show not-hidden files
2743 =2 : show hidden files only
Bram Moolenaar446cb832008-06-24 21:56:24 +00002744 default: =0
2745
Bram Moolenaarff034192013-04-24 18:51:19 +02002746 *g:netrw_home* The home directory for where bookmarks and
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002747 history are saved (as .netrwbook and
2748 .netrwhist).
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002749 Netrw uses |expand()|on the string.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002750 default: the first directory on the
2751 |'runtimepath'|
2752
Bram Moolenaarff034192013-04-24 18:51:19 +02002753 *g:netrw_keepdir* =1 (default) keep current directory immune from
Bram Moolenaar446cb832008-06-24 21:56:24 +00002754 the browsing directory.
2755 =0 keep the current directory the same as the
2756 browsing directory.
2757 The current browsing directory is contained in
2758 b:netrw_curdir (also see |netrw-c|)
2759
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002760 *g:netrw_keepj* ="keepj" (default) netrw attempts to keep the
2761 |:jumps| table unaffected.
2762 ="" netrw will not use |:keepjumps| with
2763 exceptions only for the
2764 saving/restoration of position.
2765
Bram Moolenaarff034192013-04-24 18:51:19 +02002766 *g:netrw_list_cmd* command for listing remote directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002767 default: (if ssh is executable)
2768 "ssh HOSTNAME ls -FLa"
2769
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002770 *g:netrw_list_cmd_options* If this variable exists, then its contents are
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002771 appended to the g:netrw_list_cmd. For
2772 example, use "2>/dev/null" to get rid of banner
2773 messages on unix systems.
2774
2775
Bram Moolenaarff034192013-04-24 18:51:19 +02002776 *g:netrw_liststyle* Set the default listing style:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002777 = 0: thin listing (one file per line)
2778 = 1: long listing (one file per line with time
2779 stamp information and file size)
2780 = 2: wide listing (multiple files in columns)
2781 = 3: tree style listing
Bram Moolenaar8d043172014-01-23 14:24:41 +01002782
Bram Moolenaarff034192013-04-24 18:51:19 +02002783 *g:netrw_list_hide* comma separated pattern list for hiding files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002784 Patterns are regular expressions (see |regexp|)
Bram Moolenaar8d043172014-01-23 14:24:41 +01002785 There's some special support for git-ignore
2786 files: you may add the output from the helper
2787 function 'netrw_gitignore#Hide() automatically
2788 hiding all gitignored files.
2789 For more details see |netrw-gitignore|.
2790
2791 Examples:
2792 let g:netrw_list_hide= '.*\.swp$'
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002793 let g:netrw_list_hide= netrw_gitignore#Hide().'.*\.swp$'
Bram Moolenaar8d043172014-01-23 14:24:41 +01002794 default: ""
Bram Moolenaar446cb832008-06-24 21:56:24 +00002795
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002796 *g:netrw_localcopycmd* ="cp" Linux/Unix/MacOS/Cygwin
2797 =expand("$COMSPEC") Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002798 Copies marked files (|netrw-mf|) to target
2799 directory (|netrw-mt|, |netrw-mc|)
2800
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002801 *g:netrw_localcopycmdopt* ='' Linux/Unix/MacOS/Cygwin
2802 =' \c copy' Windows
2803 Options for the |g:netrw_localcopycmd|
2804
2805 *g:netrw_localcopydircmd* ="cp" Linux/Unix/MacOS/Cygwin
2806 =expand("$COMSPEC") Windows
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002807 Copies directories to target directory.
2808 (|netrw-mc|, |netrw-mt|)
2809
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002810 *g:netrw_localcopydircmdopt* =" -R" Linux/Unix/MacOS/Cygwin
2811 =" /c xcopy /e /c /h/ /i /k" Windows
2812 Options for |g:netrw_localcopydircmd|
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002813
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002814 *g:netrw_localmkdir* ="mkdir" Linux/Unix/MacOS/Cygwin
2815 =expand("$COMSPEC") Windows
2816 command for making a local directory
2817
2818 *g:netrw_localmkdiropt* ="" Linux/Unix/MacOS/Cygwin
2819 =" /c mkdir" Windows
2820 Options for |g:netrw_localmkdir|
2821
2822 *g:netrw_localmovecmd* ="mv" Linux/Unix/MacOS/Cygwin
2823 =expand("$COMSPEC") Windows
Bram Moolenaar446cb832008-06-24 21:56:24 +00002824 Moves marked files (|netrw-mf|) to target
2825 directory (|netrw-mt|, |netrw-mm|)
2826
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002827 *g:netrw_localmovecmdopt* ="" Linux/Unix/MacOS/Cygwin
2828 =" /c move" Windows
2829 Options for |g:netrw_localmovecmd|
2830
2831 *g:netrw_localrmdir* ="rmdir" Linux/Unix/MacOS/Cygwin
2832 =expand("$COMSPEC") Windows
2833 Remove directory command (rmdir)
2834 This variable is only used if your vim is
2835 earlier than 7.4 or if your vim doesn't
2836 have patch#1107. Otherwise, |delete()|
2837 is used with the "d" option.
2838
2839 *g:netrw_localrmdiropt* ="" Linux/Unix/MacOS/Cygwin
2840 =" /c rmdir" Windows
2841 Options for |g:netrw_localrmdir|
Bram Moolenaar446cb832008-06-24 21:56:24 +00002842
Bram Moolenaarff034192013-04-24 18:51:19 +02002843 *g:netrw_maxfilenamelen* =32 by default, selected so as to make long
Bram Moolenaar446cb832008-06-24 21:56:24 +00002844 listings fit on 80 column displays.
2845 If your screen is wider, and you have file
2846 or directory names longer than 32 bytes,
2847 you may set this option to keep listings
2848 columnar.
2849
Bram Moolenaarff034192013-04-24 18:51:19 +02002850 *g:netrw_mkdir_cmd* command for making a remote directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002851 via ssh (also see |g:netrw_remote_mkdir|)
Bram Moolenaar446cb832008-06-24 21:56:24 +00002852 default: "ssh USEPORT HOSTNAME mkdir"
2853
Bram Moolenaar251e1912011-06-19 05:09:16 +02002854 *g:netrw_mousemaps* =1 (default) enables mouse buttons while
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002855 browsing to:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002856 leftmouse : open file/directory
2857 shift-leftmouse : mark file
2858 middlemouse : same as P
2859 rightmouse : remove file/directory
2860 =0: disables mouse maps
2861
Bram Moolenaar15146672011-10-20 22:22:38 +02002862 *g:netrw_nobeval* doesn't exist (default)
2863 If this variable exists, then balloon
2864 evaluation will be suppressed
2865 (see |'ballooneval'|)
2866
Bram Moolenaare0fa3742016-02-20 15:47:01 +01002867 *g:netrw_sizestyle* not defined: actual bytes (default)
2868 ="b" : actual bytes (default)
2869 ="h" : human-readable (ex. 5k, 4m, 3g)
2870 uses 1000 base
2871 ="H" : human-readable (ex. 5K, 4M, 3G)
2872 uses 1024 base
2873 The long listing (|netrw-i|) and query-file
2874 maps (|netrw-qf|) will display file size
2875 using the specified style.
2876
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002877 *g:netrw_usetab* if this variable exists and is non-zero, then
2878 the <tab> map supporting shrinking/expanding a
2879 Lexplore or netrw window will be enabled.
2880 (see |netrw-c-tab|)
2881
Bram Moolenaara6878372014-03-22 21:02:50 +01002882 *g:netrw_remote_mkdir* command for making a remote directory
Bram Moolenaar15146672011-10-20 22:22:38 +02002883 via ftp (also see |g:netrw_mkdir_cmd|)
2884 default: "mkdir"
2885
Bram Moolenaarff034192013-04-24 18:51:19 +02002886 *g:netrw_retmap* if it exists and is set to one, then:
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002887 * if in a netrw-selected file, AND
2888 * no normal-mode <2-leftmouse> mapping exists,
2889 then the <2-leftmouse> will be mapped for easy
Bram Moolenaar446cb832008-06-24 21:56:24 +00002890 return to the netrw browser window.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002891 example: click once to select and open a file,
2892 double-click to return.
2893
2894 Note that one may instead choose to:
2895 * let g:netrw_retmap= 1, AND
2896 * nmap <silent> YourChoice <Plug>NetrwReturn
2897 and have another mapping instead of
2898 <2-leftmouse> to invoke the return.
2899
2900 You may also use the |:Rexplore| command to do
2901 the same thing.
2902
Bram Moolenaar446cb832008-06-24 21:56:24 +00002903 default: =0
2904
Bram Moolenaar13600302014-05-22 18:26:40 +02002905 *g:netrw_rm_cmd* command for removing remote files
Bram Moolenaar446cb832008-06-24 21:56:24 +00002906 default: "ssh USEPORT HOSTNAME rm"
2907
Bram Moolenaar13600302014-05-22 18:26:40 +02002908 *g:netrw_rmdir_cmd* command for removing remote directories
Bram Moolenaar446cb832008-06-24 21:56:24 +00002909 default: "ssh USEPORT HOSTNAME rmdir"
2910
Bram Moolenaar13600302014-05-22 18:26:40 +02002911 *g:netrw_rmf_cmd* command for removing remote softlinks
Bram Moolenaar446cb832008-06-24 21:56:24 +00002912 default: "ssh USEPORT HOSTNAME rm -f"
2913
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01002914 *g:netrw_servername* use this variable to provide a name for
2915 |netrw-ctrl-r| to use for its server.
2916 default: "NETRWSERVER"
2917
Bram Moolenaara0f849e2015-10-30 14:37:44 +01002918 *g:netrw_sort_by* sort by "name", "time", "size", or
2919 "exten".
Bram Moolenaar446cb832008-06-24 21:56:24 +00002920 default: "name"
2921
Bram Moolenaarff034192013-04-24 18:51:19 +02002922 *g:netrw_sort_direction* sorting direction: "normal" or "reverse"
Bram Moolenaar446cb832008-06-24 21:56:24 +00002923 default: "normal"
2924
Bram Moolenaarff034192013-04-24 18:51:19 +02002925 *g:netrw_sort_options* sorting is done using |:sort|; this
Bram Moolenaarc236c162008-07-13 17:41:49 +00002926 variable's value is appended to the
2927 sort command. Thus one may ignore case,
2928 for example, with the following in your
2929 .vimrc: >
2930 let g:netrw_sort_options="i"
2931< default: ""
2932
Bram Moolenaarff034192013-04-24 18:51:19 +02002933 *g:netrw_sort_sequence* when sorting by name, first sort by the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002934 comma-separated pattern sequence. Note that
Bram Moolenaara6878372014-03-22 21:02:50 +01002935 any filigree added to indicate filetypes
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01002936 should be accounted for in your pattern.
Bram Moolenaar446cb832008-06-24 21:56:24 +00002937 default: '[\/]$,*,\.bak$,\.o$,\.h$,
2938 \.info$,\.swp$,\.obj$'
2939
Bram Moolenaarff034192013-04-24 18:51:19 +02002940 *g:netrw_special_syntax* If true, then certain files will be shown
Bram Moolenaar5b435d62012-04-05 17:33:26 +02002941 using special syntax in the browser:
Bram Moolenaar446cb832008-06-24 21:56:24 +00002942
2943 netrwBak : *.bak
2944 netrwCompress: *.gz *.bz2 *.Z *.zip
2945 netrwData : *.dat
2946 netrwHdr : *.h
2947 netrwLib : *.a *.so *.lib *.dll
2948 netrwMakefile: [mM]akefile *.mak
2949 netrwObj : *.o *.obj
2950 netrwTags : tags ANmenu ANtags
Bram Moolenaara6878372014-03-22 21:02:50 +01002951 netrwTilde : *
Bram Moolenaar446cb832008-06-24 21:56:24 +00002952 netrwTmp : tmp* *tmp
2953
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002954 In addition, those groups mentioned in
2955 |'suffixes'| are also added to the special
2956 file highlighting group.
2957 These syntax highlighting groups are linked
2958 to netrwGray or Folded by default
2959 (see |hl-Folded|), but one may put lines like >
Bram Moolenaar446cb832008-06-24 21:56:24 +00002960 hi link netrwCompress Visual
2961< into one's <.vimrc> to use one's own
Bram Moolenaara6878372014-03-22 21:02:50 +01002962 preferences. Alternatively, one may
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01002963 put such specifications into >
2964 .vim/after/syntax/netrw.vim.
2965< The netrwGray highlighting is set up by
2966 netrw when >
2967 * netrwGray has not been previously
2968 defined
2969 * the gui is running
2970< As an example, I myself use a dark-background
Bram Moolenaara6878372014-03-22 21:02:50 +01002971 colorscheme with the following in
2972 .vim/after/syntax/netrw.vim: >
2973
2974 hi netrwCompress term=NONE cterm=NONE gui=NONE ctermfg=10 guifg=green ctermbg=0 guibg=black
2975 hi netrwData term=NONE cterm=NONE gui=NONE ctermfg=9 guifg=blue ctermbg=0 guibg=black
2976 hi netrwHdr term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2977 hi netrwLex term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2978 hi netrwYacc term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
2979 hi netrwLib term=NONE cterm=NONE gui=NONE ctermfg=14 guifg=yellow
2980 hi netrwObj term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2981 hi netrwTilde term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2982 hi netrwTmp term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2983 hi netrwTags term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
2984 hi netrwDoc term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=yellow2 guibg=Blue3
2985 hi netrwSymLink term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=grey60
2986<
Bram Moolenaarff034192013-04-24 18:51:19 +02002987 *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines,
Bram Moolenaar446cb832008-06-24 21:56:24 +00002988 messages, banners, and whatnot that one doesn't
2989 want masquerading as "directories" and "files".
2990 Use this pattern to remove such embedded
2991 messages. By default its value is:
2992 '^total\s\+\d\+$'
2993
Bram Moolenaare6ae6222013-05-21 21:01:10 +02002994 *g:netrw_ssh_cmd* One may specify an executable command
2995 to use instead of ssh for remote actions
2996 such as listing, file removal, etc.
2997 default: ssh
2998
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02002999 *g:netrw_suppress_gx_mesg* =1 : browsers sometimes produce messages
3000 which are normally unwanted intermixed
3001 with the page.
3002 However, when using links, for example,
3003 those messages are what the browser produces.
3004 By setting this option to 0, netrw will not
3005 suppress browser messages.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003006
Bram Moolenaarff034192013-04-24 18:51:19 +02003007 *g:netrw_tmpfile_escape* =' &;'
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003008 escape() is applied to all temporary files
Bram Moolenaar446cb832008-06-24 21:56:24 +00003009 to escape these characters.
3010
Bram Moolenaarff034192013-04-24 18:51:19 +02003011 *g:netrw_timefmt* specify format string to vim's strftime().
Bram Moolenaar446cb832008-06-24 21:56:24 +00003012 The default, "%c", is "the preferred date
3013 and time representation for the current
3014 locale" according to my manpage entry for
3015 strftime(); however, not all are satisfied
3016 with it. Some alternatives:
3017 "%a %d %b %Y %T",
3018 " %a %Y-%m-%d %I-%M-%S %p"
3019 default: "%c"
3020
Bram Moolenaarff034192013-04-24 18:51:19 +02003021 *g:netrw_use_noswf* netrw normally avoids writing swapfiles
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003022 for browser buffers. However, under some
Bram Moolenaar446cb832008-06-24 21:56:24 +00003023 systems this apparently is causing nasty
3024 ml_get errors to appear; if you're getting
3025 ml_get errors, try putting
3026 let g:netrw_use_noswf= 0
3027 in your .vimrc.
Bram Moolenaara6878372014-03-22 21:02:50 +01003028 default: 1
Bram Moolenaar446cb832008-06-24 21:56:24 +00003029
Bram Moolenaarff034192013-04-24 18:51:19 +02003030 *g:netrw_winsize* specify initial size of new windows made with
Bram Moolenaar446cb832008-06-24 21:56:24 +00003031 "o" (see |netrw-o|), "v" (see |netrw-v|),
Bram Moolenaar251e1912011-06-19 05:09:16 +02003032 |:Hexplore| or |:Vexplore|. The g:netrw_winsize
3033 is an integer describing the percentage of the
3034 current netrw buffer's window to be used for
3035 the new window.
Bram Moolenaar15146672011-10-20 22:22:38 +02003036 If g:netrw_winsize is less than zero, then
3037 the absolute value of g:netrw_winsize lines
3038 or columns will be used for the new window.
Bram Moolenaar13600302014-05-22 18:26:40 +02003039 If g:netrw_winsize is zero, then a normal
3040 split will be made (ie. |'equalalways'| will
3041 take effect, for example).
Bram Moolenaar251e1912011-06-19 05:09:16 +02003042 default: 50 (for 50%)
Bram Moolenaar446cb832008-06-24 21:56:24 +00003043
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003044 *g:netrw_wiw* =1 specifies the minimum window width to use
3045 when shrinking a netrw/Lexplore window
3046 (see |netrw-c-tab|).
3047
Bram Moolenaarff034192013-04-24 18:51:19 +02003048 *g:netrw_xstrlen* Controls how netrw computes string lengths,
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003049 including multi-byte characters' string
Bram Moolenaar446cb832008-06-24 21:56:24 +00003050 length. (thanks to N Weibull, T Mechelynck)
3051 =0: uses Vim's built-in strlen()
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003052 =1: number of codepoints (Latin a + combining
Bram Moolenaar446cb832008-06-24 21:56:24 +00003053 circumflex is two codepoints) (DEFAULT)
3054 =2: number of spacing codepoints (Latin a +
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003055 combining circumflex is one spacing
Bram Moolenaar446cb832008-06-24 21:56:24 +00003056 codepoint; a hard tab is one; wide and
3057 narrow CJK are one each; etc.)
3058 =3: virtual length (counting tabs as anything
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003059 between 1 and |'tabstop'|, wide CJK as 2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003060 rather than 1, Arabic alif as zero when
3061 immediately preceded by lam, one
3062 otherwise, etc)
3063
Bram Moolenaarff034192013-04-24 18:51:19 +02003064 *g:NetrwTopLvlMenu* This variable specifies the top level
Bram Moolenaar446cb832008-06-24 21:56:24 +00003065 menu name; by default, it's "Netrw.". If
3066 you wish to change this, do so in your
3067 .vimrc.
3068
3069NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible* {{{2
3070
3071Netrw has been designed to handle user options by saving them, setting the
3072options to something that's compatible with netrw's needs, and then restoring
3073them. However, the autochdir option: >
3074 :set acd
Bram Moolenaara6878372014-03-22 21:02:50 +01003075is problematic. Autochdir sets the current directory to that containing the
Bram Moolenaar446cb832008-06-24 21:56:24 +00003076file you edit; this apparently also applies to directories. In other words,
3077autochdir sets the current directory to that containing the "file" (even if
3078that "file" is itself a directory).
3079
Bram Moolenaar15146672011-10-20 22:22:38 +02003080NETRW SETTINGS WINDOW *netrw-settings-window* {{{2
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003081
3082With the NetrwSettings.vim plugin, >
3083 :NetrwSettings
3084will bring up a window with the many variables that netrw uses for its
Bram Moolenaar1afcace2005-11-25 19:54:28 +00003085settings. You may change any of their values; when you save the file, the
3086settings therein will be used. One may also press "?" on any of the lines for
3087help on what each of the variables do.
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003088
Bram Moolenaar5b435d62012-04-05 17:33:26 +02003089(also see: |netrw-browser-var| |netrw-protocol| |netrw-variables|)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003090
Bram Moolenaar5b8d8fd2005-08-16 23:01:50 +00003091
Bram Moolenaar69a7cb42004-06-20 12:51:53 +00003092==============================================================================
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003093OBTAINING A FILE *netrw-obtain* *netrw-O* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003094
3095If there are no marked files:
3096
3097 When browsing a remote directory, one may obtain a file under the cursor
3098 (ie. get a copy on your local machine, but not edit it) by pressing the O
3099 key.
3100
3101If there are marked files:
3102
3103 The marked files will be obtained (ie. a copy will be transferred to your
3104 local machine, but not set up for editing).
3105
3106Only ftp and scp are supported for this operation (but since these two are
3107available for browsing, that shouldn't be a problem). The status bar will
3108then show, on its right hand side, a message like "Obtaining filename". The
3109statusline will be restored after the transfer is complete.
3110
3111Netrw can also "obtain" a file using the local browser. Netrw's display
3112of a directory is not necessarily the same as Vim's "current directory",
3113unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select
3114a file using the local browser (by putting the cursor on it) and pressing
3115"O" will then "obtain" the file; ie. copy it to Vim's current directory.
3116
3117Related topics:
3118 * To see what the current directory is, use |:pwd|
3119 * To make the currently browsed directory the current directory, see |netrw-c|
3120 * To automatically make the currently browsed directory the current
3121 directory, see |g:netrw_keepdir|.
3122
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003123 *netrw-newfile* *netrw-createfile*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003124OPEN A NEW FILE IN NETRW'S CURRENT DIRECTORY *netrw-%* {{{2
Bram Moolenaarc236c162008-07-13 17:41:49 +00003125
Bram Moolenaara6878372014-03-22 21:02:50 +01003126To open a new file in netrw's current directory, press "%". This map
3127will query the user for a new filename; an empty file by that name will
3128be placed in the netrw's current directory (ie. b:netrw_curdir).
Bram Moolenaarc236c162008-07-13 17:41:49 +00003129
Bram Moolenaar8d043172014-01-23 14:24:41 +01003130Related topics: |netrw-d|
3131
Bram Moolenaarc236c162008-07-13 17:41:49 +00003132
Bram Moolenaar446cb832008-06-24 21:56:24 +00003133PREVIEW WINDOW *netrw-p* *netrw-preview* {{{2
3134
3135One may use a preview window by using the "p" key when the cursor is atop the
3136desired filename to be previewed. The display will then split to show both
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003137the browser (where the cursor will remain) and the file (see |:pedit|). By
3138default, the split will be taken horizontally; one may use vertical splitting
3139if one has set |g:netrw_preview| first.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003140
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003141An interesting set of netrw settings is: >
3142
3143 let g:netrw_preview = 1
3144 let g:netrw_liststyle = 3
3145 let g:netrw_winsize = 30
3146
3147These will:
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003148
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003149 1. Make vertical splitting the default for previewing files
3150 2. Make the default listing style "tree"
3151 3. When a vertical preview window is opened, the directory listing
Bram Moolenaar5b435d62012-04-05 17:33:26 +02003152 will use only 30% of the columns available; the rest of the window
3153 is used for the preview window.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003154
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003155 Related: if you like this idea, you may also find :Lexplore
3156 (|netrw-:Lexplore|) or |g:netrw_chgwin| of interest
3157
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003158Also see: |g:netrw_chgwin| |netrw-P| |'previewwindow'| |CTRL-W_z| |:pclose|
Bram Moolenaara6878372014-03-22 21:02:50 +01003159
3160
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003161PREVIOUS WINDOW *netrw-P* *netrw-prvwin* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003162
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003163To edit a file or directory under the cursor in the previously used (last
3164accessed) window (see :he |CTRL-W_p|), press a "P". If there's only one
3165window, then the one window will be horizontally split (by default).
Bram Moolenaar446cb832008-06-24 21:56:24 +00003166
3167If there's more than one window, the previous window will be re-used on
3168the selected file/directory. If the previous window's associated buffer
3169has been modified, and there's only one window with that buffer, then
3170the user will be asked if s/he wishes to save the buffer first (yes,
3171no, or cancel).
3172
Bram Moolenaarff034192013-04-24 18:51:19 +02003173Related Actions |netrw-cr| |netrw-o| |netrw-t| |netrw-v|
Bram Moolenaar15146672011-10-20 22:22:38 +02003174Associated setting variables:
3175 |g:netrw_alto| control above/below splitting
3176 |g:netrw_altv| control right/left splitting
3177 |g:netrw_preview| control horizontal vs vertical splitting
3178 |g:netrw_winsize| control initial sizing
3179
Bram Moolenaara6878372014-03-22 21:02:50 +01003180Also see: |g:netrw_chgwin| |netrw-p|
3181
Bram Moolenaar446cb832008-06-24 21:56:24 +00003182
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003183REFRESHING THE LISTING *netrw-refresh* *netrw-ctrl-l* *netrw-ctrl_l* {{{2
Bram Moolenaar446cb832008-06-24 21:56:24 +00003184
3185To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
3186hit the <cr> when atop the ./ directory entry in the listing. One may also
3187refresh a local directory by using ":e .".
3188
3189
Bram Moolenaarff034192013-04-24 18:51:19 +02003190REVERSING SORTING ORDER *netrw-r* *netrw-reverse* {{{2
3191
3192One may toggle between normal and reverse sorting order by pressing the
3193"r" key.
3194
3195Related topics: |netrw-s|
3196Associated setting variable: |g:netrw_sort_direction|
3197
3198
Bram Moolenaar446cb832008-06-24 21:56:24 +00003199RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R* {{{2
3200
3201If there are no marked files: (see |netrw-mf|)
3202
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003203 Renaming files and directories involves moving the cursor to the
Bram Moolenaar446cb832008-06-24 21:56:24 +00003204 file/directory to be moved (renamed) and pressing "R". You will then be
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003205 queried for what you want the file/directory to be renamed to. You may
3206 select a range of lines with the "V" command (visual selection), and then
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003207 press "R"; you will be queried for each file as to what you want it
3208 renamed to.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003209
3210If there are marked files: (see |netrw-mf|)
3211
3212 Marked files will be renamed (moved). You will be queried as above in
3213 order to specify where you want the file/directory to be moved.
3214
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003215 If you answer a renaming query with a "s/frompattern/topattern/", then
3216 subsequent files on the marked file list will be renamed by taking each
3217 name, applying that substitute, and renaming each file to the result.
3218 As an example : >
3219
3220 mr [query: reply with *.c]
3221 R [query: reply with s/^\(.*\)\.c$/\1.cpp/]
3222<
3223 This example will mark all *.c files and then rename them to *.cpp
3224 files.
3225
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003226 The ctrl-X character has special meaning for renaming files: >
3227
3228 <c-x> : a single ctrl-x tells netrw to ignore the portion of the response
3229 lying between the last '/' and the ctrl-x.
3230
3231 <c-x><c-x> : a pair of contiguous ctrl-x's tells netrw to ignore any
3232 portion of the string preceding the double ctrl-x's.
3233<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003234 WARNING:~
3235
3236 Note that moving files is a dangerous operation; copies are safer. That's
3237 because a "move" for remote files is actually a copy + delete -- and if
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003238 the copy fails and the delete succeeds you may lose the file.
Bram Moolenaara6878372014-03-22 21:02:50 +01003239 Use at your own risk.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003240
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003241The *g:netrw_rename_cmd* variable is used to implement remote renaming. By
3242default its value is: >
Bram Moolenaar446cb832008-06-24 21:56:24 +00003243
3244 ssh HOSTNAME mv
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003245<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003246One may rename a block of files and directories by selecting them with
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003247V (|linewise-visual|) when using thin style.
3248
3249See |cmdline-editing| for more on how to edit the command line; in particular,
3250you'll find <ctrl-f> (initiates cmdline window editing) and <ctrl-c> (uses the
3251command line under the cursor) useful in conjunction with the R command.
Bram Moolenaar446cb832008-06-24 21:56:24 +00003252
3253
Bram Moolenaar446cb832008-06-24 21:56:24 +00003254SELECTING SORTING STYLE *netrw-s* *netrw-sort* {{{2
3255
3256One may select the sorting style by name, time, or (file) size. The "s" map
3257allows one to circulate amongst the three choices; the directory listing will
3258automatically be refreshed to reflect the selected style.
3259
3260Related topics: |netrw-r| |netrw-S|
3261Associated setting variables: |g:netrw_sort_by| |g:netrw_sort_sequence|
3262
3263
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003264SETTING EDITING WINDOW *netrw-editwindow* *netrw-C* *netrw-:NetrwC* {{{2
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003265
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003266One may select a netrw window for editing with the "C" mapping, using the
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003267:NetrwC [win#] command, or by setting |g:netrw_chgwin| to the selected window
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003268number. Subsequent selection of a file to edit (|netrw-cr|) will use that
3269window.
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003270
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003271 * C : by itself, will select the current window holding a netrw buffer
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003272 for subsequent editing via |netrw-cr|. The C mapping is only available
3273 while in netrw buffers.
Bram Moolenaar13600302014-05-22 18:26:40 +02003274
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003275 * [count]C : the count will be used as the window number to be used
3276 for subsequent editing via |netrw-cr|.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003277
3278 * :NetrwC will set |g:netrw_chgwin| to the current window
3279
3280 * :NetrwC win# will set |g:netrw_chgwin| to the specified window
3281 number
3282
Bram Moolenaar13600302014-05-22 18:26:40 +02003283Using >
3284 let g:netrw_chgwin= -1
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003285will restore the default editing behavior
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003286(ie. subsequent editing will use the current window).
Bram Moolenaar13600302014-05-22 18:26:40 +02003287
Bram Moolenaar8d043172014-01-23 14:24:41 +01003288Related topics: |netrw-cr| |g:netrw_browse_split|
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003289Associated setting variables: |g:netrw_chgwin|
3290
3291
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003292SHRINKING OR EXPANDING A NETRW OR LEXPLORE WINDOW *netrw-c-tab* {{{2
3293
3294The <c-tab> key will toggle a netrw or |:Lexplore| window's width,
3295but only if |g:netrw_usetab| exists and is non-zero (and, of course,
3296only if your terminal supports differentiating <c-tab> from a plain
3297<tab>).
3298
3299 * If the current window is a netrw window, toggle its width
3300 (between |g:netrw_wiw| and its original width)
3301
3302 * Else if there is a |:Lexplore| window in the current tab, toggle
3303 its width
3304
3305 * Else bring up a |:Lexplore| window
3306
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003307If |g:netrw_usetab| exists and is zero, or if there is a pre-existing mapping
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003308for <c-tab>, then the <c-tab> will not be mapped. One may map something other
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003309than a <c-tab>, too: (but you'll still need to have had |g:netrw_usetab| set). >
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003310
3311 nmap <unique> (whatever) <Plug>NetrwShrink
3312<
3313Related topics: |:Lexplore|
3314Associated setting variable: |g:netrw_usetab|
3315
3316
3317USER SPECIFIED MAPS *netrw-usermaps* {{{1
3318
3319One may make customized user maps. Specify a variable, |g:Netrw_UserMaps|,
3320to hold a |List| of lists of keymap strings and function names: >
3321
3322 [["keymap-sequence","ExampleUserMapFunc"],...]
3323<
3324When netrw is setting up maps for a netrw buffer, if |g:Netrw_UserMaps|
3325exists, then the internal function netrw#UserMaps(islocal) is called.
3326This function goes through all the entries in the |g:Netrw_UserMaps| list:
3327
3328 * sets up maps: >
3329 nno <buffer> <silent> KEYMAP-SEQUENCE
3330 :call s:UserMaps(islocal,"ExampleUserMapFunc")
3331< * refreshes if result from that function call is the string
3332 "refresh"
3333 * if the result string is not "", then that string will be
3334 executed (:exe result)
3335 * if the result is a List, then the above two actions on results
3336 will be taken for every string in the result List
3337
3338The user function is passed one argument; it resembles >
3339
3340 fun! ExampleUserMapFunc(islocal)
3341<
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003342where a:islocal is 1 if its a local-directory system call or 0 when
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003343remote-directory system call.
3344
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003345 *netrw-call* *netrw-expose* *netrw-modify*
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003346Use netrw#Expose("varname") to access netrw-internal (script-local)
3347 variables.
3348Use netrw#Modify("varname",newvalue) to change netrw-internal variables.
3349Use netrw#Call("funcname"[,args]) to call a netrw-internal function with
3350 specified arguments.
3351
3352Example: Get a copy of netrw's marked file list: >
3353
3354 let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")
3355<
3356Example: Modify the value of netrw's marked file list: >
3357
3358 call netrw#Modify("netrwmarkfilelist",[])
3359<
3360Example: Clear netrw's marked file list via a mapping on gu >
3361 " ExampleUserMap: {{{2
3362 fun! ExampleUserMap(islocal)
3363 call netrw#Modify("netrwmarkfilelist",[])
3364 call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
3365 let retval= ["refresh"]
3366 return retval
3367 endfun
3368 let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]
3369<
3370
Bram Moolenaar446cb832008-06-24 21:56:24 +0000337110. Problems and Fixes *netrw-problems* {{{1
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003372
3373 (This section is likely to grow as I get feedback)
3374 (also see |netrw-debug|)
Bram Moolenaar488c6512005-08-11 20:09:58 +00003375 *netrw-p1*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003376 P1. I use windows 95, and my ftp dumps four blank lines at the
3377 end of every read.
3378
3379 See |netrw-fixup|, and put the following into your
3380 <.vimrc> file:
3381
3382 let g:netrw_win95ftp= 1
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003383
Bram Moolenaar488c6512005-08-11 20:09:58 +00003384 *netrw-p2*
Bram Moolenaar9964e462007-05-05 17:54:07 +00003385 P2. I use Windows, and my network browsing with ftp doesn't sort by
3386 time or size! -or- The remote system is a Windows server; why
3387 don't I get sorts by time or size?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003388
3389 Windows' ftp has a minimal support for ls (ie. it doesn't
3390 accept sorting options). It doesn't support the -F which
3391 gives an explanatory character (ABC/ for "ABC is a directory").
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003392 Netrw then uses "dir" to get both its thin and long listings.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003393 If you think your ftp does support a full-up ls, put the
3394 following into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003395
Bram Moolenaar9964e462007-05-05 17:54:07 +00003396 let g:netrw_ftp_list_cmd = "ls -lF"
3397 let g:netrw_ftp_timelist_cmd= "ls -tlF"
3398 let g:netrw_ftp_sizelist_cmd= "ls -slF"
3399<
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003400 Alternatively, if you have cygwin on your Windows box, put
Bram Moolenaar9964e462007-05-05 17:54:07 +00003401 into your <.vimrc>: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003402
3403 let g:netrw_cygwin= 1
Bram Moolenaar9964e462007-05-05 17:54:07 +00003404<
3405 This problem also occurs when the remote system is Windows.
3406 In this situation, the various g:netrw_ftp_[time|size]list_cmds
3407 are as shown above, but the remote system will not correctly
3408 modify its listing behavior.
3409
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003410
Bram Moolenaar488c6512005-08-11 20:09:58 +00003411 *netrw-p3*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003412 P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw
3413 used ssh! That wasn't what I asked for...
3414
3415 Netrw has two methods for browsing remote directories: ssh
3416 and ftp. Unless you specify ftp specifically, ssh is used.
3417 When it comes time to do download a file (not just a directory
3418 listing), netrw will use the given protocol to do so.
3419
Bram Moolenaar488c6512005-08-11 20:09:58 +00003420 *netrw-p4*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003421 P4. I would like long listings to be the default.
3422
Bram Moolenaar446cb832008-06-24 21:56:24 +00003423 Put the following statement into your |.vimrc|: >
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003424
Bram Moolenaar446cb832008-06-24 21:56:24 +00003425 let g:netrw_liststyle= 1
3426<
3427 Check out |netrw-browser-var| for more customizations that
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003428 you can set.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003429
Bram Moolenaar488c6512005-08-11 20:09:58 +00003430 *netrw-p5*
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003431 P5. My times come up oddly in local browsing
3432
3433 Does your system's strftime() accept the "%c" to yield dates
Bram Moolenaarff034192013-04-24 18:51:19 +02003434 such as "Sun Apr 27 11:49:23 1997"? If not, do a
3435 "man strftime" and find out what option should be used. Then
3436 put it into your |.vimrc|: >
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003437
Bram Moolenaar446cb832008-06-24 21:56:24 +00003438 let g:netrw_timefmt= "%X" (where X is the option)
3439<
Bram Moolenaar488c6512005-08-11 20:09:58 +00003440 *netrw-p6*
Bram Moolenaar3fdfa4a2004-10-07 21:02:47 +00003441 P6. I want my current directory to track my browsing.
3442 How do I do that?
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003443
Bram Moolenaar446cb832008-06-24 21:56:24 +00003444 Put the following line in your |.vimrc|:
3445>
Bram Moolenaar433f7c82006-03-21 21:29:36 +00003446 let g:netrw_keepdir= 0
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003447<
Bram Moolenaar9964e462007-05-05 17:54:07 +00003448 *netrw-p7*
3449 P7. I use Chinese (or other non-ascii) characters in my filenames, and
3450 netrw (Explore, Sexplore, Hexplore, etc) doesn't display them!
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003451
Bram Moolenaar9964e462007-05-05 17:54:07 +00003452 (taken from an answer provided by Wu Yongwei on the vim
3453 mailing list)
Bram Moolenaara6878372014-03-22 21:02:50 +01003454 I now see the problem. Your code page is not 936, right? Vim
Bram Moolenaar9964e462007-05-05 17:54:07 +00003455 seems only able to open files with names that are valid in the
3456 current code page, as are many other applications that do not
3457 use the Unicode version of Windows APIs. This is an OS-related
3458 issue. You should not have such problems when the system
3459 locale uses UTF-8, such as modern Linux distros.
3460
3461 (...it is one more reason to recommend that people use utf-8!)
3462
3463 *netrw-p8*
3464 P8. I'm getting "ssh is not executable on your system" -- what do I
3465 do?
3466
3467 (Dudley Fox) Most people I know use putty for windows ssh. It
3468 is a free ssh/telnet application. You can read more about it
3469 here:
3470
3471 http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also:
3472
3473 (Marlin Unruh) This program also works for me. It's a single
3474 executable, so he/she can copy it into the Windows\System32
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003475 folder and create a shortcut to it.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003476
3477 (Dudley Fox) You might also wish to consider plink, as it
3478 sounds most similar to what you are looking for. plink is an
3479 application in the putty suite.
3480
3481 http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink
3482
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003483 (Vissale Neang) Maybe you can try OpenSSH for windows, which
Bram Moolenaar9964e462007-05-05 17:54:07 +00003484 can be obtained from:
3485
3486 http://sshwindows.sourceforge.net/
3487
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003488 It doesn't need the full Cygwin package.
Bram Moolenaar9964e462007-05-05 17:54:07 +00003489
3490 (Antoine Mechelynck) For individual Unix-like programs needed
3491 for work in a native-Windows environment, I recommend getting
3492 them from the GnuWin32 project on sourceforge if it has them:
3493
3494 http://gnuwin32.sourceforge.net/
3495
3496 Unlike Cygwin, which sets up a Unix-like virtual machine on
3497 top of Windows, GnuWin32 is a rewrite of Unix utilities with
3498 Windows system calls, and its programs works quite well in the
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003499 cmd.exe "Dos box".
Bram Moolenaar9964e462007-05-05 17:54:07 +00003500
3501 (dave) Download WinSCP and use that to connect to the server.
3502 In Preferences > Editors, set gvim as your editor:
3503
3504 - Click "Add..."
3505 - Set External Editor (adjust path as needed, include
3506 the quotes and !.! at the end):
3507 "c:\Program Files\Vim\vim70\gvim.exe" !.!
3508 - Check that the filetype in the box below is
3509 {asterisk}.{asterisk} (all files), or whatever types
3510 you want (cec: change {asterisk} to * ; I had to
3511 write it that way because otherwise the helptags
Bram Moolenaar446cb832008-06-24 21:56:24 +00003512 system thinks it's a tag)
3513 - Make sure it's at the top of the listbox (click it,
3514 then click "Up" if it's not)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003515 If using the Norton Commander style, you just have to hit <F4>
3516 to edit a file in a local copy of gvim.
3517
3518 (Vit Gottwald) How to generate public/private key and save
3519 public key it on server: >
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02003520 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
3521 (8.3 Getting ready for public key authentication)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003522<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003523 How to use a private key with 'pscp': >
3524
Bram Moolenaar5ac3b1a2010-07-27 22:50:36 +02003525 http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
3526 (5.2.4 Using public key authentication with PSCP)
Bram Moolenaar9964e462007-05-05 17:54:07 +00003527<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003528 (Ben Schmidt) I find the ssh included with cwRsync is
3529 brilliant, and install cwRsync or cwRsyncServer on most
3530 Windows systems I come across these days. I guess COPSSH,
3531 packed by the same person, is probably even better for use as
3532 just ssh on Windows, and probably includes sftp, etc. which I
3533 suspect the cwRsync doesn't, though it might
3534
Bram Moolenaar9964e462007-05-05 17:54:07 +00003535 (cec) To make proper use of these suggestions above, you will
3536 need to modify the following user-settable variables in your
3537 .vimrc:
3538
Bram Moolenaar446cb832008-06-24 21:56:24 +00003539 |g:netrw_ssh_cmd| |g:netrw_list_cmd| |g:netrw_mkdir_cmd|
3540 |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd|
Bram Moolenaar9964e462007-05-05 17:54:07 +00003541
3542 The first one (|g:netrw_ssh_cmd|) is the most important; most
3543 of the others will use the string in g:netrw_ssh_cmd by
3544 default.
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003545
Bram Moolenaar9964e462007-05-05 17:54:07 +00003546 *netrw-p9* *netrw-ml_get*
3547 P9. I'm browsing, changing directory, and bang! ml_get errors
3548 appear and I have to kill vim. Any way around this?
3549
3550 Normally netrw attempts to avoid writing swapfiles for
3551 its temporary directory buffers. However, on some systems
3552 this attempt appears to be causing ml_get errors to
3553 appear. Please try setting |g:netrw_use_noswf| to 0
3554 in your <.vimrc>: >
3555 let g:netrw_use_noswf= 0
3556<
Bram Moolenaar446cb832008-06-24 21:56:24 +00003557 *netrw-p10*
3558 P10. I'm being pestered with "[something] is a directory" and
3559 "Press ENTER or type command to continue" prompts...
3560
3561 The "[something] is a directory" prompt is issued by Vim,
3562 not by netrw, and there appears to be no way to work around
3563 it. Coupled with the default cmdheight of 1, this message
3564 causes the "Press ENTER..." prompt. So: read |hit-enter|;
3565 I also suggest that you set your |'cmdheight'| to 2 (or more) in
3566 your <.vimrc> file.
3567
3568 *netrw-p11*
3569 P11. I want to have two windows; a thin one on the left and my editing
Bram Moolenaar251e1912011-06-19 05:09:16 +02003570 window on the right. How may I accomplish this?
Bram Moolenaar446cb832008-06-24 21:56:24 +00003571
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003572 You probably want netrw running as in a side window. If so, you
3573 will likely find that ":[N]Lexplore" does what you want. The
3574 optional "[N]" allows you to select the quantity of columns you
Bram Moolenaard7464be2015-11-01 16:49:04 +01003575 wish the |:Lexplore|r window to start with (see |g:netrw_winsize|
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003576 for how this parameter works).
3577
3578 Previous solution:
3579
Bram Moolenaar446cb832008-06-24 21:56:24 +00003580 * Put the following line in your <.vimrc>:
3581 let g:netrw_altv = 1
3582 * Edit the current directory: :e .
3583 * Select some file, press v
3584 * Resize the windows as you wish (see |CTRL-W_<| and
3585 |CTRL-W_>|). If you're using gvim, you can drag
3586 the separating bar with your mouse.
3587 * When you want a new file, use ctrl-w h to go back to the
3588 netrw browser, select a file, then press P (see |CTRL-W_h|
3589 and |netrw-P|). If you're using gvim, you can press
3590 <leftmouse> in the browser window and then press the
3591 <middlemouse> to select the file.
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003592
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003593
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003594 *netrw-p12*
3595 P12. My directory isn't sorting correctly, or unwanted letters are
3596 appearing in the listed filenames, or things aren't lining
3597 up properly in the wide listing, ...
3598
3599 This may be due to an encoding problem. I myself usually use
3600 utf-8, but really only use ascii (ie. bytes from 32-126).
3601 Multibyte encodings use two (or more) bytes per character.
3602 You may need to change |g:netrw_sepchr| and/or |g:netrw_xstrlen|.
3603
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003604 *netrw-p13*
3605 P13. I'm a Windows + putty + ssh user, and when I attempt to browse,
3606 the directories are missing trailing "/"s so netrw treats them
3607 as file transfers instead of as attempts to browse
3608 subdirectories. How may I fix this?
3609
3610 (mikeyao) If you want to use vim via ssh and putty under Windows,
3611 try combining the use of pscp/psftp with plink. pscp/psftp will
3612 be used to connect and plink will be used to execute commands on
3613 the server, for example: list files and directory using 'ls'.
3614
3615 These are the settings I use to do this:
3616>
3617 " list files, it's the key setting, if you haven't set,
3618 " you will get a blank buffer
3619 let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
3620 " if you haven't add putty directory in system path, you should
3621 " specify scp/sftp command. For examples:
3622 "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
3623 "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
3624<
Bram Moolenaar251e1912011-06-19 05:09:16 +02003625 *netrw-p14*
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003626 P14. I would like to speed up writes using Nwrite and scp/ssh
Bram Moolenaar251e1912011-06-19 05:09:16 +02003627 style connections. How? (Thomer M. Gil)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003628
Bram Moolenaar251e1912011-06-19 05:09:16 +02003629 Try using ssh's ControlMaster and ControlPath (see the ssh_config
3630 man page) to share multiple ssh connections over a single network
3631 connection. That cuts out the cryptographic handshake on each
3632 file write, sometimes speeding it up by an order of magnitude.
3633 (see http://thomer.com/howtos/netrw_ssh.html)
3634 (included by permission)
3635
3636 Add the following to your ~/.ssh/config: >
3637
3638 # you change "*" to the hostname you care about
3639 Host *
3640 ControlMaster auto
3641 ControlPath /tmp/%r@%h:%p
3642
3643< Then create an ssh connection to the host and leave it running: >
3644
3645 ssh -N host.domain.com
3646
3647< Now remotely open a file with Vim's Netrw and enjoy the
3648 zippiness: >
3649
3650 vim scp://host.domain.com//home/user/.bashrc
3651<
3652 *netrw-p15*
3653 P15. How may I use a double-click instead of netrw's usual single click
3654 to open a file or directory? (Ben Fritz)
3655
3656 First, disable netrw's mapping with >
3657 let g:netrw_mousemaps= 0
3658< and then create a netrw buffer only mapping in
3659 $HOME/.vim/after/ftplugin/netrw.vim: >
3660 nmap <buffer> <2-leftmouse> <CR>
3661< Note that setting g:netrw_mousemaps to zero will turn off
3662 all netrw's mouse mappings, not just the <leftmouse> one.
3663 (see |g:netrw_mousemaps|)
Bram Moolenaar00a927d2010-05-14 23:24:24 +02003664
Bram Moolenaar13600302014-05-22 18:26:40 +02003665 *netrw-p16*
3666 P16. When editing remote files (ex. :e ftp://hostname/path/file),
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003667 under Windows I get an |E303| message complaining that its unable
Bram Moolenaar13600302014-05-22 18:26:40 +02003668 to open a swap file.
3669
3670 (romainl) It looks like you are starting Vim from a protected
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003671 directory. Start netrw from your $HOME or other writable
Bram Moolenaar13600302014-05-22 18:26:40 +02003672 directory.
3673
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003674 *netrw-p17*
3675 P17. Netrw is closing buffers on its own.
3676 What steps will reproduce the problem?
3677 1. :Explore, navigate directories, open a file
3678 2. :Explore, open another file
3679 3. Buffer opened in step 1 will be closed. o
3680 What is the expected output? What do you see instead?
3681 I expect both buffers to exist, but only the last one does.
3682
3683 (Lance) Problem is caused by "set autochdir" in .vimrc.
3684 (drchip) I am able to duplicate this problem with |'acd'| set.
3685 It appears that the buffers are not exactly closed;
3686 a ":ls!" will show them (although ":ls" does not).
3687
3688 *netrw-P18*
3689 P18. How to locally edit a file that's only available via
3690 another server accessible via ssh?
3691 See http://stackoverflow.com/questions/12469645/
3692 "Using Vim to Remotely Edit A File on ServerB Only
3693 Accessible From ServerA"
3694
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003695 *netrw-P19*
3696 P19. How do I get numbering on in directory listings?
3697 With |g:netrw_bufsettings|, you can control netrw's buffer
3698 settings; try putting >
3699 let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
3700< in your .vimrc. If you'd like to have relative numbering
3701 instead, try >
3702 let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
3703<
3704 *netrw-P20*
3705 P20. How may I have gvim start up showing a directory listing?
3706 Try putting the following code snippet into your .vimrc: >
3707 augroup VimStartup
3708 au!
3709 au VimEnter * if expand("%") == "" && argc() == 0 &&
3710 \ (v:servername =~ 'GVIM\d*' || v:servername == "")
3711 \ | e . | endif
3712 augroup END
3713< You may use Lexplore instead of "e" if you're so inclined.
3714 This snippet assumes that you have client-server enabled
3715 (ie. a "huge" vim version).
3716
3717 *netrw-P21*
3718 P21. I've made a directory (or file) with an accented character, but
3719 netrw isn't letting me enter that directory/read that file:
3720
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003721 Its likely that the shell or o/s is using a different encoding
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003722 than you have vim (netrw) using. A patch to vim supporting
3723 "systemencoding" may address this issue in the future; for
3724 now, just have netrw use the proper encoding. For example: >
3725
3726 au FileType netrw set enc=latin1
3727<
3728 *netrw-P22*
3729 P22. I get an error message when I try to copy or move a file:
3730
3731 **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
3732
3733 What's wrong?
3734
3735 Netrw uses several system level commands to do things (see
3736
3737 |g:netrw_localcopycmd|, |g:netrw_localmovecmd|,
3738 |g:netrw_localrmdir|, |g:netrw_mkdir_cmd|).
3739
3740 You may need to adjust the default commands for one or more of
3741 these commands by setting them properly in your .vimrc. Another
3742 source of difficulty is that these commands use vim's local
3743 directory, which may not be the same as the browsing directory
3744 shown by netrw (see |g:netrw_keepdir|).
3745
3746
Bram Moolenaarc0197e22004-09-13 20:26:32 +00003747==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +0000374811. Debugging Netrw Itself *netrw-debug* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003749
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003750Step 1: check that the problem you've encountered hasn't already been resolved
3751by obtaining a copy of the latest (often developmental) netrw at:
3752
3753 http://www.drchip.org/astronaut/vim/index.html#NETRW
3754
3755The <netrw.vim> script is typically installed on systems as something like:
Bram Moolenaar488c6512005-08-11 20:09:58 +00003756>
Bram Moolenaar446cb832008-06-24 21:56:24 +00003757 /usr/local/share/vim/vim7x/plugin/netrwPlugin.vim
3758 /usr/local/share/vim/vim7x/autoload/netrw.vim
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003759 (see output of :echo &rtp)
Bram Moolenaar488c6512005-08-11 20:09:58 +00003760<
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003761which is loaded automatically at startup (assuming :set nocp). If you
3762installed a new netrw, then it will be located at >
3763
3764 $HOME/.vim/plugin/netrwPlugin.vim
3765 $HOME/.vim/autoload/netrw.vim
3766<
3767Step 2: assuming that you've installed the latest version of netrw,
3768check that your problem is really due to netrw. Create a file
3769called netrw.vimrc with the following contents: >
3770
3771 set nocp
3772 so $HOME/.vim/plugin/netrwPlugin.vim
3773<
3774Then run netrw as follows: >
3775
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003776 vim -u netrw.vimrc --noplugins -i NONE [some path here]
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003777<
3778Perform whatever netrw commands you need to, and check that the problem is
3779still present. This procedure sidesteps any issues due to personal .vimrc
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003780settings, .viminfo file, and other plugins. If the problem does not appear,
3781then you need to determine which setting in your .vimrc is causing the
3782conflict with netrw or which plugin(s) is/are involved.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003783
3784Step 3: If the problem still is present, then get a debugging trace from
3785netrw:
Bram Moolenaar071d4272004-06-13 20:20:40 +00003786
3787 1. Get the <Decho.vim> script, available as:
3788
Bram Moolenaar97d62492012-11-15 21:28:22 +01003789 http://www.drchip.org/astronaut/vim/index.html#DECHO
Bram Moolenaar071d4272004-06-13 20:20:40 +00003790 or
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00003791 http://vim.sourceforge.net/scripts/script.php?script_id=120
Bram Moolenaar071d4272004-06-13 20:20:40 +00003792
Bram Moolenaara6878372014-03-22 21:02:50 +01003793 Decho.vim is provided as a "vimball"; see |vimball-intro|.
Bram Moolenaarf6cf9872005-08-08 22:00:59 +00003794
Bram Moolenaar446cb832008-06-24 21:56:24 +00003795 2. Edit the <netrw.vim> file by typing: >
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003796
3797 vim netrw.vim
Bram Moolenaar071d4272004-06-13 20:20:40 +00003798 :DechoOn
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003799 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003800<
3801 To restore to normal non-debugging behavior, re-edit <netrw.vim>
3802 and type >
Bram Moolenaar071d4272004-06-13 20:20:40 +00003803
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003804 vim netrw.vim
3805 :DechoOff
3806 :wq
Bram Moolenaar446cb832008-06-24 21:56:24 +00003807<
Bram Moolenaard4755bb2004-09-02 19:12:26 +00003808 This command, provided by <Decho.vim>, will comment out all
3809 Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).
3810
Bram Moolenaar446cb832008-06-24 21:56:24 +00003811 3. Then bring up vim and attempt to evoke the problem by doing a
3812 transfer or doing some browsing. A set of messages should appear
3813 concerning the steps that <netrw.vim> took in attempting to
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003814 read/write your file over the network in a separate tab or
3815 server vim window.
Bram Moolenaar071d4272004-06-13 20:20:40 +00003816
Bram Moolenaar9964e462007-05-05 17:54:07 +00003817 To save the file, use >
Bram Moolenaar8d043172014-01-23 14:24:41 +01003818
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +01003819 :tabnext
Bram Moolenaar9964e462007-05-05 17:54:07 +00003820 :set bt=
3821 :w! DBG
Bram Moolenaar8d043172014-01-23 14:24:41 +01003822
3823< Furthermore, it'd be helpful if you would type >
Bram Moolenaara6878372014-03-22 21:02:50 +01003824 :Dsep <command>
3825< where <command> is the command you're about to type next,
3826 thereby making it easier to associate which part of the
3827 debugging trace is due to which command.
Bram Moolenaar8d043172014-01-23 14:24:41 +01003828
Bram Moolenaara6878372014-03-22 21:02:50 +01003829 Please send that information to <netrw.vim>'s maintainer along
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01003830 with the o/s you're using and the vim version that you're using
Bram Moolenaara6878372014-03-22 21:02:50 +01003831 (see |:version|) >
Bram Moolenaar293ee4d2004-12-09 21:34:53 +00003832 NdrOchip at ScampbellPfamily.AbizM - NOSPAM
Bram Moolenaar9964e462007-05-05 17:54:07 +00003833<
Bram Moolenaar071d4272004-06-13 20:20:40 +00003834==============================================================================
Bram Moolenaar9964e462007-05-05 17:54:07 +0000383512. History *netrw-history* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00003836
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003837 v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors
3838 with a patch; these are now fixed.
3839 Oct 26, 2016 * I started using mate-terminal and found that
3840 x and gx (|netrw-x| and |netrw-gx|) were no
3841 longer working. Fixed (using atril when
3842 $DESKTOP_SESSION is "mate").
3843 Nov 04, 2016 * (Martin Vuille) pointed out that @+ was
3844 being restored with keepregstar rather than
3845 keepregplus.
3846 Nov 09, 2016 * Broke apart the command from the options,
3847 mostly for Windows. Introduced new netrw
3848 settings: |g:netrw_localcopycmdopt|
3849 |g:netrw_localcopydircmdopt| |g:netrw_localmkdiropt|
3850 |g:netrw_localmovecmdopt| |g:netrw_localrmdiropt|
3851 Nov 21, 2016 * (mattn) provided a patch for preview; swapped
3852 winwidth() with winheight()
3853 Nov 22, 2016 * (glacambre) reported that files containing
3854 spaces weren't being obtained properly via
3855 scp. Fix: apparently using single quotes
3856 such as with 'file name' wasn't enough; the
3857 spaces inside the quotes also had to be
3858 escaped (ie. 'file\ name').
3859 * Also fixed obtain (|netrw-O|) to be able to
3860 obtain files with spaces in their names
3861 Dec 20, 2016 * (xc1427) Reported that using "I" (|netrw-I|)
3862 when atop "Hiding" in the banner also caused
3863 the active-banner hiding control to occur
3864 Jan 03, 2017 * (Enno Nagel) reported that attempting to
3865 apply netrw to a directory that was without
3866 read permission caused a syntax error.
3867 Jan 13, 2017 * (Ingo Karkat) provided a patch which makes
3868 using netrw#Call() better. Now returns
3869 value of internal routines return, for example.
3870 Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to
3871 use |:edit| instead of |:read|. I also
3872 changed the routine name to netrw#FileUrlEdit.
3873 Jan 16, 2017 * (Sayem) reported a problem where :Lexplore
3874 could generate a new listing buffer and
3875 window instead of toggling the netrw display.
3876 Unfortunately, the directions for eliciting
3877 the problem weren't complete, so I may or
3878 may not have fixed that issue.
3879 Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd".
3880 (see |netrw-cb|, |netrw-cB|, and |netrw-cd|)
3881 Mar 21, 2017 * previously, netrw would specify (safe) settings
3882 even when the setting was already safe for
3883 netrw. Netrw now attempts to leave such
3884 already-netrw-safe settings alone.
3885 (affects s:NetrwOptionRestore() and
3886 s:NetrwSafeOptions(); also introduced
3887 s:NetrwRestoreSetting())
3888 Jun 26, 2017 * (Christian Brabandt) provided a patch to
3889 allow curl to follow redirects (ie. -L
3890 option)
3891 Jun 26, 2017 * (Callum Howard) reported a problem with
3892 :Lexpore not removing the Lexplore window
3893 after a change-directory
3894 Aug 30, 2017 * (Ingo Karkat) one cannot switch to the
3895 previously edited file (e.g. with CTRL-^)
3896 after editing a file:// URL. Patch to
3897 have a "keepalt" included.
3898 Oct 17, 2017 * (Adam Faryna) reported that gn (|netrw-gn|)
3899 did not work on directories in the current
3900 tree
3901 v157: Apr 20, 2016 * (Nicola) had set up a "nmap <expr> ..." with
3902 a function that returned a 0 while silently
3903 invoking a shell command. The shell command
3904 activated a ShellCmdPost event which in turn
3905 called s:LocalBrowseRefresh(). That looks
3906 over all netrw buffers for changes needing
3907 refreshes. However, inside a |:map-<expr>|,
3908 tab and window changes are disallowed. Fixed.
3909 (affects netrw's s:LocalBrowseRefresh())
3910 * |g:netrw_localrmdir| not used any more, but
3911 the relevant patch that causes |delete()| to
3912 take over was #1107 (not #1109).
3913 * |expand()| is now used on |g:netrw_home|;
3914 consequently, g:netrw_home may now use
3915 environment variables
3916 * s:NetrwLeftmouse and s:NetrwCLeftmouse will
3917 return without doing anything if invoked
3918 when inside a non-netrw window
3919 Jun 15, 2016 * gx now calls netrw#GX() which returns
3920 the word under the cursor. The new
3921 wrinkle: if one is in a netrw buffer,
3922 then netrw's s:NetrwGetWord().
3923 Jun 22, 2016 * Netrw was executing all its associated
3924 Filetype commands silently; I'm going
3925 to try doing that "noisily" and see if
3926 folks have a problem with that.
3927 Aug 12, 2016 * Changed order of tool selection for
3928 handling http://... viewing.
3929 (Nikolay Aleksandrovich Pavlov)
3930 Aug 21, 2016 * Included hiding/showing/all for tree
3931 listings
3932 * Fixed refresh (^L) for tree listings
Bram Moolenaaraa3b15d2016-04-21 08:53:19 +02003933 v156: Feb 18, 2016 * Changed =~ to =~# where appropriate
3934 Feb 23, 2016 * s:ComposePath(base,subdir) now uses
3935 fnameescape() on the base portion
3936 Mar 01, 2016 * (gt_macki) reported where :Explore would
3937 make file unlisted. Fixed (tst943)
3938 Apr 04, 2016 * (reported by John Little) netrw normally
3939 suppresses browser messages, but sometimes
3940 those "messages" are what is wanted.
3941 See |g:netrw_suppress_gx_mesg|
3942 Apr 06, 2016 * (reported by Carlos Pita) deleting a remote
3943 file was giving an error message. Fixed.
3944 Apr 08, 2016 * (Charles Cooper) had a problem with an
3945 undefined b:netrw_curdir. He also provided
3946 a fix.
3947 Apr 20, 2016 * Changed s:NetrwGetBuffer(); now uses
3948 dictionaries. Also fixed the "No Name"
3949 buffer problem.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003950 v155: Oct 29, 2015 * (Timur Fayzrakhmanov) reported that netrw's
3951 mapping of ctrl-l was not allowing refresh of
3952 other windows when it was done in a netrw
3953 window.
3954 Nov 05, 2015 * Improved s:TreeSqueezeDir() to use search()
3955 instead of a loop
3956 * NetrwBrowse() will return line to
3957 w:netrw_bannercnt if cursor ended up in
3958 banner
3959 Nov 16, 2015 * Added a <Plug>NetrwTreeSqueeze (|netrw-s-cr|)
3960 Nov 17, 2015 * Commented out imaps -- perhaps someone can
3961 tell me how they're useful and should be
3962 retained?
3963 Nov 20, 2015 * Added |netrw-ma| and |netrw-mA| support
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003964 Nov 20, 2015 * gx (|netrw-gx|) on a URL downloaded the
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003965 file in addition to simply bringing up the
Bram Moolenaarb0d45e72017-11-05 18:19:24 +01003966 URL in a browser. Fixed.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01003967 Nov 23, 2015 * Added |g:netrw_sizestyle| support
3968 Nov 27, 2015 * Inserted a lot of <c-u>s into various netrw
3969 maps.
3970 Jan 05, 2016 * |netrw-qL| implemented to mark files based
3971 upon |location-list|s; similar to |netrw-qF|.
3972 Jan 19, 2016 * using - call delete(directoryname,"d") -
3973 instead of using g:netrw_localrmdir if
3974 v7.4 + patch#1107 is available
3975 Jan 28, 2016 * changed to using |winsaveview()| and
3976 |winrestview()|
3977 Jan 28, 2016 * s:NetrwTreePath() now does a save and
3978 restore of view
3979 Feb 08, 2016 * Fixed a tree-listing problem with remote
3980 directories
Bram Moolenaara0f849e2015-10-30 14:37:44 +01003981 v154: Feb 26, 2015 * (Yuri Kanivetsky) reported a situation where
3982 a file was not treated properly as a file
3983 due to g:netrw_keepdir == 1
3984 Mar 25, 2015 * (requested by Ben Friz) one may now sort by
3985 extension
3986 Mar 28, 2015 * (requested by Matt Brooks) netrw has a lot
3987 of buffer-local mappings; however, some
3988 plugins (such as vim-surround) set up
3989 conflicting mappings that cause vim to wait.
3990 The "<nowait>" modifier has been included
3991 with most of netrw's mappings to avoid that
3992 delay.
3993 Jun 26, 2015 * |netrw-gn| mapping implemted
3994 * :Ntree NotADir resulted in having
3995 the tree listing expand in the error messages
3996 window. Fixed.
3997 Jun 29, 2015 * Attempting to delete a file remotely caused
3998 an error with "keepsol" mentioned; fixed.
3999 Jul 08, 2015 * Several changes to keep the |:jumps| table
4000 correct when working with
4001 |g:netrw_fastbrowse| set to 2
4002 * wide listing with accented characters fixed
4003 (using %-S instead of %-s with a |printf()|
4004 Jul 13, 2015 * (Daniel Hahler) CheckIfKde() could be true
4005 but kfmclient not installed. Changed order
4006 in netrw#BrowseX(): checks if kde and
4007 kfmclient, then will use xdg-open on a unix
4008 system (if xdg-open is executable)
4009 Aug 11, 2015 * (McDonnell) tree listing mode wouldn't
4010 select a file in a open subdirectory.
4011 * (McDonnell) when multiple subdirectories
4012 were concurrently open in tree listing
4013 mode, a ctrl-L wouldn't refresh properly.
4014 * The netrw:target menu showed duplicate
4015 entries
4016 Oct 13, 2015 * (mattn) provided an exception to handle
4017 windows with shellslash set but no shell
4018 Oct 23, 2015 * if g:netrw_usetab and <c-tab> now used
4019 to control whether NetrwShrink is used
4020 (see |netrw-c-tab|)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004021 v153: May 13, 2014 * added another |g:netrw_ffkeep| usage {{{2
4022 May 14, 2014 * changed s:PerformListing() so that it
4023 always sets ft=netrw for netrw buffers
4024 (ie. even when syntax highlighting is
4025 off, not available, etc)
4026 May 16, 2014 * introduced the |netrw-ctrl-r| functionality
4027 May 17, 2014 * introduced the |netrw-:NetrwMB| functionality
4028 * mb and mB (|netrw-mb|, |netrw-mB|) will
4029 add/remove marked files from bookmark list
4030 May 20, 2014 * (Enno Nagel) reported that :Lex <dirname>
4031 wasn't working. Fixed.
4032 May 26, 2014 * restored test to prevent leftmouse window
4033 resizing from causing refresh.
4034 (see s:NetrwLeftmouse())
4035 * fixed problem where a refresh caused cursor
4036 to go just under the banner instead of
4037 staying put
4038 May 28, 2014 * (László Bimba) provided a patch for opening
4039 the |:Lexplore| window 100% high, optionally
4040 on the right, and will work with remote
4041 files.
4042 May 29, 2014 * implemented :NetrwC (see |netrw-:NetrwC|)
4043 Jun 01, 2014 * Removed some "silent"s from commands used
4044 to implemented scp://... and pscp://...
4045 directory listing. Permits request for
4046 password to appear.
4047 Jun 05, 2014 * (Enno Nagel) reported that user maps "/"
4048 caused problems with "b" and "w", which
4049 are mapped (for wide listings only) to
4050 skip over files rather than just words.
4051 Jun 10, 2014 * |g:netrw_gx| introduced to allow users to
4052 override default "<cfile>" with the gx
4053 (|netrw-gx|) map
4054 Jun 11, 2014 * gx (|netrw-gx|), with |'autowrite'| set,
4055 will write modified files. s:NetrwBrowseX()
4056 will now save, turn off, and restore the
4057 |'autowrite'| setting.
4058 Jun 13, 2014 * added visual map for gx use
4059 Jun 15, 2014 * (Enno Nagel) reported that with having hls
4060 set and wide listing style in use, that the
4061 b and w maps caused unwanted highlighting.
4062 Jul 05, 2014 * |netrw-mv| and |netrw-mX| commands included
4063 Jul 09, 2014 * |g:netrw_keepj| included, allowing optional
4064 keepj
4065 Jul 09, 2014 * fixing bugs due to previous update
4066 Jul 21, 2014 * (Bruno Sutic) provided an updated
4067 netrw_gitignore.vim
4068 Jul 30, 2014 * (Yavuz Yetim) reported that editing two
4069 remote files of the same name caused the
4070 second instance to have a "temporary"
4071 name. Fixed: now they use the same buffer.
4072 Sep 18, 2014 * (Yasuhiro Matsumoto) provided a patch which
4073 allows scp and windows local paths to work.
4074 Oct 07, 2014 * gx (see |netrw-gx|) when atop a directory,
4075 will now do |gf| instead
4076 Nov 06, 2014 * For cygwin: cygstart will be available for
4077 netrw#BrowseX() to use if its executable.
4078 Nov 07, 2014 * Began support for file://... urls. Will use
4079 |g:netrw_file_cmd| (typically elinks or links)
4080 Dec 02, 2014 * began work on having mc (|netrw-mc|) copy
4081 directories. Works for linux machines,
4082 cygwin+vim, but not for windows+gvim.
4083 Dec 02, 2014 * in tree mode, netrw was not opening
4084 directories via symbolic links.
4085 Dec 02, 2014 * added resolved link information to
4086 thin and tree modes
4087 Dec 30, 2014 * (issue#231) |:ls| was not showing
4088 remote-file buffers reliably. Fixed.
4089 v152: Apr 08, 2014 * uses the |'noswapfile'| option (requires {{{2
Bram Moolenaar13600302014-05-22 18:26:40 +02004090 vim 7.4 with patch 213)
4091 * (Enno Nagel) turn |'rnu'| off in netrw
4092 buffers.
4093 * (Quinn Strahl) suggested that netrw
4094 allow regular window splitting to occur,
4095 thereby allowing |'equalalways'| to take
4096 effect.
4097 * (qingtian zhao) normally, netrw will
4098 save and restore the |'fileformat'|;
4099 however, sometimes that isn't wanted
4100 Apr 14, 2014 * whenever netrw marks a buffer as ro,
4101 it will also mark it as nomod.
4102 Apr 16, 2014 * sftp protocol now supported by
4103 netrw#Obtain(); this means that one
4104 may use "mc" to copy a remote file
4105 to a local file using sftp, and that
4106 the |netrw-O| command can obtain remote
4107 files via sftp.
4108 * added [count]C support (see |netrw-C|)
4109 Apr 18, 2014 * when |g:netrw_chgwin| is one more than
4110 the last window, then vertically split
4111 the last window and use it as the
4112 chgwin window.
4113 May 09, 2014 * SavePosn was "saving filename under cursor"
4114 from a non-netrw window when using :Rex.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004115 v151: Jan 22, 2014 * extended :Rexplore to return to buffer {{{2
Bram Moolenaara6878372014-03-22 21:02:50 +01004116 prior to Explore or editing a directory
4117 * (Ken Takata) netrw gave error when
4118 clipboard was disabled. Sol'n: Placed
4119 several if has("clipboard") tests in.
4120 * Fixed ftp://X@Y@Z// problem; X@Y now
4121 part of user id, and only Z is part of
4122 hostname.
4123 * (A Loumiotis) reported that completion
4124 using a directory name containing spaces
4125 did not work. Fixed with a retry in
4126 netrw#Explore() which removes the
4127 backslashes vim inserted.
4128 Feb 26, 2014 * :Rexplore now records the current file
4129 using w:netrw_rexfile when returning via
4130 |:Rexplore|
4131 Mar 08, 2014 * (David Kotchan) provided some patches
4132 allowing netrw to work properly with
4133 windows shares.
4134 * Multiple one-liner help messages available
4135 by pressing <cr> while atop the "Quick
4136 Help" line
4137 * worked on ShellCmdPost, FocusGained event
4138 handling.
4139 * |:Lexplore| path: will be used to update
4140 a left-side netrw browsing directory.
Bram Moolenaare0fa3742016-02-20 15:47:01 +01004141 Mar 12, 2014 * |netrw-s-cr|: use <s-cr> to close
Bram Moolenaara6878372014-03-22 21:02:50 +01004142 tree directory implemented
4143 Mar 13, 2014 * (Tony Mechylynck) reported that using
4144 the browser with ftp on a directory,
4145 and selecting a gzipped txt file, that
4146 an E19 occurred (which was issued by
4147 gzip.vim). Fixed.
4148 Mar 14, 2014 * Implemented :MF and :MT (see |netrw-:MF|
4149 and |netrw-:MT|, respectively)
4150 Mar 17, 2014 * |:Ntree| [dir] wasn't working properly; fixed
4151 Mar 18, 2014 * Changed all uses of set to setl
4152 Mar 18, 2014 * Commented the netrw_btkeep line in
4153 s:NetrwOptionSave(); the effect is that
4154 netrw buffers will remain as |'bt'|=nofile.
4155 This should prevent swapfiles being created
4156 for netrw buffers.
4157 Mar 20, 2014 * Changed all uses of lcd to use s:NetrwLcd()
4158 instead. Consistent error handling results
4159 and it also handles Window's shares
4160 * Fixed |netrw-d| command when applied with ftp
4161 * https: support included for netrw#NetRead()
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004162 v150: Jul 12, 2013 * removed a "keepalt" to allow ":e #" to {{{2
Bram Moolenaar8d043172014-01-23 14:24:41 +01004163 return to the netrw directory listing
4164 Jul 13, 2013 * (Jonas Diemer) suggested changing
4165 a <cWORD> to <cfile>.
4166 Jul 21, 2013 * (Yuri Kanivetsky) reported that netrw's
4167 use of mkdir did not produce directories
Bram Moolenaara6878372014-03-22 21:02:50 +01004168 following the user's umask.
Bram Moolenaar8d043172014-01-23 14:24:41 +01004169 Aug 27, 2013 * introduced |g:netrw_altfile| option
4170 Sep 05, 2013 * s:Strlen() now uses |strdisplaywidth()|
4171 when available, by default
4172 Sep 12, 2013 * (Selyano Baldo) reported that netrw wasn't
4173 opening some directories properly from the
4174 command line.
4175 Nov 09, 2013 * |:Lexplore| introduced
4176 * (Ondrej Platek) reported an issue with
4177 netrw's trees (P15). Fixed.
4178 * (Jorge Solis) reported that "t" in
4179 tree mode caused netrw to forget its
4180 line position.
4181 Dec 05, 2013 * Added <s-leftmouse> file marking
4182 (see |netrw-mf|)
4183 Dec 05, 2013 * (Yasuhiro Matsumoto) Explore should use
4184 strlen() instead s:Strlen() when handling
4185 multibyte chars with strpart()
4186 (ie. strpart() is byte oriented, not
4187 display-width oriented).
4188 Dec 09, 2013 * (Ken Takata) Provided a patch; File sizes
4189 and a portion of timestamps were wrongly
4190 highlighted with the directory color when
4191 setting `:let g:netrw_liststyle=1` on Windows.
4192 * (Paul Domaskis) noted that sometimes
4193 cursorline was activating in non-netrw
4194 windows. All but one setting of cursorline
4195 was done via setl; there was one that was
4196 overlooked. Fixed.
4197 Dec 24, 2013 * (esquifit) asked that netrw allow the
4198 /cygdrive prefix be a user-alterable
4199 parameter.
4200 Jan 02, 2014 * Fixed a problem with netrw-based ballon
4201 evaluation (ie. netrw#NetrwBaloonHelp()
4202 not having been loaded error messages)
4203 Jan 03, 2014 * Fixed a problem with tree listings
4204 * New command installed: |:Ntree|
4205 Jan 06, 2014 * (Ivan Brennan) reported a problem with
4206 |netrw-P|. Fixed.
4207 Jan 06, 2014 * Fixed a problem with |netrw-P| when the
4208 modified file was to be abandoned.
4209 Jan 15, 2014 * (Matteo Cavalleri) reported that when the
4210 banner is suppressed and tree listing is
4211 used, a blank line was left at the top of
4212 the display. Fixed.
4213 Jan 20, 2014 * (Gideon Go) reported that, in tree listing
4214 style, with a previous window open, that
4215 the wrong directory was being used to open
4216 a file. Fixed. (P21)
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004217 v149: Apr 18, 2013 * in wide listing format, now have maps for {{{2
Bram Moolenaare6ae6222013-05-21 21:01:10 +02004218 w and b to move to next/previous file
4219 Apr 26, 2013 * one may now copy files in the same
4220 directory; netrw will issue requests for
4221 what names the files should be copied under
4222 Apr 29, 2013 * Trying Benzinger's problem again. Seems
4223 that commenting out the BufEnter and
4224 installing VimEnter (only) works. Weird
4225 problem! (tree listing, vim -O Dir1 Dir2)
4226 May 01, 2013 * :Explore ftp://... wasn't working. Fixed.
4227 May 02, 2013 * introduced |g:netrw_bannerbackslash| as
4228 requested by Paul Domaskis.
Bram Moolenaar8d043172014-01-23 14:24:41 +01004229 Jul 03, 2013 * Explore now avoids splitting when a buffer
4230 will be hidden.
Bram Moolenaar8feef4f2015-01-07 16:57:10 +01004231 v148: Apr 16, 2013 * changed Netrw's Style menu to allow direct {{{2
Bram Moolenaarff034192013-04-24 18:51:19 +02004232 choice of listing style, hiding style, and
4233 sorting style
Bram Moolenaar071d4272004-06-13 20:20:40 +00004234
4235==============================================================================
Bram Moolenaar8f3f58f2010-01-06 20:52:26 +0100423613. Todo *netrw-todo* {{{1
4237
423807/29/09 : banner :|g:netrw_banner| can be used to suppress the
4239 suppression banner. This feature is new and experimental,
4240 so its in the process of being debugged.
424109/04/09 : "gp" : See if it can be made to work for remote systems.
4242 : See if it can be made to work with marked files.
4243
4244==============================================================================
424514. Credits *netrw-credits* {{{1
Bram Moolenaar071d4272004-06-13 20:20:40 +00004246
4247 Vim editor by Bram Moolenaar (Thanks, Bram!)
4248 dav support by C Campbell
4249 fetch support by Bram Moolenaar and C Campbell
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004250 ftp support by C Campbell <NdrOchip@ScampbellPfamily.AbizM>
Bram Moolenaar071d4272004-06-13 20:20:40 +00004251 http support by Bram Moolenaar <bram@moolenaar.net>
4252 rcp
4253 rsync support by C Campbell (suggested by Erik Warendorph)
4254 scp support by raf <raf@comdyn.com.au>
4255 sftp support by C Campbell
4256
4257 inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell
4258
4259 Jérôme Augé -- also using new buffer method with ftp+.netrc
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004260 Bram Moolenaar -- obviously vim itself, :e and v:cmdarg use,
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00004261 fetch,...
Bram Moolenaar071d4272004-06-13 20:20:40 +00004262 Yasuhiro Matsumoto -- pointing out undo+0r problem and a solution
4263 Erik Warendorph -- for several suggestions (g:netrw_..._cmd
4264 variables, rsync etc)
Bram Moolenaar482aaeb2005-09-29 18:26:07 +00004265 Doug Claar -- modifications to test for success with ftp
Bram Moolenaar7aa9f6a2007-05-10 18:00:30 +00004266 operation
Bram Moolenaar071d4272004-06-13 20:20:40 +00004267
4268==============================================================================
Bram Moolenaar446cb832008-06-24 21:56:24 +00004269Modelines: {{{1
Bram Moolenaar91f84f62018-07-29 15:07:52 +02004270 vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker