Mercurial > hg > RemoteEditor > vim7
diff runtime/doc/pi_netrw.txt @ 0:76efa0be13f1
Initial revision
author | atsuki |
---|---|
date | Sat, 10 Nov 2007 15:07:22 +0900 |
parents | |
children | e170173ecb68 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/runtime/doc/pi_netrw.txt Sat Nov 10 15:07:22 2007 +0900 @@ -0,0 +1,2160 @@ +*pi_netrw.txt* For Vim version 7.1. Last change: 2007 May 08 + + ----------------------------------------------------- + NETRW REFERENCE MANUAL by Charles E. Campbell, Jr. + ----------------------------------------------------- + + +*dav* *http* *network* *Nwrite* *netrw-file* +*fetch* *netrw* *Nread* *rcp* *scp* +*ftp* *netrw.vim* *Nsource* *rsync* *sftp* + +============================================================================== +1. Contents *netrw-contents* + +1. Contents.............................................|netrw-contents| +2. Starting With Netrw..................................|netrw-start| +3. Netrw Reference......................................|netrw-ref| + CONTROLLING EXTERNAL APPLICATIONS..................|netrw-externapp| + READING............................................|netrw-read| + WRITING............................................|netrw-write| + DIRECTORY LISTING..................................|netrw-dirlist| + CHANGING THE USERID AND PASSWORD...................|netrw-chgup| + VARIABLES..........................................|netrw-variables| + PATHS..............................................|netrw-path| +4. Network-Oriented File Transfer.......................|netrw-xfer| + NETRC..............................................|netrw-netrc| + PASSWORD...........................................|netrw-passwd| +5. Activation...........................................|netrw-activate| +6. Transparent File Transfer............................|netrw-transparent| +7. Ex Commands..........................................|netrw-ex| +8. Variables and Options................................|netrw-var| +9. Directory Browsing...................................|netrw-browse| {{{1 + Maps...............................................|netrw-maps| + Exploring..........................................|netrw-explore-cmds| + Quick Reference Commands Table.....................|netrw-browse-cmds| + Netrw Browser Variables............................|netrw-browse-var| + Introduction To Directory Browsing.................|netrw-browse-intro| + Netrw Browsing And Option Incompatibilities........|netrw-incompatible| + Directory Exploring Commands.......................|netrw-explore| + Refreshing The Listing.............................|netrw-ctrl-l| + Going Up...........................................|netrw--| + Browsing...........................................|netrw-cr| + Obtaining A File...................................|netrw-O| + Change Listing Style...............................|netrw-i| + Making A New Directory.............................|netrw-d| + Deleting Files Or Directories......................|netrw-D| + Renaming Files Or Directories......................|netrw-move| + Hiding Files Or Directories........................|netrw-a| + Edit File Or Directory Hiding List.................|netrw-ctrl-h| + Browsing With A Horizontally Split Window..........|netrw-o| + Browsing With A Vertically Split Window............|netrw-v| + Browsing With A New Tab............................|netrw-t| + Preview Window.....................................|netrw-p| + Selecting Sorting Style............................|netrw-s| + Editing The Sorting Sequence.......................|netrw-S| + Reversing Sorting Order............................|netrw-r| + Changing To A Predecessor Directory................|netrw-u| + Changing To A Successor Directory..................|netrw-U| + Customizing Browsing With A User Function..........|netrw-x| + Making The Browsing Directory The Current Directory|netrw-c| + Bookmarking A Directory............................|netrw-mb| + Changing To A Bookmarked Directory.................|netrw-gb| + Listing Bookmarks And History......................|netrw-q| + Improving Directory Browsing.......................|netrw-listhack| }}}1 +10. Problems and Fixes...................................|netrw-problems| +11. Debugging............................................|netrw-debug| +12. History..............................................|netrw-history| +13. Credits..............................................|netrw-credits| + +The Netrw plugin is generally sourced automatically as it is a +|standard-plugin|. That said, to make use of netrw, one must +have plugins available which can be done with the following +two lines in your <.vimrc>: > + + set nocp " 'compatible' is not set + filetype plugin on " plugins are enabled +< +You can avoid loading this plugin by setting the "loaded_netrw" variable +in your <.vimrc> file: > + + :let loaded_netrw = 1 + +{Vi does not have any of this} + +============================================================================== +2. Starting With Netrw *netrw-start* + +Netrw makes reading, writing, and browsing over a network connection easy! +First, make sure that you have plugins enabled, so you'll need to have at +least the following in your <.vimrc>: (or see |netrw-activate|) > + + set nocp " 'compatible' is not set + filetype plugin on " plugins are enabled +< +(see |'cp'| and |:filetype-plugin-on|) + +Netrw supports "transparent" editing of files on other machines using urls +(see |netrw-transparent|). As an example of this, let's assume you have an +account on some other machine; try > + + vim scp://hostname/path/to/file +< +if you have an ssh connection. Want to make ssh/scp easier to use? Check +out |netrw-listhack|! + +What if you have ftp, not ssh/scp? That's easy, too; try > + + vim ftp://hostname/path/to/file +< +Want to make ftp simpler to use? See if your ftp supports a file called +<.netrc> -- typically it goes in your home directory, has read/write +permissions for only the user to read (ie. not group, world, other, etc), +and has lines resembling > + + machine HOSTNAME login USERID password "PASSWORD" + machine HOSTNAME login USERID password "PASSWORD" + ... + default login USERID password "PASSWORD" +< +Now about browsing -- ie. when you just want to look around before editing a +file. For browsing on your current host, just "edit" a directory: > + + vim . + vim /home/userid/path +< +For browsing on a remote host, "edit" a directory (but make sure that +the directory name is followed by a "/"): > + + vim scp://hostname/ + vim ftp://hostname/path/to/dir/ +< +See |netrw-browse| for more! + +There's more protocols supported than scp and ftp, too: see the next +section, |netrw-externapp|. + +============================================================================== +3. Netrw Reference *netrw-ref* + +CONTROLLING EXTERNAL APPLICATIONS *netrw-externapp* + + Protocol Variable Default Value + -------- ---------------- ------------- + dav: *g:netrw_dav_cmd* = "cadaver" + fetch: *g:netrw_fetch_cmd* = "fetch -o" if fetch is available + ftp: *g:netrw_ftp_cmd* = "ftp" + http: *g:netrw_http_cmd* = "curl -o" if curl is available + http: g:netrw_http_cmd = "wget -q -O" else if wget is available + http: g:netrw_http_cmd = "fetch -o" else if fetch is available + rcp: *g:netrw_rcp_cmd* = "rcp" + rsync: *g:netrw_rsync_cmd* = "rsync -a" + scp: *g:netrw_scp_cmd* = "scp -q" + sftp: *g:netrw_sftp_cmd* = "sftp" + +READING *netrw-read* *netrw-nread* + :Nread ? give help + :Nread "machine:path" uses rcp + :Nread "machine path" uses ftp w/ <.netrc> + :Nread "machine id password path" uses ftp + :Nread "dav://machine[:port]/path" uses cadaver + :Nread "fetch://[user@]machine/path" uses fetch + :Nread "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc> + :Nread "http://[user@]machine/path" uses http uses wget + :Nread "rcp://[user@]machine/path" uses rcp + :Nread "rsync://[user@]machine[:port]/path" uses rsync + :Nread "scp://[user@]machine[[:#]port]/path" uses scp + :Nread "sftp://[user@]machine/path" uses sftp + +WRITING *netrw-write* *netrw-nwrite* + :Nwrite ? give help + :Nwrite "machine:path" uses rcp + :Nwrite "machine path" uses ftp w/ <.netrc> + :Nwrite "machine id password path" uses ftp + :Nwrite "dav://machine[:port]/path" uses cadaver + :Nwrite "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc> + :Nwrite "rcp://[user@]machine/path" uses rcp + :Nwrite "rsync://[user@]machine[:port]/path" uses rsync + :Nwrite "scp://[user@]machine[[:#]port]/path" uses scp + :Nwrite "sftp://[user@]machine/path" uses sftp + http: not supported! + +SOURCING *netrw-source* + :Nsource ? give help + :Nsource "dav://machine[:port]/path" uses cadaver + :Nsource "fetch://[user@]machine/path" uses fetch + :Nsource "ftp://[user@]machine[[:#]port]/path" uses ftp w/ <.netrc> + :Nsource "http://[user@]machine/path" uses http uses wget + :Nsource "rcp://[user@]machine/path" uses rcp + :Nsource "rsync://[user@]machine[:port]/path" uses rsync + :Nsource "scp://[user@]machine[[:#]port]/path" uses scp + :Nsource "sftp://[user@]machine/path" uses sftp + +DIRECTORY LISTING *netrw-dirlist* + :Nread [protocol]://[user]@hostname/path/ + + *netrw-login* *netrw-password* + CHANGING USERID AND PASSWORD *netrw-chgup* *netrw-userpass* + + Attempts to use ftp will prompt you for a user-id and a password. + These will be saved in global variables g:netrw_uid and + g:netrw_passwd; subsequent uses of ftp will re-use those two items to + simplify the further use of ftp. However, if you need to use a + different user id and/or password, you'll want to call NetUserPass() + first. To work around the need to enter passwords, check if your ftp + supports a <.netrc> file in your home directory. Also see + |netrw-passwd| (and if you're using ssh/scp hoping to figure out how + to not need to use passwords, look at |netrw-listhack|). + + :NetUserPass [uid [password]] -- prompts as needed + :call NetUserPass() -- prompts for uid and password + :call NetUserPass("uid") -- prompts for password + :call NetUserPass("uid","password") -- sets global uid and password + +VARIABLES *netrw-variables* + +(also see: |netrw-browse-var| |netrw-protocol| |netrw-settings| |netrw-var|) + + *b:netrw_lastfile* last file Network-read/written retained on a per-buffer + basis (supports plain :Nw ) + + *g:netrw_ftp* if it doesn't exist, use default ftp + =0 use default ftp (uid password) + =1 use alternate ftp method (user uid password) + If you're having trouble with ftp, try changing the + value of this variable to see if the alternate ftp + method works for your setup. + + *g:netrw_extracmd* default: doesn't exist + If this variable exists, then any string it contains + will be placed into the commands set to your ftp + client. As an example: + ="passive" + + *g:netrw_ftpmode* ="binary" (default) + ="ascii" + + *g:netrw_ignorenetrc* =0 (default for linux, cygwin) + =1 If you have a <.netrc> file but it doesn't work and + you want it ignored, then set this variable as shown. + (default for Windows + cmd.exe) + + *g:netrw_menu* =0 disable netrw's menu + =1 (default) netrw's menu enabled + + *g:netrw_nogx* if this variable exists, then the "gx" map will not + be available (see |netrw-gx|) + + *g:netrw_uid* (ftp) user-id, retained on a per-session basis + *g:netrw_passwd* (ftp) password, retained on a per-session basis + + *g:netrw_shq* = "'" for Unix/Linux systems (ie. a single quote) + = "'" for Windows + cygwin systems (ie. a single quote) + = '"' for Windows systems, not using cygwin + (ie. a double quote) + Controls the quoting character used during scp and ftp + commands. + + *g:netrw_scpport* = "-P" : option to use to set port for scp + *g:netrw_sshport* = "-p" : option to use to set port for ssh + + *g:netrw_use_errorwindow* =1 : messages from netrw will use a separate one + line window. This window provides reliable + delivery of messages. (default) + =0 : messages from netrw will use echoerr ; + messages don't always seem to show up this + way, but one doesn't have to quit the window. + + *g:netrw_win95ftp* =1 if using Win95, will remove four trailing blank + lines that o/s's ftp "provides" on transfers + =0 force normal ftp behavior (no trailing line removal) + + *g:netrw_cygwin* =1 assume scp under windows is from cygwin. Also + permits network browsing to use ls with time and + size sorting (default if windows) + =0 assume Windows' scp accepts windows-style paths + Network browsing uses dir instead of ls + This option is ignored if you're using unix + + *g:netrw_use_nt_rcp* =0 don't use the rcp of WinNT, Win2000 and WinXP + =1 use WinNT's rcp in binary mode (default) + +PATHS *netrw-path* + +Paths to files are generally user-directory relative for most protocols. +It is possible that some protocol will make paths relative to some +associated directory, however. +> + example: vim scp://user@host/somefile + example: vim scp://user@host/subdir1/subdir2/somefile +< +where "somefile" is the "user"'s home directory. If you wish to get a +file using root-relative paths, use the full path: +> + example: vim scp://user@host//somefile + example: vim scp://user@host//subdir1/subdir2/somefile +< + +============================================================================== +4. Network-Oriented File Transfer *netrw-xfer* + +Network-oriented file transfer under Vim is implemented by a VimL-based script +(<netrw.vim>) using plugin techniques. It currently supports both reading and +writing across networks using rcp, scp, ftp or ftp+<.netrc>, scp, fetch, +dav/cadaver, rsync, or sftp. + +http is currently supported read-only via use of wget or fetch. + +<netrw.vim> is a standard plugin which acts as glue between Vim and the +various file transfer programs. It uses autocommand events (BufReadCmd, +FileReadCmd, BufWriteCmd) to intercept reads/writes with url-like filenames. > + + ex. vim ftp://hostname/path/to/file +< +The characters preceding the colon specify the protocol to use; in the +example, its ftp. The <netrw.vim> script then formulates a command or a +series of commands (typically ftp) which it issues to an external program +(ftp, scp, etc) which does the actual file transfer/protocol. Files are read +from/written to a temporary file (under Unix/Linux, /tmp/...) which the +<netrw.vim> script will clean up. + + *netrw-putty* *netrw-pscp* *netrw-psftp* +One may modify any protocol's implementing external application by setting a +variable (ex. scp uses the variable g:netrw_scp_cmd, which is defaulted to +"scp -q"). As an example, consider using PuTTY: > + + let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch' + let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"' +< +See |netrw-p8| for more about putty, pscp, psftp, etc. + +Ftp, an old protocol, seems to be blessed by numerous implementations. +Unfortunately, some implementations are noisy (ie., add junk to the end of the +file). Thus, concerned users may decide to write a NetReadFixup() function +that will clean up after reading with their ftp. Some Unix systems (ie., +FreeBSD) provide a utility called "fetch" which uses the ftp protocol but is +not noisy and more convenient, actually, for <netrw.vim> to use. +Consequently, if "fetch" is executable, it will be used to do reads for +ftp://... (and http://...) . See |netrw-var| for more about this. + +For rcp, scp, sftp, and http, one may use network-oriented file transfers +transparently; ie. +> + vim rcp://[user@]machine/path + vim scp://[user@]machine/path +< +If your ftp supports <.netrc>, then it too can be just as transparently used +if the needed triad of machine name, user id, and password are present in +that file. Your ftp must be able to use the <.netrc> file on its own, however. +> + vim ftp://[user@]machine[[:#]portnumber]/path +< +However, ftp will often need to query the user for the userid and password. +The latter will be done "silently"; ie. asterisks will show up instead of +the actually-typed-in password. Netrw will retain the userid and password +for subsequent read/writes from the most recent transfer so subsequent +transfers (read/write) to or from that machine will take place without +additional prompting. + + *netrw-urls* + +=================================+============================+============+ + | Reading | Writing | Uses | + +=================================+============================+============+ + | DAV: | | | + | dav://host/path | | cadaver | + | :Nread dav://host/path | :Nwrite dav://host/path | cadaver | + +---------------------------------+----------------------------+------------+ + | FETCH: | | | + | fetch://[user@]host/path | | | + | fetch://[user@]host:http/path | Not Available | fetch | + | :Nread fetch://[user@]host/path| | | + +---------------------------------+----------------------------+------------+ + | FILE: | | | + | file:///* | file:///* | | + | file://localhost/* | file://localhost/* | | + +---------------------------------+----------------------------+------------+ + | FTP: (*3) | (*3) | | + | ftp://[user@]host/path | ftp://[user@]host/path | ftp (*2) | + | :Nread ftp://host/path | :Nwrite ftp://host/path | ftp+.netrc | + | :Nread host path | :Nwrite host path | ftp+.netrc | + | :Nread host uid pass path | :Nwrite host uid pass path | ftp | + +---------------------------------+----------------------------+------------+ + | HTTP: wget is executable: (*4) | | | + | http://[user@]host/path | Not Available | wget | + +---------------------------------+----------------------------+------------+ + | HTTP: fetch is executable (*4) | | | + | http://[user@]host/path | Not Available | fetch | + +---------------------------------+----------------------------+------------+ + | RCP: | | | + | rcp://[user@]host/path | rcp://[user@]host/path | rcp | + +---------------------------------+----------------------------+------------+ + | RSYNC: | | | + | rsync://[user@]host/path | rsync://[user@]host/path | rsync | + | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync | + | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp | + +---------------------------------+----------------------------+------------+ + | SCP: | | | + | scp://[user@]host/path | scp://[user@]host/path | scp | + | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) | + +---------------------------------+----------------------------+------------+ + | SFTP: | | | + | sftp://[user@]host/path | sftp://[user@]host/path | sftp | + | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) | + +=================================+============================+============+ + + (*1) For an absolute path use scp://machine//path. + + (*2) if <.netrc> is present, it is assumed that it will + work with your ftp client. Otherwise the script will + prompt for user-id and password. + + (*3) for ftp, "machine" may be machine#port or machine:port + if a different port is needed than the standard ftp port + + (*4) for http:..., if wget is available it will be used. Otherwise, + if fetch is available it will be used. + +Both the :Nread and the :Nwrite ex-commands can accept multiple filenames. + + +NETRC *netrw-netrc* + +The typical syntax for lines in a <.netrc> file is given as shown below. +Ftp under Unix usually supports <.netrc>; ftp under Windows usually doesn't. +> + machine {full machine name} login {user-id} password "{password}" + default login {user-id} password "{password}" + +Your ftp client must handle the use of <.netrc> on its own, but if the +<.netrc> file exists, an ftp transfer will not ask for the user-id or +password. + + Note: + Since this file contains passwords, make very sure nobody else can + read this file! Most programs will refuse to use a .netrc that is + readable for others. Don't forget that the system administrator can + still read the file! + + +PASSWORD *netrw-passwd* + +The script attempts to get passwords for ftp invisibly using |inputsecret()|, +a built-in Vim function. See |netrw-uidpass| for how to change the password +after one has set it. + +Unfortunately there doesn't appear to be a way for netrw to feed a password to +scp. Thus every transfer via scp will require re-entry of the password. +However, |netrw-listhack| can help with this problem. + + +============================================================================== +5. Activation *netrw-activate* + +Network-oriented file transfers are available by default whenever Vim's +|'nocompatible'| mode is enabled. The <netrw.vim> file resides in your +system's vim-plugin directory and is sourced automatically whenever you bring +up vim. I suggest that, at a minimum, you have at least the following in your +<.vimrc> customization file: > + + set nocp + if version >= 600 + filetype plugin indent on + endif +< + +============================================================================== +6. Transparent File Transfer *netrw-transparent* + +Transparent file transfers occur whenever a regular file read or write +(invoked via an |:autocmd| for |BufReadCmd| or |BufWriteCmd| events) is made. +Thus one may use files across networks just as simply as if they were local. > + + vim ftp://[user@]machine/path + ... + :wq + +See |netrw-activate| for more on how to encourage your vim to use plugins +such as netrw. + + +============================================================================== +7. Ex Commands *netrw-ex* + +The usual read/write commands are supported. There are also a few +additional commands available. Often you won't need to use Nw or +Nread as shown in |netrw-transparent| (ie. simply use > + :e url + :r url + :w url +instead, as appropriate) -- see |netrw-urls|. In the explanations +below, a {netfile} is an url to a remote file. + +:[range]Nw Write the specified lines to the current + file as specified in b:netrw_lastfile. + +:[range]Nw {netfile} [{netfile}]... + Write the specified lines to the {netfile}. + +:Nread Read the specified lines into the current + buffer from the file specified in + b:netrw_lastfile. + +:Nread {netfile} {netfile}... + Read the {netfile} after the current line. + +:Nsource {netfile} + Source the {netfile}. + To start up vim using a remote .vimrc, one may use + the following (all on one line) (tnx to Antoine Mechelynck) > + vim -u NORC -N + --cmd "runtime plugin/netrwPlugin.vim" + --cmd "source scp://HOSTNAME/.vimrc" +< *netrw-uidpass* +:call NetUserPass() + If b:netrw_uid and b:netrw_passwd don't exist, + this function query the user for them. + +:call NetUserPass("userid") + This call will set the b:netrw_uid and, if + the password doesn't exist, will query the user for it. + +:call NetUserPass("userid","passwd") + This call will set both the b:netrw_uid and b:netrw_passwd. + The user-id and password are used by ftp transfers. One may + effectively remove the user-id and password by using "" + strings. + +:NetrwSettings This command is described in |netrw-settings| -- used to + display netrw settings and change netrw behavior. + + +============================================================================== +8. Variables and Options *netrw-options* *netrw-var* + +The <netrw.vim> script provides several variables which act as options to +ffect <netrw.vim>'s behavior. These variables typically may be set in the +user's <.vimrc> file: +(also see: +|netrw-settings| |netrw-browse-var| |netrw-protocol| |netrw-settings|) > + + ------------- + Netrw Options + ------------- + Option Meaning + -------------- ----------------------------------------------- +< + b:netrw_col Holds current cursor position (during NetWrite) + g:netrw_cygwin =1 assume scp under windows is from cygwin + (default/windows) + =0 assume scp under windows accepts windows + style paths (default/else) + g:netrw_ftp =0 use default ftp (uid password) + g:netrw_ftpmode ="binary" (default) + ="ascii" (your choice) + g:netrw_ignorenetrc =1 (default) + if you have a <.netrc> file but you don't + want it used, then set this variable. Its + mere existence is enough to cause <.netrc> + to be ignored. + b:netrw_lastfile Holds latest method/machine/path. + b:netrw_line Holds current line number (during NetWrite) + g:netrw_passwd Holds current password for ftp. + g:netrw_silent =0 transfers done normally + =1 transfers done silently + g:netrw_uid Holds current user-id for ftp. + =1 use alternate ftp (user uid password) + (see |netrw-options|) + g:netrw_use_nt_rcp =0 don't use WinNT/2K/XP's rcp (default) + =1 use WinNT/2K/XP's rcp, binary mode + g:netrw_win95ftp =0 use unix-style ftp even if win95/98/ME/etc + =1 use default method to do ftp > + ----------------------------------------------------------------------- +< +The script will also make use of the following variables internally, albeit +temporarily. +> + ------------------- + Temporary Variables + ------------------- + Variable Meaning + -------- ------------------------------------ +< + g:netrw_method Index indicating rcp/ftp+.netrc/ftp + g:netrw_machine Holds machine name parsed from input + g:netrw_fname Holds filename being accessed > + ------------------------------------------------------------ +< + *netrw-protocol* + +Netrw supports a number of protocols. These protocols are invoked using the +variables listed below, and may be modified by the user. +> + ------------------------ + Protocol Control Options + ------------------------ + Option Type Setting Meaning + --------- -------- -------------- --------------------------- +< + netrw_ftp variable =doesn't exist userid set by "user userid" + =0 userid set by "user userid" + =1 userid set by "userid" + NetReadFixup function =doesn't exist no change + =exists Allows user to have files + read via ftp automatically + transformed however they wish + by NetReadFixup() + g:netrw_dav_cmd variable ="cadaver" + g:netrw_fetch_cmd variable ="fetch -o" if fetch is available + g:netrw_ftp_cmd variable ="ftp" + g:netrw_http_cmd variable ="fetch -o" if fetch is available + g:netrw_http_cmd variable ="wget -O" else if wget is available + g:netrw_list_cmd variable ="ssh USEPORT HOSTNAME ls -Fa" + g:netrw_rcp_cmd variable ="rcp" + g:netrw_rsync_cmd variable ="rsync -a" + g:netrw_scp_cmd variable ="scp -q" + g:netrw_sftp_cmd variable ="sftp" > + ------------------------------------------------------------------------- +< + *netrw-ftp* + +The g:netrw_..._cmd options (|g:netrw_ftp_cmd| and |g:netrw_sftp_cmd|) +specify the external program to use handle the ftp protocol. They may +include command line options (such as -p for passive mode). + +Browsing is supported by using the |g:netrw_list_cmd|; the substring +"HOSTNAME" will be changed via substitution with whatever the current request +is for a hostname. + +Two options (|g:netrw_ftp| and |netrw-fixup|) both help with certain ftp's +that give trouble . In order to best understand how to use these options if +ftp is giving you troubles, a bit of discussion is provided on how netrw does +ftp reads. + +For ftp, netrw typically builds up lines of one of the following formats in a +temporary file: +> + IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1 + ---------------------------------- ------------------------------ +< + open machine [port] open machine [port] + user userid password userid password + [g:netrw_ftpmode] password + [g:netrw_extracmd] [g:netrw_ftpmode] + get filename tempfile [g:netrw_extracmd] + get filename tempfile > + --------------------------------------------------------------------- +< +The |g:netrw_ftpmode| and |g:netrw_extracmd| are optional. + +Netrw then executes the lines above by use of a filter: +> + :%! {g:netrw_ftp_cmd} -i [-n] +< +where + g:netrw_ftp_cmd is usually "ftp", + -i tells ftp not to be interactive + -n means don't use netrc and is used for Method #3 (ftp w/o <.netrc>) + +If <.netrc> exists it will be used to avoid having to query the user for +userid and password. The transferred file is put into a temporary file. +The temporary file is then read into the main editing session window that +requested it and the temporary file deleted. + +If your ftp doesn't accept the "user" command and immediately just demands a +userid, then try putting "let netrw_ftp=1" in your <.vimrc>. + + *netrw-cadaver* +To handle the SSL certificate dialog for untrusted servers, one may pull +down the certificate and place it into /usr/ssl/cert.pem. This operation +renders the server treatment as "trusted". + + *netrw-fixup* *netreadfixup* +If your ftp for whatever reason generates unwanted lines (such as AUTH +messages) you may write a NetReadFixup(tmpfile) function: +> + function! NetReadFixup(method,line1,line2) + " a:line1: first new line in current file + " a:line2: last new line in current file + if a:method == 1 "rcp + elseif a:method == 2 "ftp + <.netrc> + elseif a:method == 3 "ftp + machine,uid,password,filename + elseif a:method == 4 "scp + elseif a:method == 5 "http/wget + elseif a:method == 6 "dav/cadaver + elseif a:method == 7 "rsync + elseif a:method == 8 "fetch + elseif a:method == 9 "sftp + else " complain + endif + endfunction +> +The NetReadFixup() function will be called if it exists and thus allows you to +customize your reading process. As a further example, <netrw.vim> contains +just such a function to handle Windows 95 ftp. For whatever reason, Windows +95's ftp dumps four blank lines at the end of a transfer, and so it is +desirable to automate their removal. Here's some code taken from <netrw.vim> +itself: +> + if has("win95") && g:netrw_win95ftp + fun! NetReadFixup(method, line1, line2) + if method == 3 " ftp (no <.netrc>) + let fourblanklines= line2 - 3 + silent fourblanklines.",".line2."g/^\s*/d" + endif + endfunction + endif +> + +============================================================================== +9. Directory Browsing *netrw-browse* *netrw-dir* *netrw-list* *netrw-help* + +MAPS *netrw-maps* + <F1>.............Help.......................................|netrw-help| + <cr>.............Browsing...................................|netrw-cr| + <del>............Deleting Files or Directories..............|netrw-delete| + -................Going Up...................................|netrw--| + a................Hiding Files or Directories................|netrw-a| + mb...............Bookmarking a Directory....................|netrw-mb| + gb...............Changing to a Bookmarked Directory.........|netrw-gb| + c................Make Browsing Directory The Current Dir....|netrw-c| + d................Make A New Directory.......................|netrw-d| + D................Deleting Files or Directories..............|netrw-D| + <c-h>............Edit File/Directory Hiding List............|netrw-ctrl-h| + i................Change Listing Style.......................|netrw-i| + <c-l>............Refreshing the Listing.....................|netrw-ctrl-l| + o................Browsing with a Horizontal Split...........|netrw-o| + p................Preview Window.............................|netrw-p| + q................Listing Bookmarks and History..............|netrw-q| + r................Reversing Sorting Order....................|netrw-r| + R................Renaming Files or Directories..............|netrw-R| + s................Selecting Sorting Style....................|netrw-s| + S................Editing the Sorting Sequence...............|netrw-S| + t................Browsing with a new tab....................|netrw-t| + u................Changing to a Predecessor Directory........|netrw-u| + U................Changing to a Successor Directory..........|netrw-U| + v................Browsing with a Vertical Split.............|netrw-v| + x................Customizing Browsing.......................|netrw-x| + + COMMANDS *netrw-explore-cmds* + :Explore[!] [dir] Explore directory of current file........|netrw-explore| + :Sexplore[!] [dir] Split & Explore directory ...............|netrw-explore| + :Hexplore[!] [dir] Horizontal Split & Explore...............|netrw-explore| + :Vexplore[!] [dir] Vertical Split & Explore.................|netrw-explore| + :Texplore[!] [dir] Tab & Explore............................|netrw-explore| + :Pexplore[!] [dir] Vertical Split & Explore.................|netrw-explore| + :Nexplore[!] [dir] Vertical Split & Explore.................|netrw-explore| + :NetrwSettings.............................................|netrw-settings| + +QUICK REFERENCE COMMANDS TABLE *netrw-browse-cmds* +> + ------- ----------- + Command Explanation + ------- ----------- +< <F1> Causes Netrw to issue help + <cr> Netrw will enter the directory or read the file |netrw-cr| + <del> Netrw will attempt to remove the file/directory |netrw-del| + - Makes Netrw go up one directory |netrw--| + a Toggles between normal display, |netrw-a| + hiding (suppress display of files matching g:netrw_list_hide) + showing (display only files which match g:netrw_list_hide) + mb bookmark current directory + gb go to previous bookmarked directory + c Make current browsing directory the current directory |netrw-c| + d Make a directory |netrw-d| + D Netrw will attempt to remove the file(s)/directory(ies) |netrw-D| + <c-h> Edit file hiding list |netrw-ctrl-h| + i Cycle between thin, long, wide, and tree listings|netrw-i| + <c-l> Causes Netrw to refresh the directory listing |netrw-ctrl-l| + o Enter the file/directory under the cursor in a new browser + window. A horizontal split is used. |netrw-o| + O Obtain a file specified by cursor |netrw-O| + p Preview the file |netrw-p| + P Browse in the previously used window |netrw-P| + q List bookmarked directories and history |netrw-q| + r Reverse sorting order |netrw-r| + R Rename the designed file(s)/directory(ies) |netrw-R| + s Select sorting style: by name, time, or file size |netrw-s| + S Specify suffix priority for name-sorting |netrw-S| + t Enter the file/directory under the cursor in a new tab|netrw-t| + u Change to recently-visited directory |netrw-u| + U Change to subsequently-visited directory |netrw-U| + v Enter the file/directory under the cursor in a new browser + window. A vertical split is used. |netrw-v| + x Apply a function to a file. (special browsers) |netrw-x| + +NETRW BROWSER VARIABLES *netrw-browse-var* +> + --- ----------- + Var Explanation + --- ----------- +< *g:netrw_alto* change from above splitting to below splitting + by setting this variable (see |netrw-o|) + default: =&sb (see |'sb'|) + + *g:netrw_altv* change from left splitting to right splitting + by setting this variable (see |netrw-v|) + default: =&spr (see |'spr'|) + + *g:netrw_browse_split* when browsing, <cr> will open the file by: + =0: re-using the same window + =1: horizontally splitting the window first + =2: vertically splitting the window first + =3: open file in new tab + + *g:netrw_browsex_viewer* specify user's preference for a viewer: > + "kfmclient exec" + "gnome-open" +< If > + "-" +< is used, then netrwFileHandler() will look for + a script/function to handle the given + extension. (see |netrw_filehandler|). + + *g:netrw_fastbrowse* =0: slow speed browsing, never re-use + directory listings; always obtain + directory listings. + =1: medium speed browsing, re-use directory + listings only when remote browsing. + (default value) + =2: fast browsing, only obtains directory + listings when the directory hasn't been + seen before (or |netrw-ctrl-l| is used). + Fast browsing retains old directory listing + buffers so that they don't need to be + re-acquired. This feature is especially + important for remote browsing. However, if + a file is introduced or deleted into or from + such directories, the old directory buffer + becomes out-of-date. One may always refresh + such a directory listing with |netrw-ctrl-l|. + This option gives the choice of the trade-off + between accuracy and speed to the user. + + *g:netrw_ftp_browse_reject* ftp can produce a number of errors and warnings + that can show up as "directories" and "files" + in the listing. This pattern is used to + remove such embedded messages. By default its + value is: + '^total\s\+\d\+$\| + ^Trying\s\+\d\+.*$\| + ^KERBEROS_V\d rejected\| + ^Security extensions not\| + No such file\| + : connect to address [0-9a-fA-F:]* + : No route to host$' + + *g:netrw_ftp_list_cmd* options for passing along to ftp for directory + listing. Defaults: + unix or g:netrw_cygwin set: : "ls -lF" + otherwise "dir" + + + *g:netrw_ftp_sizelist_cmd* options for passing along to ftp for directory + listing, sorted by size of file. + Defaults: + unix or g:netrw_cygwin set: : "ls -slF" + otherwise "dir" + + *g:netrw_ftp_timelist_cmd* options for passing along to ftp for directory + listing, sorted by time of last modification. + Defaults: + unix or g:netrw_cygwin set: : "ls -tlF" + otherwise "dir" + + *g:netrw_hide* if true, the hiding list is used + default: =0 + + *g:netrw_keepdir* =1 (default) keep current directory immune from + the browsing directory. + =0 keep the current directory the same as the + browsing directory. + The current browsing directory is contained in + b:netrw_curdir (also see |netrw-c|) + + *g:netrw_list_cmd* command for listing remote directories + default: (if ssh is executable) + "ssh HOSTNAME ls -FLa" + + *g:netrw_liststyle* Set the default listing style: + = 0: thin listing (one file per line) + = 1: long listing (one file per line with time + stamp information and file size) + = 2: wide listing (multiple files in columns) + = 3: tree style listing + *g:netrw_list_hide* comma separated pattern list for hiding files + default: "" + + *g:netrw_local_mkdir* command for making a local directory + default: "mkdir" + + *g:netrw_local_rmdir* remove directory command (rmdir) + default: "rmdir" + + *g:netrw_maxfilenamelen* =32 by default, selected so as to make long + listings fit on 80 column displays. + If your screen is wider, and you have file + or directory names longer than 32 bytes, + you may set this option to keep listings + columnar. + + *g:netrw_mkdir_cmd* command for making a remote directory + default: "ssh USEPORT HOSTNAME mkdir" + + *g:netrw_rm_cmd* command for removing files + default: "ssh USEPORT HOSTNAME rm" + + *g:netrw_rmdir_cmd* command for removing directories + default: "ssh USEPORT HOSTNAME rmdir" + + *g:netrw_rmf_cmd* command for removing softlinks + default: "ssh USEPORT HOSTNAME rm -f" + + *g:netrw_sort_by* sort by "name", "time", or "size" + default: "name" + + *g:netrw_sort_direction* sorting direction: "normal" or "reverse" + default: "normal" + + *g:netrw_sort_sequence* when sorting by name, first sort by the + comma-separated pattern sequence + default: '[\/]$,*,\.bak$,\.o$,\.h$, + \.info$,\.swp$,\.obj$' + + *g:netrw_ssh_cmd* One may specify an executable command + to use instead of ssh for remote actions + such as listing, file removal, etc. + default: ssh + + *g:netrw_ssh_browse_reject* ssh can sometimes produce unwanted lines, + messages, banners, and whatnot that one doesn't + want masquerading as "directories" and "files". + Use this pattern to remove such embedded + messages. By default its value is: + '^total\s\+\d\+$' + + *g:netrw_use_noswf* netrw normally avoids writing swapfiles + for browser buffers. However, under some + systems this apparently is causing nasty + ml_get errors to appear; if you're getting + ml_get errors, try putting + let g:netrw_use_noswf= 0 + in your .vimrc. + + *g:netrw_timefmt* specify format string to strftime() (%c) + default: "%c" + + *g:netrw_winsize* specify initial size of new o/v windows + default: "" + + *g:NetrwTopLvlMenu* This variable specifies the top level + menu name; by default, its "Netrw.". If + you wish to change this, do so in your + .vimrc. + +INTRODUCTION TO DIRECTORY BROWSING *netrw-browse-intro* + +Netrw supports the browsing of directories on the local system and on remote +hosts, including listing files and directories, entering directories, editing +files therein, deleting files/directories, making new directories, and moving +(renaming) files and directories. The Netrw browser generally implements the +previous explorer maps and commands for remote directories, although details +(such as pertinent global variable names) necessarily differ. + +The Netrw remote file and directory browser handles two protocols: ssh and +ftp. The protocol in the url, if it is ftp, will cause netrw to use ftp +in its remote browsing. Any other protocol will be used for file transfers, +but otherwise the ssh protocol will be used to do remote directory browsing. + +To use Netrw's remote directory browser, simply attempt to read a "file" with a +trailing slash and it will be interpreted as a request to list a directory: + + vim [protocol]://[user@]hostname/path/ + +For local directories, the trailing slash is not required. + +If you'd like to avoid entering the password in for remote directory listings +with ssh or scp, see |netrw-listhack|. + + +NETRW BROWSING AND OPTION INCOMPATIBILITIES *netrw-incompatible* + +Netrw will not work properly with > + + :set acd + :set fo=...ta... +< +If either of these options are present when browsing is attempted, netrw +will change them by using noacd and removing the ta suboptions from the +|'formatoptions'|. + + *netrw-explore* *netrw-pexplore* *netrw-texplore* + *netrw-hexplore* *netrw-sexplore* *netrw-nexplore* + *netrw-vexplore* +DIRECTORY EXPLORING COMMANDS + + :Explore[!] [dir]... Explore directory of current file *:Explore* + :Sexplore[!] [dir]... Split&Explore directory of current file *:Sexplore* + :Hexplore[!] [dir]... Horizontal Split & Explore *:Hexplore* + :Vexplore[!] [dir]... Vertical Split & Explore *:Vexplore* + :Texplore [dir]... Tab & Explore *:Texplore* + + Used with :Explore **/pattern : (also see |netrw-starstar|) + :Nexplore............. go to next matching file *:Nexplore* + :Pexplore............. go to previous matching file *:Pexplore* + +:Explore will open the local-directory browser on the current file's + directory (or on directory [dir] if specified). The window will be + split only if the file has been modified, otherwise the browsing + window will take over that window. Normally the splitting is taken + horizontally. +:Explore! is like :Explore, but will use vertical splitting. +:Sexplore will always split the window before invoking the local-directory + browser. As with Explore, the splitting is normally done + horizontally. +:Sexplore! [dir] is like :Sexplore, but the splitting will be done vertically. +:Hexplore [dir] does an :Explore with |:belowright| horizontal splitting. +:Hexplore! [dir] does an :Explore with |:aboveleft| horizontal splitting. +:Vexplore [dir] does an :Explore with |:leftabove| vertical splitting. +:Vexplore! [dir] does an :Explore with |:rightbelow| vertical splitting. +:Texplore [dir] does a tabnew before generating the browser window + +By default, these commands use the current file's directory. However, one +may explicitly provide a directory (path) to use. + + *netrw-starstar* +When Explore, Sexplore, Hexplore, or Vexplore are used with a **/filepat, +such as: +> + :Explore **/filename_pattern +< +netrw will attempt to find a file in the current directory or any subdirectory +which matches the filename pattern. Internally, it produces a list of files +which match the pattern and their paths; to that extent it resembles the Unix +operation: +> + find $(pwd) -name "$1" -exec "echo" "{}" ";" 2> /dev/null +< +The directory display is updated to show the subdirectory containing a +matching file. One may then proceed to the next (or previous) matching files' +directories by using Nexplore or Pexplore, respectively. If your console or +gui produces recognizable shift-up or shift-down sequences, then you'll likely +find using shift-downarrow and shift-uparrow convenient. They're mapped by +netrw: + + <s-down> == Nexplore, and + <s-up> == Pexplore. + +As an example, consider +> + :Explore **/*.c + :Nexplore + :Nexplore + :Pexplore +< +The status line will show, on the right hand side of the status line, a +message like "Match 3 of 20". + + *netrw-starpat* +When Explore, Sexplore, Hexplore, or Vexplore are used with a */pattern, +such as: +> + :Explore */pattern +< +netrw will use |:vimgrep| to find files which contain the given pattern. +Like what happens with |netrw-starstar|, a list of files which contain +matches to the given pattern is generated. The cursor will then jump +to the first file with the given pattern; |:Nexplore|, |:Pexplore|, and +the shifted-down and -up arrows work with the list to move to the next +or previous files in that list. + + *netrw-starstarpat* +When Explore, Sexplore, Hexplore, or Vexplore are used with a **//pattern, +such as: +> + :Explore **//pattern +< +then Explore will use |:vimgrep| to find files like |netrw-starpat|; +however, Explore will also search subdirectories as well as the current +directory. + + +REFRESHING THE LISTING *netrw-ctrl-l* *netrw-ctrl_l* + +To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or +hit the <cr> when atop the ./ directory entry in the listing. One may also +refresh a local directory by using ":e .". + + +GOING UP *netrw--* + +To go up a directory, press "-" or press the <cr> when atop the ../ directory +entry in the listing. + +Netrw will use the command in |g:netrw_list_cmd| to perform the directory +listing operation after changing HOSTNAME to the host specified by the +user-provided url. By default netrw provides the command as: + + ssh HOSTNAME ls -FLa + +where the HOSTNAME becomes the [user@]hostname as requested by the attempt to +read. Naturally, the user may override this command with whatever is +preferred. The NetList function which implements remote directory browsing +expects that directories will be flagged by a trailing slash. + + +BROWSING *netrw-cr* + +Browsing is simple: move the cursor onto a file or directory of interest. +Hitting the <cr> (the return key) will select the file or directory. +Directories will themselves be listed, and files will be opened using the +protocol given in the original read request. + + CAVEAT: There are four forms of listing (see |netrw-i|). Netrw assumes + that two or more spaces delimit filenames and directory names for the long + and wide listing formats. Thus, if your filename or directory name has two + or more spaces embedded in it, or any trailing spaces, then you'll need to + use the "thin" format to select it. + +The |g:netrw_browse_split| option, which is zero by default, may be used to +cause the opening of files to be done in a new window or tab. When the option +is one or two, the splitting will be taken horizontally or vertically, +respectively. When the option is set to three, a <cr> will cause the file +to appear in a new tab. + + +OBTAINING A FILE *netrw-O* + +When browsing a remote directory, one may obtain a file under the cursor (ie. +get a copy on your local machine, but not edit it) by pressing the O key. +Only ftp and scp are supported for this operation (but since these two are +available for browsing, that shouldn't be a problem). The status bar +will then show, on its right hand side, a message like "Obtaining filename". +The statusline will be restored after the transfer is complete. + +Netrw can also "obtain" a file using the local browser. Netrw's display +of a directory is not necessarily the same as Vim's "current directory", +unless |g:netrw_keepdir| is set to 0 in the user's <.vimrc>. One may select +a file using the local browser (by putting the cursor on it) and pressing +"O" will then "obtain" the file; ie. copy it to Vim's current directory. + +Related topics: + * To see what the current directory is, use |:pwd| + * To make the currently browsed directory the current directory, see |netrw-c| + * To automatically make the currently browsed directory the current + directory, see |g:netrw_keepdir|. + + +CHANGE LISTING STYLE *netrw-i* + +The "i" map cycles between the thin, long, wide, and tree listing formats. + +The short listing format gives just the files' and directories' names. + +The long listing is either based on the "ls" command via ssh for remote +directories or displays the filename, file size (in bytes), and the time and +date of last modification for local directories. With the long listing +format, netrw is not able to recognize filenames which have trailing spaces. +Use the thin listing format for such files. + +The wide listing format uses two or more contiguous spaces to delineate +filenames; when using that format, netrw won't be able to recognize or use +filenames which have two or more contiguous spaces embedded in the name or any +trailing spaces. The thin listing format will, however, work with such files. +This listing format is the most compact. + +The tree listing format has a top directory followed by files and directories +preceded by a "|". One may open and close directories by pressing the <cr> +key while atop the directory name. There is only one tree listing buffer; +hence, using "v" or "o" on a subdirectory will only show the same buffer, +twice. + + +MAKING A NEW DIRECTORY *netrw-d* + +With the "d" map one may make a new directory either remotely (which depends +on the global variable g:netrw_mkdir_cmd) or locally (which depends on the +global variable g:netrw_local_mkdir). Netrw will issue a request for the new +directory's name. A bare <CR> at that point will abort the making of the +directory. Attempts to make a local directory that already exists (as either +a file or a directory) will be detected, reported on, and ignored. + + +DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D* *netrw-del* + +Deleting/removing files and directories involves moving the cursor to the +file/directory to be deleted and pressing "D". Directories must be empty +first before they can be successfully removed. If the directory is a softlink +to a directory, then netrw will make two requests to remove the directory +before succeeding. Netrw will ask for confirmation before doing the +removal(s). You may select a range of lines with the "V" command (visual +selection), and then pressing "D". + +The g:netrw_rm_cmd, g:netrw_rmf_cmd, and g:netrw_rmdir_cmd variables are used +to control the attempts to remove files and directories. The g:netrw_rm_cmd +is used with files, and its default value is: + + g:netrw_rm_cmd: ssh HOSTNAME rm + +The g:netrw_rmdir_cmd variable is used to support the removal of directories. +Its default value is: + + g:netrw_rmdir_cmd: ssh HOSTNAME rmdir + +If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt +to remove it again using the g:netrw_rmf_cmd variable. Its default value is: + + g:netrw_rmf_cmd: ssh HOSTNAME rm -f + + +RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R* + +Renaming/moving files and directories involves moving the cursor to the +file/directory to be moved (renamed) and pressing "R". You will then be +queried for where you want the file/directory to be moved. You may select a +range of lines with the "V" command (visual selection), and then pressing "R". + +The g:netrw_rename_cmd variable is used to implement renaming. By default its +value is: + + ssh HOSTNAME mv + +One may rename a block of files and directories by selecting them with +the V (|linewise-visual|). + + +HIDING FILES OR DIRECTORIES *netrw-a* *netrw-hiding* + +Netrw's browsing facility allows one to use the hiding list in one of three +ways: ignore it, hide files which match, and show only those files which +match. The "a" map allows the user to cycle about these three ways. + +The g:netrw_list_hide variable holds a comma delimited list of patterns (ex. +\.obj) which specify the hiding list. (also see |netrw-ctrl-h|) To set the +hiding list, use the <c-h> map. As an example, to hide files which begin with +a ".", one may use the <c-h> map to set the hiding list to '^\..*' (or one may +put let g:netrw_list_hide= '^\..*' in one's <.vimrc>). One may then use the +"a" key to show all files, hide matching files, or to show only the matching +files. + + Example: ^.*\.[ch] + This hiding list command will hide/show all *.c and *.h files. + + Example: ^.*\.c,^.*\.h + This hiding list command will also hide/show all *.c and *.h + files. + +Don't forget to use the "a" map to select the normal/hiding/show mode you want! + + *netrw-ctrl_h* +EDIT FILE OR DIRECTORY HIDING LIST *netrw-ctrl-h* *netrw-edithide* + +The "<ctrl-h>" map brings up a requestor allowing the user to change the +file/directory hiding list. The hiding list consists of one or more patterns +delimited by commas. Files and/or directories satisfying these patterns will +either be hidden (ie. not shown) or be the only ones displayed (see +|netrw-a|). + + +BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o* *netrw-horiz* + +Normally one enters a file or directory using the <cr>. However, the "o" map +allows one to open a new window to hold the new directory listing or file. A +horizontal split is used. (for vertical splitting, see |netrw-v|) + +Normally, the o key splits the window horizontally with the new window and +cursor at the top. To change to splitting the window horizontally with the +new window and cursor at the bottom, have + + let g:netrw_alto = 1 + +in your <.vimrc>. (also see |netrw-t| |netrw-v| |g:netrw_alto|) + +There is only one tree listing buffer; using "o" on a displayed subdirectory +will split the screen, but the same buffer will be shown twice. + + +BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v* + +Normally one enters a file or directory using the <cr>. However, the "v" map +allows one to open a new window to hold the new directory listing or file. A +vertical split is used. (for horizontal splitting, see |netrw-o|) + +Normally, the v key splits the window vertically with the new window and +cursor at the left. To change to splitting the window vertically with the new +window and cursor at the right, have + + let g:netrw_altv = 1 + +in your <.vimrc>. (also see: |netrw-o| |netrw-t| |g:netrw_altv|) + +There is only one tree listing buffer; using "v" on a displayed subdirectory +will split the screen, but the same buffer will be shown twice. + + +BROWSING WITH A NEW TAB *netrw-t* + +Normally one enters a file or directory using the <cr>. The "t" map +allows one to open a new window hold the new directory listing or file in a +new tab. (also see: |netrw-o| |netrw-v|) + + +PREVIEW WINDOW *netrw-p* *netrw-preview* + +One may use a preview window by using the "p" key when the cursor is atop the +desired filename to be previewed. + + +PREVIOUS WINDOW *netrw-P* *netrw-prvwin* + +To edit a file or directory in the previously used window (see :he |CTRL-W_P|), +press a "P". If there's only one window, then the one window will be +horizontally split (above/below splitting is controlled by |g:netrw_alto|, +and its initial size is controlled by |g:netrw_winsize|). + +If there's more than one window, the previous window will be re-used on +the selected file/directory. If the previous window's associated buffer +has been modified, and there's only one window with that buffer, then +the user will be asked if s/he wishes to save the buffer first (yes, +no, or cancel). + + +SELECTING SORTING STYLE *netrw-s* *netrw-sort* + +One may select the sorting style by name, time, or (file) size. The "s" map +allows one to circulate amongst the three choices; the directory listing will +automatically be refreshed to reflect the selected style. + + +EDITING THE SORTING SEQUENCE *netrw-S* *netrw-sortsequence* + +When "Sorted by" is name, one may specify priority via the sorting sequence +(g:netrw_sort_sequence). The sorting sequence typically prioritizes the +name-listing by suffix, although any pattern will do. Patterns are delimited +by commas. The default sorting sequence is: +> + [\/]$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$ +< +The lone * is where all filenames not covered by one of the other patterns +will end up. One may change the sorting sequence by modifying the +g:netrw_sort_sequence variable (either manually or in your <.vimrc>) or by +using the "S" map. + + +REVERSING SORTING ORDER *netrw-r* *netrw-reverse* + +One may toggle between normal and reverse sorting order by pressing the +"r" key. + + +CHANGING TO A PREDECESSOR DIRECTORY *netrw-u* *netrw-updir* + +Every time you change to a new directory (new for the current session), +netrw will save the directory in a recently-visited directory history +list (unless g:netrw_dirhistmax is zero; by default, its ten). With the +"u" map, one can change to an earlier directory (predecessor). To do +the opposite, see |netrw-U|. + + +CHANGING TO A SUCCESSOR DIRECTORY *netrw-U* *netrw-downdir* + +With the "U" map, one can change to a later directory (successor). +This map is the opposite of the "u" map. (see |netrw-u|) Use the +q map to list both the bookmarks and history. (see |netrw-q|) + + *netrw-gx* +CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x* *netrw-handler* + (also see |netrw_filehandler|) + +Certain files, such as html, gif, jpeg, (word/office) doc, etc, files, are +best seen with a special handler (ie. a tool provided with your computer). +Netrw allows one to invoke such special handlers by: > + + * when Exploring, hit the "x" key + * when editing, hit gx with the cursor atop the special filename +< (not available if the |g:netrw_nogx| variable exists) + +Netrw determines which special handler by the following method: + + * if |g:netrw_browsex_viewer| exists, then it will be used to attempt to + view files. Examples of useful settings (place into your <.vimrc>): > + + :let g:netrw_browsex_viewer= "kfmclient exec" +< or > + :let g:netrw_browsex_viewer= "gnome-open" +< + If g:netrw_browsex_viewer == '-', then netrwFileHandler() will be + invoked first (see |netrw_filehandler|). + + * for Windows 32 or 64, the url and FileProtocolHandler dlls are used. + * for Gnome (with gnome-open): gnome-open is used. + * for KDE (with kfmclient): kfmclient is used. + * otherwise the netrwFileHandler plugin is used. + +The file's suffix is used by these various approaches to determine an +appropriate application to use to "handle" these files. Such things as +OpenOffice (*.sfx), visualization (*.jpg, *.gif, etc), and PostScript (*.ps, +*.eps) can be handled. + + *netrw_filehandler* + +The "x" map applies a function to a file, based on its extension. Of course, +the handler function must exist for it to be called! +> + Ex. mypgm.html x -> + NFH_html("scp://user@host/some/path/mypgm.html") +< +Users may write their own netrw File Handler functions to support more +suffixes with special handling. See <plugin/netrwFileHandlers.vim> for +examples on how to make file handler functions. As an example: > + + " NFH_suffix(filename) + fun! NFH_suffix(filename) + ..do something special with filename.. + endfun +< +These functions need to be defined in some file in your .vim/plugin +(vimfiles\plugin) directory. Vim's function names may not have punctuation +characters (except for the underscore) in them. To support suffices that +contain such characters, netrw will first convert the suffix using the +following table: > + + @ -> AT ! -> EXCLAMATION % -> PERCENT + : -> COLON = -> EQUAL ? -> QUESTION + , -> COMMA - -> MINUS ; -> SEMICOLON + $ -> DOLLAR + -> PLUS ~ -> TILDE +< +So, for example: > + + file.rcs,v -> NFH_rcsCOMMAv() +< +If more such translations are necessary, please send me email: > + NdrOchip at ScampbellPfamily.AbizM - NOSPAM +with a request. + + +MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* *netrw-curdir* + +By default, |g:netrw_keepdir| is 1. This setting means that the current +directory will not track the browsing directory. + +Setting g:netrw_keepdir to 0 tells netrw to make vim's current directory to +track netrw's browsing directory. + +However, given the default setting for g:netrw_keepdir of 1 where netrw +maintains its own separate notion of the current directory, in order to make +the two directories the same, use the "c" map (just type c). That map will +set Vim's notion of the current directory to netrw's current browsing +directory. + + +BOOKMARKING A DIRECTORY *netrw-mb* *netrw-bookmark* *netrw-bookmarks* +One may easily "bookmark" a directory by using > + + {cnt}mb +< +Any count may be used. One may use viminfo's "!" option to retain bookmarks +between vim sessions. See |netrw-gb| for how to return to a bookmark and +|netrw-q| for how to list them. + + +CHANGING TO A BOOKMARKED DIRECTORY *netrw-gb* + +To change directory back to a bookmarked directory, use + + {cnt}gb + +Any count may be used to reference any of the bookmarks. See |netrw-mb| on +how to bookmark a directory and |netrw-q| on how to list bookmarks. + + +LISTING BOOKMARKS AND HISTORY *netrw-q* *netrw-listbookmark* + +Pressing "q" will list the bookmarked directories and directory traversal +history (query). (see |netrw-mb|, |netrw-gb|, |netrw-u|, and |netrw-U|) + + +IMPROVING DIRECTORY BROWSING *netrw-listhack* + +Especially with the remote directory browser, constantly entering the password +is tedious. + +For Linux/Unix systems, the book "Linux Server Hacks - 100 industrial strength +tips & tools" by Rob Flickenger (O'Reilly, ISBN 0-596-00461-3) gives a tip +for setting up no-password ssh and scp and discusses associated security +issues. It used to be available at http://hacks.oreilly.com/pub/h/66 , +but apparently that address is now being redirected to some "hackzine". +I'll attempt a summary: + + 1. Generate a public/private key pair on the ssh server: + ssh-keygen -t rsa + (saving the file in ~/.ssh/id_rsa is ok) + 2. Just hit the <CR> when asked for passphrase (twice). + 3. This creates two files: + ~/.ssh/id_rsa + ~/.ssh/id_rsa.pub + 4. On the client: + cd + mkdir .ssh + chmod 0700 .ssh + scp {serverhostname}:.ssh/id_rsa.pub . + cat id_rsa.pub >> .ssh/authorized_keys2 + +For Windows, folks on the vim mailing list have mentioned that Pageant helps +with avoiding the constant need to enter the password. + + +NETRW SETTINGS *netrw-settings* + +With the NetrwSettings.vim plugin, > + :NetrwSettings +will bring up a window with the many variables that netrw uses for its +settings. You may change any of their values; when you save the file, the +settings therein will be used. One may also press "?" on any of the lines for +help on what each of the variables do. + +(also see: |netrw-browse-var| |netrw-protocol| |netrw-var| |netrw-variables|) + + +============================================================================== +10. Problems and Fixes *netrw-problems* + + (This section is likely to grow as I get feedback) + (also see |netrw-debug|) + *netrw-p1* + P1. I use windows 95, and my ftp dumps four blank lines at the + end of every read. + + See |netrw-fixup|, and put the following into your + <.vimrc> file: + + let g:netrw_win95ftp= 1 + + *netrw-p2* + P2. I use Windows, and my network browsing with ftp doesn't sort by + time or size! -or- The remote system is a Windows server; why + don't I get sorts by time or size? + + Windows' ftp has a minimal support for ls (ie. it doesn't + accept sorting options). It doesn't support the -F which + gives an explanatory character (ABC/ for "ABC is a directory"). + Netrw then uses "dir" to get both its short and long listings. + If you think your ftp does support a full-up ls, put the + following into your <.vimrc>: > + + let g:netrw_ftp_list_cmd = "ls -lF" + let g:netrw_ftp_timelist_cmd= "ls -tlF" + let g:netrw_ftp_sizelist_cmd= "ls -slF" +< + Alternatively, if you have cygwin on your Windows box, put + into your <.vimrc>: > + + let g:netrw_cygwin= 1 +< + This problem also occurs when the remote system is Windows. + In this situation, the various g:netrw_ftp_[time|size]list_cmds + are as shown above, but the remote system will not correctly + modify its listing behavior. + + + *netrw-p3* + P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw + used ssh! That wasn't what I asked for... + + Netrw has two methods for browsing remote directories: ssh + and ftp. Unless you specify ftp specifically, ssh is used. + When it comes time to do download a file (not just a directory + listing), netrw will use the given protocol to do so. + + *netrw-p4* + P4. I would like long listings to be the default. + + let g:netrw_liststyle= 1 + + Check out |netrw-browse-var| for more customizations that + you can set. + + *netrw-p5* + P5. My times come up oddly in local browsing + + Does your system's strftime() accept the "%c" to yield dates + such as "Sun Apr 27 11:49:23 1997"? If not, do a "man strftime" + and find out what option should be used. Then put it into + your <.vimrc>: + let g:netrw_timefmt= "%X" (where X is the option) + + *netrw-p6* + P6. I want my current directory to track my browsing. + How do I do that? + + let g:netrw_keepdir= 0 + + *netrw-p7* + P7. I use Chinese (or other non-ascii) characters in my filenames, and + netrw (Explore, Sexplore, Hexplore, etc) doesn't display them! + + (taken from an answer provided by Wu Yongwei on the vim + mailing list) + I now see the problem. You code page is not 936, right? Vim + seems only able to open files with names that are valid in the + current code page, as are many other applications that do not + use the Unicode version of Windows APIs. This is an OS-related + issue. You should not have such problems when the system + locale uses UTF-8, such as modern Linux distros. + + (...it is one more reason to recommend that people use utf-8!) + + *netrw-p8* + P8. I'm getting "ssh is not executable on your system" -- what do I + do? + + (Dudley Fox) Most people I know use putty for windows ssh. It + is a free ssh/telnet application. You can read more about it + here: + + http://www.chiark.greenend.org.uk/~sgtatham/putty/ Also: + + (Marlin Unruh) This program also works for me. It's a single + executable, so he/she can copy it into the Windows\System32 + folder and create a shortcut to it. + + (Dudley Fox) You might also wish to consider plink, as it + sounds most similar to what you are looking for. plink is an + application in the putty suite. + + http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink + + (Vissale Neang) Maybe you can try OpenSSH for windows, which + can be obtained from: + + http://sshwindows.sourceforge.net/ + + It doesn't need the full Cygwin package. + + (Antoine Mechelynck) For individual Unix-like programs needed + for work in a native-Windows environment, I recommend getting + them from the GnuWin32 project on sourceforge if it has them: + + http://gnuwin32.sourceforge.net/ + + Unlike Cygwin, which sets up a Unix-like virtual machine on + top of Windows, GnuWin32 is a rewrite of Unix utilities with + Windows system calls, and its programs works quite well in the + cmd.exe "Dos box". + + (dave) Download WinSCP and use that to connect to the server. + In Preferences > Editors, set gvim as your editor: + + - Click "Add..." + - Set External Editor (adjust path as needed, include + the quotes and !.! at the end): + "c:\Program Files\Vim\vim70\gvim.exe" !.! + - Check that the filetype in the box below is + {asterisk}.{asterisk} (all files), or whatever types + you want (cec: change {asterisk} to * ; I had to + write it that way because otherwise the helptags + system thinks its a tag) + - Make sure its at the top of the listbox (click it, + then click "Up" if its not) + If using the Norton Commander style, you just have to hit <F4> + to edit a file in a local copy of gvim. + + (Vit Gottwald) How to generate public/private key and save + public key it on server: > + http://www.tartarus.org/~simon/puttydoc/Chapter8.html#pubkey-gettingready + 8.3 Getting ready for public key authentication +< + How to use private key with 'pscp': > + http://www.tartarus.org/~simon/puttydoc/Chapter5.html + 5.2.4 Using public key authentication with PSCP +< + (cec) To make proper use of these suggestions above, you will + need to modify the following user-settable variables in your + .vimrc: + + |g:netrw_ssh_cmd| |g:netrw_list_cmd| |g:netrw_mkdir_cmd| + |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_rmf_cmd| + + The first one (|g:netrw_ssh_cmd|) is the most important; most + of the others will use the string in g:netrw_ssh_cmd by + default. + *netrw-p9* *netrw-ml_get* + P9. I'm browsing, changing directory, and bang! ml_get errors + appear and I have to kill vim. Any way around this? + + Normally netrw attempts to avoid writing swapfiles for + its temporary directory buffers. However, on some systems + this attempt appears to be causing ml_get errors to + appear. Please try setting |g:netrw_use_noswf| to 0 + in your <.vimrc>: > + let g:netrw_use_noswf= 0 +< + +============================================================================== +11. Debugging *netrw-debug* + +The <netrw.vim> script is typically available as: +> + /usr/local/share/vim/vim6x/plugin/netrw.vim +< -or- > + /usr/local/share/vim/vim7x/plugin/netrw.vim +< +which is loaded automatically at startup (assuming :set nocp). + + 1. Get the <Decho.vim> script, available as: + + http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_scripts + as "Decho, a vimL debugging aid" + or + http://vim.sourceforge.net/scripts/script.php?script_id=120 + + and put it into your local plugin directory. + + 2. <Decho.vim> itself needs the <cecutil.vim> script, so you'll need + to put it into your .vim/plugin, too. You may obtain it from: + + http://mysite.verizon.net/astronaut/vim/index.html#VimFuncs + as "DrC's Utilities" + + 3. Edit the <netrw.vim> file by typing: + + vim netrw.vim + :DechoOn + :wq + + To restore to normal non-debugging behavior, edit <netrw.vim> + by typing + + vim netrw.vim + :DechoOff + :wq + + This command, provided by <Decho.vim>, will comment out all + Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()). + + 4. Then bring up vim and attempt a transfer or do browsing. A set of + messages should appear concerning the steps that <netrw.vim> took + in attempting to read/write your file over the network. + + To save the file, use > + :wincmd j + :set bt= + :w! DBG +< Please send that information to <netrw.vim>'s maintainer, > + NdrOchip at ScampbellPfamily.AbizM - NOSPAM +< +============================================================================== +12. History *netrw-history* {{{1 + + v109: Mar 26, 2007 * if a directory name includes a "$" character, + Explore() will use expand() in an attempt to + decipher the name. + May 07, 2007 * g:netrw_use_errorwindow now allows one to + have error messages go to a reliable window + or to use a less reliable but recallable + echoerr method + May 07, 2007 * g:netrw_scpport and g:netrw_sshport support + use of -P and -p, respectively, to set port + for scp/ssh. + v108: Jan 03, 2007 * included preview map (|netrw-p|), supporting + remote browsing + * netrw can now source remote files + Jan 26, 2007 * Colton Jamieson noted that remote directory + browsing did not support alternate port + selection. This feature has now been extended + to apply to all remote browsing commands via ssh. + (list, remove/delete, rename) + Jan 31, 2007 * Luis Florit reported that @* was an invalid + register. The @* register is now only saved and + restored if |'guioptions'| contains "a". + Feb 02, 2007 * Fixed a bug that cropped up when writing files + via scp using cygwin + Feb 08, 2007 * tree listing mode managed to stop working again; + fixed again! + Feb 15, 2007 * Guido Van Hoecke reported that netrw didn't + handle browsing well with M$ ftp servers. He even + set up a temporary account for me to test with + (thanks!). Netrw now can browse M$ ftp servers. + v107: Oct 12, 2006 * bypassed the autowrite option + Oct 24, 2006 * handles automatic decompression of *.gz and *.bz2 + files + Nov 03, 2006 * Explore will highlight matching files when + **/pattern is used (and if the |'hls'| option + is set) + Nov 09, 2006 * a debugging line, when enabled, was inadvertently + bringing up help instead of simply reporting on + list contents + Nov 21, 2006 * tree listing improved (cursor remains put) + Nov 27, 2006 * fixed b:netrw_curdir bug when repeated "i"s were + pressed. + Dec 15, 2006 * considerable qty of changes, mostly to share more + code between local and remote browsing. Includes + support for tree-style listing for both remote + and local browsing. + Dec 15, 2006 * Included Peter Bengtsson's modifications to + support the Amiga. + v106: Sep 21, 2006 * removed old v:version<700 code as netrw now + requires vim 7.0 + * worked around a bug where register * was + overwritten during local browsing + v104: Sep 05, 2006 * as suggested by Rodolfo Borges, :Explore and + variants will position the cursor on the file + just having been edited + * changed default |g:netrw_sort_sequence| order + * changed b, Nb to simply mb (see |netrw-mb|) + * changed B, NB to simply gb (see |netrw-gb|) + * tree listing style (see |g:netrw_liststyle|) + * attempts to retain the alternate file + v103: Jul 26, 2006 * used Yakov Lerner's tip#1289 to improve netrw + error message display + * wide listings didn't handle files with backslashes + in their names properly. A symptom was an + inability to open files. + Aug 09, 2006 * included "t" mapping for opening tabbed windows, + both for remote and local browsing + * changed netrw_longlist to netrw_liststyle + Aug 15, 2006 * fixed one of the NB maps + Aug 22, 2006 * changed *Explore commands to use -nargs=* instead + of -nargs=?. Allows both -complete=dir _and_ the + starstar arguments to work (-nargs=? seems to + require one or the other). + Aug 23, 2006 * copied all w:.. variables across splits to + new windows + Aug 25, 2006 * when g:netrw_browsex_viewer was '-' + (see |g:netrw_browsex_viewer|) it wasn't causing + netrwFileHandlers#Invoke() to be called as it + was expected to. (tnx Steve Dugaro) + Aug 29, 2006 * changed NetBrowseX() to use "setlocal ... noswf" + instead of "set ... noswf" (tnx Benji Fisher) + Aug 31, 2006 * tabs and fastbrowse<=1 didn't work together. + v102: Jun 15, 2006 * chgd netrwPlugin to call netrw#LocalBrowseCheck() + * bugfix: g:netrw_keepdir==0 had stopped working + Jul 06, 2006 * bugfix: NetOptionSave/Restore now saves/restores + the unnamed register (|registers|) + Jul 07, 2006 * |g:netrw_menu| support included + Jul 13, 2006 * :Texplore command implemented + Jul 17, 2006 * NetSplit and (Local|Net)BrowseChgDir() were both + splitting windows. This affected o, v, and + g:netrw_browse_split. + Jul 20, 2006 * works around wildignore setting (was causing + netrw's local browser not to list wildignore'd + files) + Jul 24, 2006 * <leftmouse> acts as a <cr> for selecting a file + <rightmouse> acts as a <del> for deleting a file + v100: May 14, 2006 * when using Windows and shell==cmd.exe, the + default for g:netrw_ignorenetrc is now 1 + * bugfix: unwanted ^Ms now removed + (affected shell==cmd.exe - Windows) + * added Bookmarks and History to the menu + * an error message about non-existing + w:netrw_longlist was appearing during attempts to + Explore (fixed) + * g:netrw_shq now available to make netrw use + specified style of quotes for commands + May 29, 2006 * user NFH_*() functions were inadvertently being + ignored + * fixed a Windows non-cygwin ftp handling problem. + * hiding pattern candidate separators included some + characters it shouldn't have (tnx to Osei Poku) + Jun 01, 2006 * for browsing, netrw was supposed to use "dir" + instead of "ls -lF" when using + ftp+non-cygwin+windows. Fixed. + * an inadvertently left-in-place debugging statement + was preventing use of the "x" key with browsing. + Jun 05, 2006 * g:netrw_nogx available to prevent making the gx + map (see |g:netrw_nogx|) + * bugfix, Explore wouldn't change directory + properly (vim ., :Explore subdirname) + Jun 06, 2006 * moved history to 2nd line in Netrw menu + * fixed delete for unix-based systems + Jun 07, 2006 * x key now works for windows-noncygwin-ftp + Jun 08, 2006 * Explore */pat and **//pat now wraps + v99: May 09, 2006 * g:netrw_browse_split=3 for opening files in new + tabs implemented. + May 12, 2006 * deletes temporary file at end of NetRead() + * visual mode based Obtain implemented + * added -complete=dir to the various Explore + commands + v98: May 02, 2006 * the "p" key didn't work properly when the browsing + directory name had spaces in it. + v97: May 01, 2006 * exists("&acd") now used to determine if + the 'acd' option exists + * "obtain" now works again under Windows + v96: * bugfix - the |'acd'| option is not always defined but is + now bypassed only when it is + v95: * bugfix - Hiding mode worked correctly (don't show any file + matching any of the g:netrw_hide patterns), but + showing mode was showing only those files that didn't + match any of the g:netrw_hide patterns. Instead, it now + shows all files that match any of the g:netrw_hide patterns + (the difference between a logical and and logical or). + v94: * bugfix - a Decho() had a missing quote; only affects things + when debugging was enabled. + v93: * bugfix - removed FocusGained event from causing a slow-browser + refresh for Windows + v92: * :Explore **//pattern implemented (**/filepattern already taken) + v91: * :Explore */pattern implemented + * |'acd'| option bypassed + v90: * mark ', as suggested by Yegappan Lakshmanan, used to help + guarantee entry into the jump list when appropriate. + * <s-down> and <s-up> are no longer defined until a + :Explore **/pattern is used (if the user already has a map + for them). They will be defined for new browser windows + from that point forward. + v89: * A <s-down>, <s-up>, :Nexplore, or a :Pexplore without having + first done an :Explore **/pattern (see |netrw-starstar|) caused + a lot of unhelpful error messages to appear + v88: * moved DrChip.Netrw menu to Netrw. Now has priority 80 by + default. g:NetrwTopLvlMenu == "Netrw" and can be changed + by the user to suit. The priority is g:NetrwMenuPriority. + * Changed filetype for browser displays from netrwlist to netrw. + v87: * bug fix -- menus were partially disappearing + v85: * bug fix -- missing an endif + * bug fix -- handles spaces in names and directories when using + ftp-based browsing + v83: * disabled stop-acd handling; the change in directory handling + may allow acd to be used again. Awaiting feedback. + * D was refusing to delete remote files/directories in wide + listing mode. + v81: * FocusGained also used to refresh/wipe local browser directory + buffers + * (bugfix) netrw was leaving [Scratch] buffers behind when the + user had the "hidden" option set. The 'hidden' option is + now bypassed. + v80: * ShellCmdPost event used in conjunction with g:netrw_fastbrowse + to refresh/wipe local browser directory buffers. + v79: * directories are now displayed with nowrap + * (bugfix) if the column width was smaller than the largest + file's name, then netrw would hang when using wide-listing + mode - fixed + * g:netrw_fastbrowse introduced + v78: * progress has been made on allowing spaces inside directory + names for remote work (reading, writing, browsing). (scp) + v77: * Mikolaj Machowski fixed a bug in a substitute command + * g:netrw_browsex_viewer implemented + * Mikolaj Machowski pointed out that gnome-open is often + executable under KDE systems, although it is effectively + not functional. NetBrowseX now looks for "kicker" as + a running process to determine if KDE is actually the + really running. + * Explorer's O functionality was inadvertently left out. + Netrw now does the same thing, but with the "P" key. + * added g:netrw_browse_split option + * fixed a bug where the directory contained a "." but + the file didn't (was treating the dirname from "." + onwards as a suffix) + v76: * "directory is missing" error message now restores echo + highlighting + v75: * file://... now conforms to RFC2396 (thanks to S. Zacchiroli) + * if the binary option is set, then NetWrite() will only write + the whole file (line numbers don't make sense with this). + Supports writing of tar and zip files. + v74: * bugfix (vim, then :Explore) now works + * ctrl-L keeps cursor at same screen location (both local and + remote browsing) + * netrw now can read remote zip and tar files + * Obtain now uses WinXP ftp+.netrc successfully + v73: * bugfix -- scp://host/path/file was getting named incorrectly + * netrw detects use of earlier-than-7.0 version of vim and issues + a pertinent error message. + * netrwSettings.vim is now uses autoloading. Only + <netrwPlugin.vim> is needed as a pure plugin + (ie. always loaded). + v72: * bugfix -- formerly, one could prevent the loading of netrw + by "let g:loaded_netrw=1"; when autoloading became supported, + this feature was lost. It is now restored. + v71: * bugfix -- made some "set nomodifiable"s into setlocal variants + (allows :e somenewfile to be modifiable as usual) + * NetrwSettings calls a netrw function, thereby assuring that + netrw has loaded. However, if netrw does not load for whatever + reason, then NetrwSettings will now issue a warning message. + * For what reason I don't recall, when wget and fetch are both + not present, and an attempt to read a http://... url is made, + netrw exited. It now only returns. + * When ch=1, on the second and subsequent uses of browsing Netrw + would issue a blank line to clear the echo'd messages. This + caused an annoying "Hit-Enter" prompt; now a blank line message + is echo'd only if &ch>1. + v70: * when using |netrw-O|, the "Obtaining filename" message is now + shown using |hl-User9|. If User9 has not been defined, netrw + will define it. + v69: * Bugfix: win95/98 machines were experiencing a + "E121: Undefined variable: g:netrw_win95ftp" message + v68: * double-click-leftmouse selects word under mouse + v67: * Passwords which contain blanks will now be surrounded by + double-quotes automatically (Yongwei) + v66: * Netrw now seems to work with a few more Windows situations + * O now obtains a file: remote browsing file -> local copy, + locally browsing file -> current directory (see :pwd) + * i now cycles between thin, long, and wide listing styles + * NB and Nb are maps that are always available; corresponding + B and b maps are only available when not using wide listing + in order to allow them to be used for motions + v65: * Browser functions now use NetOptionSave/Restore; in particular, + netrw now works around the report setting + v64: * Bugfix - browsing a "/" directory (Unix) yielded buffers + named "[Scratch]" instead of "/" + * Bugfix - remote browsing with ftp was omitting the ./ and ../ + v63: * netrw now takes advantage of autoload (and requires 7.0) + * Bugfix - using r (to reverse sort) working again + v62: * Bugfix - spaces allowed again in directory names with + g:netrw_keepdir=0. In fact, I've tested netrw (again) + with most ANSI punctuation marks for directory names. + * Bugfix - NetrwSettings gave errors when g:netrw_silent + had not be set. + v61: * document upgrade -- netrw variable-based settings all should + have tags. Supports NetrwSettings command. + * several important variables are window-oriented. Netrw has + to transfer these across a window split. See s:BufWinVars() + and s:UseBufWinVars(). + v60: * when using the i map to switch between long and short listings, + netrw will now keep cursor on same line + * "Match # of #" now uses status line + * :Explore **/*.c will now work from a non-netrw-browser window + * :Explore **/patterns can now be run in separate browser windows + * active banner (hit <cr> will cause various things to happen) + v59: * bugfix -- another keepalt work-around installed (for vim6.3) + * "Match # of #" for Explore **/pattern matches + v58: * Explore and relatives can now handle **/somefilepattern (v7) + * Nexplore and Pexplore introduced (v7). shift-down and shift-up + cursor keys will invoke Nexplore and Pexplore, respectively. + * bug fixed with o and v + * autochdir only worked around for vim when it has been + compiled with either |+netbeans_intg| or |+sun_workshop| + * Under Windows, all directories and files were being preceded + with a "/" when local browsing. Fixed. + * When: syntax highlighting is off, laststatus=2, and remote + browsing is used, sometimes the laststatus highlighting + bleeds into the entire display. Work around - do an extra + redraw in that case. + * Bugfix: when g:netrw_keepdir=0, due to re-use of buffers, + netrw didn't change the directory when it should've + * Bugfix: D and R commands work again + v57: * Explore and relatives can now handle RO files + * reverse sort restored with vim7's sort command + * g:netrw_keepdir now being used to keep the current directory + unchanged as intended (sense change) + * vim 6.3 still supported + v56: * LocalBrowse now saves autochdir setting, unsets it, and + restores it before returning. + * using vim's rename() instead of system + local_rename variable + * avoids changing directory when g:netrw_keepdir is false + v55: * -bar used with :Explore :Sexplore etc to allow multiple + commands to be separated by |s + * browser listings now use the "nowrap" option + * browser: some unuseful error messages now suppressed + v54: * For backwards compatibility, Explore and Sexplore have been + implemented. In addition, Hexplore and Vexplore commands + are available, too. + * <amatch> used instead of <afile> in the transparency + support (BufReadCmd, FileReadCmd, FileWriteCmd) + * ***netrw*** prepended to various error messages netrw may emit + * g:netrw_port used instead of b:netrw_port for scp + * any leading [:#] is removed from port numbers + v53: * backslashes as well as slashes placed in various patterns + (ex. g:netrw_sort_sequence) to better support Windows + v52: * nonumber'ing now set for browsing buffers + * when the hiding list hid all files, error messages ensued. Fixed + * when browsing, swf is set, but directory is not set, when netrw + was attempting to restore options, vim wanted to save a swapfile + to a local directory using an url-style path. Fixed + v51: * cygwin detection now automated (using windows and &shell is bash) + * customizable browser "file" rejection patterns + * directory history + * :[range]w url now supported (ie. netrw has a FileWriteCmd event) + * error messages have a "Press <cr> to continue" to allow them + to be seen + * directory browser displays no longer bother the swapfile + * u/U commands to go up and down the history stack + * history stack may be saved with viminfo with its "!" option + * bugfixes associated with unwanted [No Files] entries + v50: * directories now displayed using buftype=nofile; should keep the + directory names as-is + * attempts to remove empty "[No File]" buffers leftover + from :file ..name.. commands + * bugfix: a "caps-lock" editing difficulty left in v49 was fixed + * syntax highlighting for "Showing:" the hiding list included + * bookmarks can now be retained if "!" is in the viminfo option + v49: * will use ftp for http://.../ browsing v48: + * One may use ftp to do remote host file browsing + * (windows and !cygwin) remote browsing with ftp can now use + the "dir" command internally to provide listings + * g:netrw_keepdir now allows one to keep the initial current + directory as the current directory (normally the local file + browser makes the currently viewed directory the current + directory) + * g:netrw_alto and g:netrw_altv now support alternate placement + of windows started with o or v + * Nread ? and Nwrite ? now uses echomsg (instead of echo) so + :messages can repeat showing the help + * bugfix: avoids problems with partial matches of directory names + to prior buffers with longer names + * one can suppress error messages with g:netrw_quiet ctrl-h used + * instead of <Leader>h for editing hiding list one may edit the + * sorting sequence with the S map now allows confirmation of + * deletion with [y(es) n(o) a(ll) q(uit)] the "x" map now handles + * special file viewing with: + (windows) rundll32 url.dll (gnome) gnome-open (kde) + kfmclient If none of these are on the executable path, then + netrwFileHandlers.vim is used. + * directory bookmarking during both local and remote browsing + implemented + * one may view all, use the hiding list to suppress, or use the + hiding list to show-only remote and local file/directory + listings + * improved unusual file and directory name handling preview + * window support + v47: * now handles local directory browsing. + v46: * now handles remote directory browsing + * g:netrw_silent (if 1) will cause all transfers to be silent + v45: * made the [user@]hostname:path form a bit more restrictive to + better handle errors in using protocols (e.g. scp:usr@host:file + was being recognized as an rcp request) v44: * changed from + "rsync -a" to just "rsync" + * somehow an editing error messed up the test to recognize + use of the fetch method for NetRead. + * more debugging statements included + v43: * moved "Explanation" comments to <pi_netrw.txt> help file as + "Network Reference" (|netrw-ref|) + * <netrw.vim> now uses Dfunc() Decho() and Dret() for debugging + * removed superfluous NetRestorePosn() calls + v42: * now does BufReadPre and BufReadPost events on file:///* and + file://localhost/* v41: * installed file:///* and + file://localhost/* handling v40: * prevents redraw when a + protocol error occurs so that the user may see it v39: * sftp + support v38: * Now uses NetRestorePosn() calls with + Nread/Nwrite commands + * Temporary files now removed via bwipe! instead of bwipe + (thanks to Dave Roberts) v37: * Claar's modifications which + test if ftp is successful, otherwise give an error message + * After a read, the alternate file was pointing to the temp file. + The temp file buffer is now wiped out. + * removed silent from transfer methods so user can see what's + happening + + +============================================================================== +12. Credits *netrw-credits* {{{1 + + Vim editor by Bram Moolenaar (Thanks, Bram!) + dav support by C Campbell + fetch support by Bram Moolenaar and C Campbell + ftp support by C Campbell <NdrOchip@ScampbellPfamily.AbizM> + http support by Bram Moolenaar <bram@moolenaar.net> + rcp + rsync support by C Campbell (suggested by Erik Warendorph) + scp support by raf <raf@comdyn.com.au> + sftp support by C Campbell + + inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell + + Jérôme Augé -- also using new buffer method with ftp+.netrc + Bram Moolenaar -- obviously vim itself, :e and v:cmdarg use, + fetch,... + Yasuhiro Matsumoto -- pointing out undo+0r problem and a solution + Erik Warendorph -- for several suggestions (g:netrw_..._cmd + variables, rsync etc) + Doug Claar -- modifications to test for success with ftp + operation + +============================================================================== + vim:tw=78:ts=8:ft=help:norl:fdm=marker