vim-jp / vimdoc-ja / pi_netrw

pi_netrw - Vim日本語ドキュメント

メインヘルプファイルに戻る English | 日本語 | 編集
pi_netrw.txt  For Vim バージョン 9.1.  Last change: 2024 Nov 23

            ------------------------------------------------
            NETRW REFERENCE MANUAL    by Charles E. Campbell
            ------------------------------------------------
Original Author:  Charles E. Campbell

Copyright: Copyright (C) 2017 Charles E Campbell    netrw-copyright
        The VIM LICENSE applies to the files in this package, including
        netrw.vim, pi_netrw.txt, netrwSettings.vim, and
        syntax/netrw.vim.  Like anything else that's free, netrw.vim and its
        associated files are provided *as is* and comes with no warranty of
        any kind, either expressed or implied.  No guarantees of
        merchantability.  No guarantees of suitability for any purpose.  By
        using this plugin, you agree that in no event will the copyright
        holder be liable for any damages resulting from the use of this
        software. Use at your own risk!  For bug reports, see bugs.


                netrw
                dav    ftp    netrw-file  rcp    scp
                davs   http   netrw.vim   rsync  sftp
                fetch  network

==============================================================================
1. 目次                                                 netrw-contents {{{1

1.  目次..................................................netrw-contents
2.  Netrw の準備..........................................netrw-start
3.  Netrw リファレンス....................................netrw-ref
      外部プログラムとプロトコル..........................netrw-externapp
      読み込み............................................netrw-read
      書き込み............................................netrw-write
      スクリプト読み込み..................................netrw-source
      ディレクトリのファイル一覧表示......................netrw-dirlist
      USERID と PASSWORD を変更...........................netrw-chgup
      NETRW の変数と設定..................................netrw-variables
      パス................................................netrw-path
4.  ネットワークファイル転送..............................netrw-xfer
      NETRC...............................................netrw-netrc
      パスワード..........................................netrw-passwd
5.  netrw の有効化........................................netrw-activate
6.  透過的なリモートファイル編集..........................netrw-transparent
7.  Ex コマンド...........................................netrw-ex
8.  変数とオプション......................................netrw-settings
9.  ブラウジング..........................................netrw-browse
      ブラウジングの紹介..................................netrw-intro-browse
      クイックリファレンス: マップ........................netrw-browse-maps
      クイックリファレンス: コマンド......................netrw-browse-cmds
      バナーの表示を切り替える............................netrw-I
      ディレクトリをブックマークする......................netrw-mb
      ブラウジング........................................netrw-cr
      現在のツリー表示ディレクトリを閉じる................netrw-s-cr
      水平分割ウィンドウを使ったブラウジング..............netrw-o
      タブを使ったブラウジング............................netrw-t
      垂直分割ウィンドウを使ったブラウジング..............netrw-v
      一覧表示スタイル変更 (thin wide long tree)..........netrw-i
      ブックマークしたディレクトリに移動..................netrw-gb
      ドットファイルのクイック表示/非表示.................netrw-gh
      ローカルのみのファイル権限の変更....................netrw-gp
      前方のディレクトリに移動............................netrw-u
      後方のディレクトリに移動............................netrw-U
      特殊ハンドラでブラウジングをカスタマイズ............netrw-x
      ブックマークの削除..................................netrw-mB
      ファイル/ディレクトリの削除.........................netrw-D
      ディレクトリ探査コマンド............................netrw-explore
      スターとパターンを使った探索........................netrw-star
      ファイルの情報を表示する............................netrw-qf
      隠しリストを編集する................................netrw-ctrl-h
      ソートシーケンスを編集する..........................netrw-S
      取扱いをファイルまたはディレクトリに強制する........netrw-gd netrw-gf
      親ディレクトリに移動する............................netrw--
      ファイル/ディレクトリを隠す.........................netrw-a
      ブラウジングを改善する..............................netrw-ssh-hack
      ブックマークと履歴を一覧表示する....................netrw-qb
      新しいディレクトリを作成する........................netrw-d
      ブラウジングディレクトリをカレントディレクトリにする netrw-cd
      ファイルをマークする................................netrw-mf
      ファイルのマークを外す..............................netrw-mF
      locationリストを使ってファイルをマークする..........netrw-qL
      QuickFix リストを使ってファイルをマークする.........netrw-qF
      正規表現を使ってファイルをマークする................netrw-mr
      マークファイル: シェルコマンド......................netrw-mx
      マークファイル: 一括シェルコマンド..................netrw-mX
      マークファイル: Vimコマンド.........................netrw-mv
      マークファイル: 引数リスト..........................netrw-ma netrw-mA
      マークファイル: バッファリスト......................netrw-cb netrw-cB
      マークファイル: 圧縮と伸長..........................netrw-mz
      マークファイル: コピー..............................netrw-mc
      マークファイル: Diff................................netrw-md
      マークファイル: 編集................................netrw-me
      マークファイル: Grep................................netrw-mg
      マークファイル: 拡張子による表示/非表示.............netrw-mh
      マークファイル: 移動................................netrw-mm
      マークファイル: 印刷................................netrw-mp
      マークファイル: スクリプト読み込み..................netrw-ms
      マークファイル: ターゲットディレクトリを設定する....netrw-mt
      マークファイル: タグ生成............................netrw-mT
      マークファイル: ブックマークを使ったターゲットディレクトリ netrw-Tb
      マークファイル: 履歴を使ったターゲットディレクトリ..netrw-Th
      マークファイル: マーク解除..........................netrw-mu
      Netrw ブラウザー変数................................netrw-browser-var
      Netrw ブラウザーとオプション設定の互換性............netrw-incompatible
      Netrw 設定ウィンドウ................................netrw-settings-window
      ファイルを取得する..................................netrw-O
      プレビューウィンドウ................................netrw-p
      以前のウィンドウ....................................netrw-P
      一覧を更新する......................................netrw-ctrl-l
      ソートの順番を逆にする..............................netrw-r
      ファイル/ディレクトリの名前を変更する...............netrw-R
      ソートの種類を変更する..............................netrw-s
      ファイルを開くウィンドウを指定する..................netrw-C
10. 問題と対策............................................netrw-problems
11. Netrw をデバッグする..................................netrw-debug
12. 変更履歴..............................................netrw-history
13. Todo..................................................netrw-todo
14. クレジット............................................netrw-credits

==============================================================================
2. Netrw の準備                                         netrw-start {{{1

Netrw を使うとファイルの読み込み、書き込み、ネットワークを通したブラウジング、
ローカルファイルのブラウジングが簡単になります。最初に、プラグインが有効になっ
ているかどうかを確認してください。最低限、次のような設定が<.vimrc>に必要です:
(なっていない場合は netrw-activate を参照してください)

        set nocp                    " 'compatible' をオフにする
        filetype plugin on          " プラグインを有効にする

('cp':filetype-plugin-onも参照してください)

Netrw は url を使うことで他のマシンのファイルを透過的に扱うことができます
(netrw-transparent参照)。例えば、別のマシンにアカウントを持っていて、scp が
使えるなら、次のようにしてアクセスできます:

        vim scp://hostname/path/to/file

ssh/scp による接続を簡単にしたい場合は netrw-ssh-hack を確認してください。

ssh/scp ではなく ftp の場合はどうでしょうか? もちろん簡単にできます:

        vim ftp://hostname/path/to/file

ftp によるアクセスを簡単にしたい場合は <.netrc> ファイルを使ってください (あな
たの ftp がそれをサポートしているなら)。通常、それはユーザーのホームディレクト
リにあって、ユーザーだけが読み書きできるようなパーミッションになっています。中
身は次のようなテキストです:

        machine HOSTNAME login USERID password "PASSWORD"
        machine HOSTNAME login USERID password "PASSWORD"
        ...
        default          login USERID password "PASSWORD"

Windows の ftp は .netrc をサポートしていません。しかし、.vimrc に次のように書
いておくことができます:

   let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\MyUserName\MACHINE'

netrw は、開こうとしている URL からホストのマシン名を取得し、MACHINE に置き換
えます。これにより、c:\Users\MyUserName\MachineName にあるそれぞれのサイトごと
の個別のファイルで以下の項目を指定できます:
        userid
        password

どのようなファイルがあるかを確認してからファイルを開きたい場合はブラウザーを使
います。ローカルホストのファイルを見たい場合は単にディレクトリを開きます:

        vim .
        vim /home/userid/path

リモートホストのファイルを見たい場合も単にディレクトリを開きます (ただしディレ
クトリ名の末尾に "/" を付けてください):

        vim scp://hostname/
        vim ftp://hostname/path/to/dir/

詳細は netrw-browse を参照。

scp や ftp 以外のプロトコルもサポートされています。次の項 netrw-externapp で
は、それらの外部アプリケーションの使用方法を説明しています。

プラグインの無効化                                     netrw-noload

プラグインを有効にしているときに netrw だけを無効にしたい場合は、netrw のプラ
グインファイルとオートロードファイルの両方が読み込まれないようにする必要があり
ます。<.vimrc> に次の設定を書いてください:

        :let g:loaded_netrw       = 1
        :let g:loaded_netrwPlugin = 1


==============================================================================
3. Netrw リファレンス                                   netrw-ref {{{1

   Netrw は netrw-start で説明した scp や ftp 以外のプロトコルもサポートして
   います。サポートされているのは dav、fetch、http などです。netrw-externapp
   の一覧を見てください。各プロトコルには変数が関連付けられていて、変数にはそ
   のプロトコルをサポートしている外部プログラムが設定されます。

外部プログラムとプロトコル                             netrw-externapp {{{2

        プロトコル  変数               初期設定
        --------  ----------------     -------------
           dav:   g:netrw_dav_cmd      = "cadaver"    if cadaver があるなら
           dav:   g:netrw_dav_cmd      = "curl -o"    elseif curl があるなら
         fetch:   g:netrw_fetch_cmd    = "fetch -o"   if fetch があるなら
           ftp:   g:netrw_ftp_cmd      = "ftp"
          http:   g:netrw_http_cmd     = "elinks"     if   elinks  があるなら
          http:   g:netrw_http_cmd     = "links"      elseif links があるなら
          http:   g:netrw_http_cmd     = "curl"       elseif curl  があるなら
          http:   g:netrw_http_cmd     = "wget"       elseif wget  があるなら
          http:   g:netrw_http_cmd     = "fetch"      elseif fetch があるなら
          http:   g:netrw_http_put_cmd = "curl -T"
           rcp:   g:netrw_rcp_cmd      = "rcp"
         rsync:   g:netrw_rsync_cmd    = "rsync"     (g:netrw_rsync_sep を参照)
           scp:   g:netrw_scp_cmd      = "scp -q"
          sftp:   g:netrw_sftp_cmd     = "sftp"
          file:   g:netrw_file_cmd     = "elinks" or "links"

        g:netrw_http_xcmd : http://... プロトコルで使用するオプションはこの
        変数で指定できます。コマンドに合わせて設定を変更してください。初期設定
        は各コマンドに合わせて次のようになります:

                    elinks : "-source >"
                    links  : "-dump >"
                    curl   : "-L -o"
                    wget   : "-q -O"
                    fetch  : "-o"

        例えば、あなたのシステムに elinks がインストールされているとき、(html
        ソースではなく) レンダリングされたテキストを見たい場合は、.vimrc で次
        のように設定するといいでしょう
                let g:netrw_http_xcmd= "-dump >"

        g:netrw_http_put_cmd: このオプションは実行可能ファイルとそれに必要なオ
        プションを両方指定します。このコマンドは url に対して PUT 操作を実行し
        ます。


読み込み                                       netrw-read netrw-nread {{{2

        通常のコマンドで URl を使うことができます。例:

                :e ftp://[user@]machine/path

        Nread コマンドも用意されています:

        :Nread ?                                        ヘルプ表示
        :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

書き込み                               netrw-write netrw-nwrite {{{2

        ファイルを保存するときにも URL を使うことができます。例:

                :w ftp://[user@]machine/path

        Nwrite コマンドも用意されています:

        :Nwrite ?                                       ヘルプ表示
        :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: はサポートされてません!

スクリプト読み込み                             netrw-source {{{2

        スクリプトを読み込むときにも URL を使うことができます。例:

                :so ftp://[user@]machine/path

        Nsource コマンドも用意されています:

        :Nsource ?                                      ヘルプ表示
        :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

                                netrw-trailingslash netrw-dirlist
ディレクトリのファイル一覧表示 {{{2

        ディレクトリを開くことでファイル一覧をブラウズできます:

                :e scp://[user]@hostname/path/
                :e ftp://[user]@hostname/path/

        リモートのディレクトリを開くときは末尾の "/" が必ず必要です (netrw は
        末尾のスラッシュよってファイルのダウンロードかディレクトリのブラウズか
        を判断します)。

        Nread コマンドを使うこともできます (繰り替えしますが、末尾にはスラッ
        シュが必要です):

                :Nread [protocol]://[user]@hostname/path/

                                        netrw-login netrw-password
USERID と PASSWORD の変更              netrw-chgup netrw-userpass {{{2

        ftp を使うと user-id と password を入力するプロンプトが表示されます。
        それらはグローバル変数の g:netrw_uid と s:netrw_passwd に記録され
        ます。記録された ID とパスワードは次に ftp を使うときに再使用されま
        す。他の id/password を使う必要が出てきた場合は NetUserPass() 関数を
        呼び出してください。パスワードの入力を省略したい場合は ftp が <.netrc>
        ファイルをサポートしているかどうか確認してください。netrw-passwd も
        参照 (ssh/scp でパスワードを省略したい場合は netrw-ssh-hack を参
        照)。

        :NetUserPass [uid [password]]           -- password入力(必要ならuidも)
        :call NetUserPass()                     -- uid と password 入力
        :call NetUserPass("uid")                -- password 入力
        :call NetUserPass("uid","password")     -- uid と password 設定

(関連項目: ftp netrw-userpass netrw-start)

NETRW の変数と設定                                     netrw-variables {{{2
    (以下も参照:
    netrw-browser-var     : netrw ブラウザーのオプション変数
    netrw-protocol        : ファイル転送プロトコルのオプション変数
    netrw-settings        : 追加のファイル転送オプション
    netrw-browser-options : これらのオプションはディレクトリブラウジングに影
                            響する
    )

Netrw にはたくさんの変数が用意されていて、好きなようにカスタマイズできます。
:NetrwSettings コマンド (netrw-settings参照) を使うと、現在の netrw の設定が
表示されます。ほとんどの設定は下記、または netrw-browser-options、そして
netrw-externapp で説明されています。

 b:netrw_lastfile     最後に読み書きされたネットワークファイルがバッファごと
                        に記録される。  (:Nw で使われる)

 g:netrw_bufsettings  netrw バッファのオプション設定
                        (初期設定) noma nomod nonu nowrap ro nobl

 g:netrw_chgwin       ファイルを開くときに使用するウィンドウの番号を指定す
                        る。 (netrw-C も参照)
                        (初期設定) -1

 g:Netrw_funcref      ファイルを開くときに呼ばれる関数 (複数可) を指定する。
                        まずファイルが開かれ、それから指定された関数参照
                        (Funcref) が呼ばれる。複数指定する場合は関数参照のリ
                        スト (List) を指定する。(初期設定) 定義なし。
                        (g:Netrw... で大文字が使われていますが、これは関数参照
                        を保存するために必要です)

                            例: .vimrc で次のように設定します。すべてのファイ
                                ルを開く操作に作用します。
                            fun! MyFuncRef()
                            endfun
                            let g:Netrw_funcref= function("MyFuncRef")


 g:Netrw_UserMaps     ユーザー定義のマッピングや設定を行う関数か関数のリスト
                        (List)を指定します。
                        netrw-usermaps 参照。

 g:netrw_ftp             変数が存在しない場合はデフォルト ftp 使用
                        =0 デフォルト ftp を使う               (uid password)
                        =1 ftp の別方式を使う             (user uid password)
                           ftp の使用に問題があるときにこの変数を設定して ftp
                           の別方式を試してください。

 g:netrw_ftp_options   初期設定では、対話プロンプトを無効化して、ftp が 初回
                         の接続時に自動的にログインを試みるのを抑制するように設
                         定されている。
                         しかし、すべての ftp の実装がこれをサポートしているわ
                         けではない。(例: ncftp)
                      ="-i -n"

 g:netrw_ftpextracmd  初期設定: なし
                        この変数に設定された文字列は ftp コマンドとして送信さ
                        れます。例:
                           ="passive"

 g:netrw_ftpmode      ="binary"                                  (初期設定)
                        ="ascii"

 g:netrw_ignorenetrc  =0 (linux と cygwin での初期設定)
                        =1 <.netrc> ファイルが機能しないのでそれを無視したい場
                           合にこの値を設定します (Windoes + cmd.exe での初期
                           設定)。

 g:netrw_menu         =0 netrw のメニューを使う
                        =1 (初期設定) netrw のメニューを使わない

 g:netrw_nogx         この変数が存在する場合、"gx" マップは定義されません。
                        (netrw-gx参照)

 g:netrw_uid          (ftp) user-id       Vim セッションごとに記録される
 s:netrw_passwd       (ftp) password      Vim セッションごとに記録される

 g:netrw_preview      =0 (初期設定) プレビューウィンドウを水平分割で表示する
                        =1 プレビューウィンドウを垂直分割で表示する。
                           "直前のウィンドウ" (netrw-P参照) にも作用します。
                        g:netrw_alto 変数を使えば、もっと詳細に分割を制御でき
                        ます。
                                g:netrw_preview g:netrw_alto 結果
                                         0             0     :aboveleft
                                         0             1     :belowright
                                         1             0     :topleft
                                         1             1     :botright
                        サイズを制御するにはg:netrw_winsizeを参照。

 g:netrw_scpport      = "-P" : scp のポート番号を設定するためのオプション
 g:netrw_sshport      = "-p" : ssh のポート番号を設定するためのオプション

 g:netrw_sepchr       =\0xff
                        =\0x01 for enc == euc-jp (この値を使った方がいい文字
                           コードが他にもあるなら、知らせてください)
                           内部処理で優先番号とファイル名を区切るのに使われる。
                           netrw-p12 参照。

  g:netrw_silent      =0 : 普通に転送処理をする
                        =1 : 静か (silent) に転送処理をする

 g:netrw_use_errorwindow =2: netrw のメッセージ表示にポップアップウィンドウ
                             を使う。
                             マウスを移動して止めるとポップアップウィンドウを
                             削除する。
                             (ポップアップウィンドウがある場合の初期値)
                         =1 : netrw のメッセージ表示に別ウィンドウを使う。
                              メッセージが確実に表示されます。
                             (ポップアップウィンドウがない場合の初期値)
                         =0 : netrw のメッセージ表示に echoerr を使う。表示さ
                              れたメッセージを確認できないことがあるかもしれま
                              せんが、ウィンドウを閉じる必要がありません。

 g:netrw_cygwin       =1 windows で cygwin 付属の scp を想定する。また、ネッ
                           トワークブラウジングで ls を使った時間とサイズによ
                           るソートを可能にする (windowsでの初期設定)。
                        =0 Windows の scp が Windows 形式のパスを扱えると想定
                           する。ネットワークブラウジングでは ls ではなく dir
                           を使用する。このオプションは unix では無視されます。

 g:netrw_use_nt_rcp   =0 WinNT、Win2000、WinXP の rcp を使わない
                        =1 WinNT の rcp をバイナリモードで使う   (初期設定)

パス                                                   netrw-path {{{2

ほとんどのプロトコルではパスはユーザーディレクトリからの相対パスです。
(所定のディレクトリからの相対パスとして扱うプロトコルもあります)

        example:  vim scp://user@host/somefile
        example:  vim scp://user@host/subdir1/subdir2/somefile

"somefile" は "user" のホームディレクトリの中です。ルートからのパスを指定した
い場合は絶対パスを指定してください:

        example:  vim scp://user@host//somefile
        example:  vim scp://user@host//subdir1/subdir2/somefile


==============================================================================
4. ネットワークファイル転送                             netrw-xfer {{{1

Vim におけるネットワークファイルの転送機能は Vim script で実装されたプラグイン
で提供されています (<netrw.vim>)。これは rcp、ftp or ftp+<.netrc>、scp、fetch、
dav/cadaver、rsync、sftp などを使ってネットワークファイルの読み書きを実現して
います。

http については wget or fetch による読み込みだけがサポートされています。

<netrw.vim> は標準プラグインです。Vim と様々なファイル転送プログラムをつなぐ役
割をします。自動コマンドイベント (BufReadCmd、FileReadCmd、BufWriteCmd) を使っ
て、url 指定によるファイルの読み書き処理を横取りします。

        例: vim ftp://hostname/path/to/file

コロンより前の文字列がプロトコルを示します (この例では ftp)。<netrw.vim> スク
リプトは、実際にファイルを転送する外部プログラム (ftp、scp、など) のコマンドを
作成します。ファイルは一時ファイル (Unix/Linux では /tmp/...) を経由して読み書
きされます。一時ファイルは <netrw.vim> によって後始末されます。

"FTP User Name and Password Disclosure" における Jan Minář 氏の説明によると、
ftp はセキュアなプロトコルではなく、ユーザー名とパスワードはインターネットの中
を "そのまま" 流れ、そしてそれは盗聴ツールで盗むことが可能である。これは netrw
の問題ではなく ftp の問題です。この問題が心配なら ftp ではなく scp や sftp を
使うようにしてください。

Netrw は同じ Vim セッション中で同じホスト名が使われている間はユーザーIDとパス
ワードを使いまわします。

Jan は netrw における ftp の処理を多少誤解しているようです。通常、1 つの "ftp
セッション" では複数のコマンドが実行されます。彼は uid/password は 1 つの ftp
セッションの間だけ保持されるべきだと考えているようです。しかし、netrw は ftp
操作をするために複数の "ftp セッション" を使います。そのため、uid/password を
1 つの "ftp セッション" の間だけ保持しておくというのは、uid/password を保持し
ないのと変わりません。そうなれば、例えばリモートディレクトリをブラウズするよう
な操作はすぐに嫌気が差してしまうでしょう。

他方、Jan M 氏には感謝を捧げたいと思います。"細工された(crafted)" ファイル名の
処理における netrw (と vim 自身) の多くの脆弱性を指摘してくれました。その問題
に対処するために shellescape() 関数と fnameescape() 関数が Bram Moolenaar
氏によって書かれ、netrw をそれらを使うように変更されました。ただ 1 つアドバイ
スをするとすれば、ファイル名が vim コマンドのように見えて怪しいと感じたら、そ
れを開いてはいけません。

                                netrw-putty netrw-pscp netrw-psftp
プロトコルを扱う外部プログラムは変数を設定することで変更できます (例えば、scp
なら g:netrw_scp_cmd を設定します。初期設定は "scp -q" です)。例えば、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"'

(note: windows 7 では putty v0.6 の "-batch" オプションが機能しないという報告
があったので、そのようなシステムではオプションを使わないようにするといいでしょ
う。)

putty、pscp、psftp 等に関する説明は netrw-p8 参照。

Ftp (古いプロトコル) は多くの実装に恵まれました。しかし残念ながら、いまいちな
実装もあります (例えばファイル末尾にノイズが付くなど)。そのような実装を使う場
合は NetReadFixup() 関数を定義することで、ftp 読み込み後にノイズを除去すること
ができます。いくつかの Unix システム (FreeBSDなど) では "fetch" というユーティ
リティが提供されていて、それはノイズがないので <netrw.vim> で使うには適してい
ます。したがって、もし "fetch" が利用可能 (つまり実行可能) なら、ftp://... の
転送には "fetch" を使うのが望ましいでしょう。

rcp、scp、sftp、http ではネットワークファイルを透過的に扱えます。例:

        vim rcp://[user@]machine/path
        vim scp://[user@]machine/path

ftp が <.netrc> をサポートしていて、マシン名、ユーザー名、パスワードが設定され
ているなら、ftp でも透過的にファイルを扱えます。ただし、ftpが自動的に <.netrc>
ファイルを使うようになっている必要があります。

        vim ftp://[user@]machine[[:#]portnumber]/path

Windows には ftp (通常は c:\Windows\System32\ftp.exe) を用意されています。
Windows の ftp には -s:filename オプションがあって (filename はフルパス指定)、
そのファイルに書かれたコマンドを ftp 開始時に実行することができます。この機能
を使って 1 つのサイトに対してユーザー名とパスワードを指定することができます:
        userid
        password
                                netrw-windows-netrc  netrw-windows-s
もしも、g:netrw_ftp_cmd が -s:[path/]MACHINE を含んでいたら、netrw は
MACHINE を ftp 接続がリクエストされたカレントマシン名に置き換えます。そのた
め、マシンごとに ftp 用のユーザー名とパスワードを分けることができます。例:

    let g:netrw_ftp_cmd= 'c:\Windows\System32\ftp -s:C:\Users\Myself\MACHINE'
    vim ftp://myhost.somewhere.net/

これは次のファイルが使われます

        C:\Users\Myself\myhost.ftp

ftp を使うときは userid と password を聞かれることがあります。パスワードの入力
は無表示で行われます (画面には入力した文字の代わりにアスタリスクが表示され
る)。userid と password は記録され、次に同じマシンにアクセスするときにはプロン
プトは表示されません。

                                                                netrw-urls
  +=================================+============================+============+
  |  Reading                        | Writing                    |  Uses      |
  +=================================+============================+============+
  | DAV:                            |                            |            |
  |  dav://host/path                |                            | cadaver    |
  |  :Nread dav://host/path         | :Nwrite dav://host/path    | cadaver    |
  +---------------------------------+----------------------------+------------+
  | DAV + SSL:                      |                            |            |
  |  davs://host/path               |                            | cadaver    |
  |  :Nread davs://host/path        | :Nwrite davs://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) 絶対パスの指定には scp://machine//path を使う。

        (*2) <.netrc> がある場合は、使用する ftp クライアントがそれをサポート
        していると判断される。ない場合は user-id と password が聞かれる。

        (*3) ftp では、"machine" は machine#port や machine:port でも可。
        標準外のポート番号が必要な場合に使う。

        (*4) http では、wget が利用可能ならそれが使われる。あるいは fetch が利
        用可能ならそれが使われる。

:Nread コマンドと :Nwrite コマンドには複数のファイル名を指定できます。


NETRC                                                   netrw-netrc

<.netrc> ファイル (普通はホームディレクトリある) には、ホスト (マシン) と
userid/password を関連付ける設定を書くことができます。

<.netrc> ファイルの一般的な書式は次のとおりです。Unix の ftp は通常は <.netrc>
をサポートしています。Windows の ftp は通常は <.netrc> をサポートしてません。

        machine {full machine name} login {user-id} password "{password}"
        default login {user-id} password "{password}"

ftp が自動的に <.netrc> ファイルを使うようになっている必要があります。<.netrc>
ファイルが存在する場合は、ftp 転送において user-id と passwordは聞かれません。

        Note:
        このファイルにはパスワードが含まれているので、他の誰もファイルを読めな
        いようにしてください。ほとんどのプログラムは他人が読むことができる
        .netrc ファイルの使用を拒否します。システム管理者は常にそのファイルを
        読めるということを忘れずに。例えば、Linux/Unix では次のように設定しま
        す: chmod 600 .netrc

Windows の ftp クライアントは .netrc をサポートしていませんが、netrw には回避
策があります。netrw-windows-s を参照してください。


パスワード                                             netrw-passwd

ftp でパスワードが必要なときは Vim の組み込み関数 inputsecret() による非表示
入力が使われます。パスワードを設定した後でそれを変更したい場合は
netrw-userpass を参照してください。

残念ながら、scp にパスワードを渡す方法はありません。scp を使うときはファイルの
転送の度にパスワードを入力する必要があります。この問題については
netrw-ssh-hack が役に立つかもしれません。


==============================================================================
5. netrw の有効化                                       netrw-activate {{{1

ネットワークファイル転送は 'nocompatible' が設定されていればデフォルトで利用
可能です。netrw のスクリプトファイルはシステムのランタイムディレクトリにありま
す。Vim の起動時には plugin/netrwPlugin.vim だけが読み込まれます。メインスクリ
プトの autoload/netrw.vim は、実際に netrw が使用されたときに読み込まれます。
次の (最低限の) 設定を <.vimrc> ファイルに書いておくことをお勧めします:

        set nocp
        if version >= 600
          filetype plugin indent on
        endif

さらに次の設定を <.vimrc> ファイルに書くことで、[g]vim をファイル名なしで起動
したとき netrw は即座に有効化され、カレントディレクトリを表示します:

        " Augroup VimStartup:
        augroup VimStartup
          au!
          au VimEnter * if expand("%") == "" | e . | endif
        augroup END


==============================================================================
6. 透過的なリモートファイル編集                 netrw-transparent {{{1

ネットワークファイルの転送は、ファイルを読み書きするときに :autocmd の
BufReadCmdBufWriteCmdSourceCmd イベントによって透過的に処理されま
す。それによって、ローカルファイルと同じくらい簡単にネットワークファイルの読み
込み、書き込み、スクリプト読み込みをすることができます。

        vim ftp://[user@]machine/path
        ...
        :wq

netrw のようなプラグインの使用方法は netrw-activate を参照してください。

SCP をパスワードフリーで使うには: netrw-ssh-hack を参照。

==============================================================================
7. Ex コマンド                                          netrw-ex {{{1

一般的な読み込み/書き込みコマンドがサポートされています。それ以外のコマンドも
いくつかあります。netrw-transparent で説明したように、通常はこれらのコマンド
を使う必要はありません。次のように使ってください (netrw-urls参照):
  :e URL
  :r URL
  :w URL
以下の説明では、{netfile} はリモートファイルの URL を示します。

                                                :Nwrite  :Nw
:[range]Nw[rite]
                指定した範囲の行を b:netrw_lastfile が示すファイルに保存する。
                (関連: netrw-nwrite)

:[range]Nw[rite] {netfile} [{netfile}]...
                指定した範囲の行を {netfile} に保存する。

                                                :Nread   :Nr
:Nr[ead]        b:netrw_lastfile が示すファイルをカレントバッファに読み込む。
                (関連: netrw-nread)

:Nr[ead] {netfile} {netfile}...
                {netfile} を現在行の下に読み込む。

                                                :Nsource :Ns
:Ns[ource] {netfile}
                {netfile} をスクリプトとして読み込む。
                リモートの .vimrc を使って vim を起動するには、次のようにしま
                す (実際にはすべて一行です) (tnx to Antoine Mechelynck)
                vim -u NORC -N
                 --cmd "runtime plugin/netrwPlugin.vim"
                 --cmd "source scp://HOSTNAME/.vimrc"
                 (関連: netrw-source)

:call NetUserPass()                             NetUserPass()
                g:netrw_uid と s:netrw_passwd が存在しない場合は、入力プロンプ
                トが表示されます。
                (関連: netrw-userpass)

:call NetUserPass("userid")
                g:netrw_uid を設定します。password がない場合は、入力プロンプ
                トが表示されます。
                (関連: netrw-userpass)

:call NetUserPass("userid","passwd")
                g:netrw_uid と s:netrw_passwd を設定します。user-idとpassword
                は ftp 転送で使われます。user-id と password に空文字列 ("")
                を指定すると、値を削除できます。
                (関連: netrw-userpass)

:NetrwSettings  このコマンドは netrw-settings で説明します。netrw の設定を表
                示し、netrw の動作を変更するために使用されます。


==============================================================================
8. 変数とオプション                     netrw-var netrw-settings {{{1

(参照: netrw-options netrw-variables netrw-protocol
       netrw-browser-settings netrw-browser-options
       netrw-browser-var )

<netrw.vim> スクリプトでは、ファイル転送の動作を変更するためのオプションとし
て、いくつかの変数が定義されています。通常、それらの変数を <.vimrc> ファイルの
中で設定して使います。(netrw-settings netrw-protocol も参照)
                                                netrw-options

                        ----------------
                        Netrw オプション
                        ----------------
        オプション              説明
        --------------          -----------------------------------------------

        b:netrw_col             カーソル位置を保持する (NetWrite使用時)
        g:netrw_cygwin          =1 windows の scp が cygwin のものと想定する
                                                          (windowsの初期設定)
                                =0 windows の scp が windows スタイルのパスを
                                   扱えると想定する       (その他の初期設定)
        g:netrw_ftp             =0 デフォルト ftp を使う  (uid password)
                                =1 ftp の別方式を使う     (user uid password)
        g:netrw_ftpmode         ="binary"                 (初期設定)
                                ="ascii"
        g:netrw_ignorenetrc     =1                        (初期設定)
                                   <.netrc> を持っていて、しかしそれを使いたく
                                   ない場合にこの変数を設定する。この変数は値
                                   に関係なく存在するだけで作用する。
        b:netrw_lastfile        最近使用された method/machine/path を保持する
        b:netrw_line            現在の行番号を保持する    (NetWrite使用時)
        g:netrw_silent          =0 普通にファイル転送する
                                =1 静か (silent) にファイル転送する
        g:netrw_uid             ftp の現在の user-id を保持する
        g:netrw_use_nt_rcp      =0 WinNT/2K/XP の rcp を使わない (初期設定)
                                =1 WinNT/2K/XP の rcp を binary mode で使う
        -----------------------------------------------------------------------
<
                                                netrw-internal-variables
netrw は次の変数を一時的に使用します。

                                   --------
                                   一時変数
                                   --------
        変数                    説明
        --------                ------------------------------------

        b:netrw_method          rcp/ftp+.netrc/ftp を示すインデックス
        w:netrw_method          (b:netrw_method と同じ)
        g:netrw_machine         入力から得られたマシン名を保持
        b:netrw_fname           アクセスするファイル名を保持
        ------------------------------------------------------------

                                                        netrw-protocol

netrw は複数のプロトコルをサポートしています。それぞれのプロトコルは以下の変数
を使って呼び出されます。変数はユーザーが変更することができます。

                           ------------------------
                           プロトコル制御オプション
                           ------------------------
    オプション        タイプ      設定            説明
    ----------        --------    --------------  ---------------------------

     netrw_ftp         変数        =変数なし       useridを"user userid"で設定
                                  =0              useridを"user userid"で設定
                                  =1              useridを"userid"で設定
    NetReadFixup      関数        =変数なし       変更しない
                                  =変数あり       ftp で取得したファイルを
                                                  NetReadFixup() で自動的に
                                                  フィルタする。
    g:netrw_dav_cmd    変数       ="cadaver"      if cadaver  があるなら
    g:netrw_dav_cmd    変数       ="curl -o"      elseif curl があるなら
    g:netrw_fetch_cmd  変数       ="fetch -o"     if fetch があるなら
    g:netrw_ftp_cmd    変数       ="ftp"
    g:netrw_http_cmd   変数       ="fetch -o"     if      fetch があるなら
    g:netrw_http_cmd   変数       ="wget -O"      else if wget  があるなら
    g:netrw_http_put_cmd 変数     ="curl -T"
    g:netrw_list_cmd   変数       ="ssh USEPORT HOSTNAME ls -Fa"
    g:netrw_rcp_cmd    変数       ="rcp"
    g:netrw_rsync_cmd  変数       ="rsync"
    g:netrw_rsync_sep  変数       ="/"            ファイルスペックからホスト
                                                  名を分けるのに使われる
    g:netrw_scp_cmd    変数       ="scp -q"
    g:netrw_sftp_cmd   変数       ="sftp"
    -------------------------------------------------------------------------

                                                                netrw-ftp

g:netrw_ftp_cmd と g:netrw_sftp_cmd は ftp プロトコルを処理するための外部
プログラムを指定するオプションです。コマンドラインオプションを含めることもでき
ます (passive mode の -p など)。例:

        let g:netrw_ftp_cmd= "ftp -p"

ブラウジングは g:netrw_list_cmd を使ってサポートされます。"HOSTNAME" と書か
れた部分は実際のホスト名に置換されます。

g:netrw_ftp と netrw-fixup の二つのオプションは、問題のある ftp クライアン
トを補助します。これらのオプションの使用方法を理解してもらうため、netrw が ftp
からファイルを読み込むときの仕組みを少し解説します。

ftp を使うとき、netrw は次のどちらかのテキストを生成して一時ファイルに書き込み
ます。

  g:netrw_ftpが未定義、または1以外       g:netrw_ftpに1が設定されている
  --------------------------------       ------------------------------

       open machine [port]                    open machine [port]
       user userid password                   userid password
       [g:netrw_ftpmode]                      password
       [g:netrw_ftpextracmd]                  [g:netrw_ftpmode]
       get filename tempfile                  [g:netrw_extracmd]
                                              get filename tempfile
  ---------------------------------------------------------------------

g:netrw_ftpmode と g:netrw_ftpextracmd は任意です。

netrw は生成したテキストを次のようなコマンドでフィルタします:

        :%! {g:netrw_ftp_cmd} -i [-n]

        g:netrw_ftp_cmd は通常は "ftp" です
        -i    ftp を対話的に使わない
        -n    netrc を使わない。Method #3 を使う (<.netrc>無しでftp使用)
{訳注: Method #3 は netrw-fixup の a:method == 3}

<.netrc> が存在するとき、userid と password の入力を省略するためにそれが使われ
ます。転送されたファイルは一時ファイルに保存されます。一時ファイルはメインの
ウィンドウに読み込まれ、そして削除されます。

使用する ftp が "user" コマンドを受け付けず、直接に userid を入力する必要があ
る場合は、"let netrw_ftp=1" という設定を <.vimrc> に書いてください。

                                                                netrw-cadaver
未承認サーバーのための SSL 証明書ダイアログを何とかするには、その証明書を取っ
てきて /usr/ssl/cert.pem に置いてください。この操作によってサーバーが信用済み
扱いになります。

                                                netrw-fixup netreadfixup
使用している ftp が何らかの理由で余計な出力を出す場合 (例えば認証メッセージな
ど)、NetReadFixup() 関数を書いてください:

    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

NetReadFixup() 関数は定義するだけで呼び出されるようになります。これにより読み
込みの処理をカスタマイズできます。

(関連項目: ftp netrw-userpass netrw-start)

==============================================================================
9. ブラウジング         netrw-browsing netrw-browse netrw-help {{{1
                        netrw-browser  netrw-dir    netrw-list

ブラウジングの紹介                             netrw-intro-browse {{{2
        (クイックリファレンス: netrw-quickmaps netrw-quickcoms)

Netrw はローカルシステムとリモートホストのディレクトリのブラウジングをサポート
しています。ブラウジングの機能は、ファイルとディレクトリの一覧表示、ディレクト
リへの移動、ファイルを開く、ファイルとディレクトリの削除、ディレクトリの作成、
ファイルとディレクトリの移動 (名前の変更)、ファイルとディレクトリのコピー、な
どです。ファイルを選択し、任意のシステムコマンドを実行できます。Netrw ブラウ
ザーには以前のエクスプローラープラグインのマップとコマンドが実装されていて、そ
れはリモートディレクトリに対しても実行できます。ただし、細かい違いはあります
(グローバル変数の名前など)。ディレクトリをブラウズするには単にそれを開きます。

        vim /your/directory/
        vim .
        vim c:\your\directory\

(関連情報: netrw-cr  netrw-o  netrw-p netrw-P netrw-t
           netrw-mf  netrw-mx netrw-D netrw-R netrw-v )

Netrw リモートファイル/ディレクトリブラウザーは ssh と ftp の二つのプロトコル
をサポートしています。例えば url のプロトコルが ftp なら、netrw は ftp を使っ
てリモートブラウジングを実行します。ftp と ssh 以外のプロトコルを指定した場合
は、それはファイル転送になります。

Netrw リモートディレクトリブラウザーを使うには、ファイルを開くときに名前の末尾
にスラッシュを付けます。ディレクトリの表示要求として解釈されます:

        vim [protocol]://[user@]hostname/path/

 [protocol] は scp か ftp です。例:

        vim ftp://ftp.home.vim.org/pub/vim/

ローカルディレクトリの場合は末尾のスラッシュは必要ではありません。付け忘れがよ
くあるのでもう一度言いますが、リモートディレクトリをブラウズするときは URL の
末尾にスラッシュを付ける必要があります。

ssh か scp でリモートディレクトリを表示するたびにパスワードを入力したくない場
合は netrw-ssh-hack を参照してください。ftp でパスワードの入力を省略したい場
合は netrw-netrc を参照してください (ftp がそれをサポートしているなら)。

次の操作でファイル一覧の表示方法を変更できます:

        * "i" キーで表示スタイルを変更できます (netrw-i)。
          四つのスタイルがあります: thin、long、wide、tree。
          この変更を常に設定したい場合は g:netrw_liststyle を参照。

        * ファイルを隠す (xyz~ みたいなファイルを表示したくないですよね?) に
          は netrw-ctrl-h を参照してください。

        * s を押すと name、time、size の順で並べ替えできます。

netrw で実行できる操作の一覧は netrw-browse-cmds を参照してください。

                        netrw-getftype netrw-filigree netrw-ftype
ローカルファイルを一覧表示するときは、getftype() 関数を使って、ファイルタイ
プを示す装飾文字が付加されます:

        ディレクトリ : /
        実行可能ファイル : *
        fifo         : |
        リンク       : @
        ソケット     : =

装飾文字は g:netrw_sort_sequence にも影響します。


QUICK HELP                                              netrw-quickhelp {{{2
                     (ctrl-] を押すと項目を選択できます)
        ブラウジングの紹介..............................netrw-intro-browse
          クイックリファレンス: マップ..................netrw-quickmap
          クイックリファレンス: コマンド................netrw-browse-cmds
        ファイルを隠す
          隠すファイルを設定する........................netrw-ctrl-h
          ファイル/ディレクトリを隠す...................netrw-a
          拡張子で表示/非表示...........................netrw-mh
          ドットファイルを隠す..........................netrw-gh
        表示スタイル
          表示スタイルの選択 (thin/long/wide/tree)......netrw-i
          スタイル設定変数..............................g:netrw_liststyle
          ファイル一覧取得に使われるシェルコマンド......g:netrw_list_cmd
          ファイル情報表示..............................netrw-qf
        ソート方法
          ソートスタイルの選択 (name/time/size).........netrw-s
          ソートの優先順位を設定........................netrw-S
          ソートオプション..............................g:netrw_sort_options
          ソート優先順位設定変数........................g:netrw_sort_sequence
          逆順ソート....................................netrw-r


                                netrw-quickmap  netrw-quickmaps
クイックリファレンス: マップ                   netrw-browse-maps {{{2

          ------                ----------                              ------
          マップ                簡単な説明                              リンク
          ------                ----------                              ------
         <F1>   Netrw のヘルプを開く
         <cr>   ディレクトリに移動、またはファイルを開く             netrw-cr
         <del>  ファイル/ディレクトリを削除する                      netrw-del
         <c-h>  隠しファイルのパターンを編集する                  netrw-ctrl-h
         <c-l>  最新の情報に更新する                              netrw-ctrl-l
         <c-r>  gvim serverを使ってブラウズする                   netrw-ctrl-r
         <c-tab> netrw ウィンドウ/エクスプローラーウィンドウを     netrw-c-tab
                 拡大・縮小する
           -    1 つ上のディレクトリに移動する                       netrw--
           a    隠しファイルの表示を切り替える                       netrw-a
                通常表示
                隠す (g:netrw_list_hide にマッチしたファイルを表示しない)
                表示する (g:netrw_list_hide にマッチしたファイルのみ表示する)
           cd   表示中のディレクトリをカレントディレクトリにする     netrw-cd
           C    ファイルを開くウィンドウを指定する                   netrw-C
           d    ディレクトリを作成する                               netrw-d
           D    ファイル/ディレクトリ(複数可)を削除する              netrw-D
           gb   前のブックマークされたディレクトリに移動             netrw-gb
           gd   取扱いをディレクトリに強制する                       netrw-gd
           gf   取扱いをファイルに強制する                           netrw-gf
           gh   ドットファイルの表示/非表示を切り替える              netrw-gh
           gp   ローカルファイルの権限変更                           netrw-gp
           i    表示方法を切り替える (thin, long, wide, tree)        netrw-i
           I    バナーの表示を切り替える                             netrw-I
           mb   カレントディレクトリをブックマークする               netrw-mb
           mc   マークしたファイルをターゲットディレクトリにコピー   netrw-mc
           md   マークしたファイルの差分を表示する (3ファイルまで)   netrw-md
           me   マークしたファイルを引数リストに入れ編集する         netrw-me
           mf   ファイルをマークする                                 netrw-mf
           mF   ファイルのマークを外す                               netrw-mF
           mg   マークしたファイルに vimgrep を適用する              netrw-mg
           mh   マークしたファイルの拡張子を隠しリストに登録/解除    netrw-mh
           mm   マークしたファイルをターゲットディレクトリに移動     netrw-mm
           mp   マークしたファイルを印刷する                         netrw-mp
           mr   シェル形式正規表現 (regexp) でファイルをマークする netrw-mr
           mt   表示中のディレクトリをターゲットディレクトリにする   netrw-mt
           mT   マークしたファイルに対して ctags を実行              netrw-mT
           mu   すべてのマークを解除する                             netrw-mu
           mv   マークしたファイルに対して任意のVimコマンドを実行    netrw-mv
           mx   マークしたファイルに対して任意のシェルコマンドを実行 netrw-mx
           mX   マークしたファイルに対して任意のシェルコマンドを一括実行 netrw-mX
           mz   マークしたファイルを圧縮/伸長する                    netrw-mz
           o    カーソル位置のファイル/ディレクトリを                netrw-o
                新しいウィンドウで開く。水平分割。
           O    カーソル位置のファイルを取得する                     netrw-O
           p    ファイルをプレビューする                             netrw-p
           P    直前に使用していたウィンドウで開く                   netrw-P
           qb   ブックマークと履歴の一覧を表示する                   netrw-qb
           qf   ファイル情報を表示する                               netrw-qf
           qF   quickfix リストを使ってファイルをマークする          netrw-qF
           qL   location-list を使ってファイルをマークする           netrw-qF
           r    ソート順を逆にする                                   netrw-r
           R    ファイル/ディレクトリ(複数可)の名前を変える          netrw-R
           s    ソート方法を変える: name, time, file size            netrw-s
           S    名前ソート時の拡張子の優先順位を設定する             netrw-S
           t    カーソル位置のファイル/ディレクトリを新しいタブで開くnetrw-t
           u    最近訪れたディレクトリに移動する                     netrw-u
           U    次に訪れたディレクトリに移動する                     netrw-U
           v    カーソル位置のファイル/ディレクトリを                netrw-v
                新しいウィンドウで開く。垂直分割。
           x    関連付けられたプログラムでファイルを表示する         netrw-x
           X    カーソル位置のファイルを system() で実行する         netrw-X

           %    表示しているディレクトリで新しいファイルを開く       netrw-%

        netrw-mouse netrw-leftmouse netrw-middlemouse netrw-rightmouse
        <leftmouse>     (gvim only) ファイルを選択して <cr> を押したのと同じ。
                        (ファイルを開く、ディレクトリに移動)
        <middlemouse>   (gvim only) ファイルを選択して P を押したのと同じ。
                        netrw-P 参照
        <rightmouse>    (gvim only) 選択したファイル/ディレクトリを削除する。
        <2-leftmouse>   (gvim only) 使用できる条件:
                        * netrw からファイルを開いたとき (かつ)
                        * g:netrw_retmap == 1            (かつ)
                        * netrw がロードされた時点で <2-leftmouse> に対する
                          マップが定義されていない
                        netrw ブラウザーウィンドウに戻る。g:netrw_retmap参照。
        <s-leftmouse>   (gvim only) mf と同じ。ファイルをマークする。Shift を
                        押したままマウスの左ボタンでドラッグすると複数のファイ
                        ルを選択できる。(netrw-mf 参照)

        (ブラウジング中にマウスボタンを無効化するには: g:netrw_mousemaps)

                                netrw-quickcom netrw-quickcoms
                                netrw-explore-cmds netrw-browse-cmds
クイックリファレンス: コマンド {{{2
     :NetrwClean[!]............................................netrw-clean
     :NetrwSettings............................................netrw-settings
     :Ntree....................................................netrw-ntree
     :Explore[!]  [dir] カレントファイルのディレクトリを開く...netrw-explore
     :Hexplore[!] [dir] 水平分割 & Explore.....................netrw-explore
     :Lexplore[!] [dir] 左エクスプローラー切り替え.............netrw-explore
     :Nexplore[!] [dir] 垂直分割 & Explore.....................netrw-explore
     :Pexplore[!] [dir] 垂直分割 & Explore.....................netrw-explore
     :Rexplore          Explorer に戻る........................netrw-explore
     :Sexplore[!] [dir] ウィンドウ分割 & Explore...............netrw-explore
     :Texplore[!] [dir] タブ & Explore.........................netrw-explore
     :Vexplore[!] [dir] 垂直分割 & Explore.....................netrw-explore

バナーの表示を切り替える                               netrw-I

"I" を押すことによってバナーの表示を切り替えることができます。

参照: g:netrw_banner


                                netrw-mb netrw-bookmark netrw-bookmarks
ディレクトリをブックマークする {{{2

次のコマンドで現在見ているディレクトリをブックマークできます

        mb

                                                                .netrwbook
ブックマークは、Vim のセッションの間 .netrwbook というファイル内に List とし
て保持されます。これは通常ユーザーの 'runtimepath' の最初のディレクトリ内に
格納され、エントリはソートされた順序に維持されます。

もしマークされたファイル/ディレクトリが存在すれば、mb はそれらをブックマークに
追加します。

                                                                netrw-:NetrwMB
また、ファイルかディレクトリをブックマークするのに :NetrwMB も使用できます。

        :NetrwMB[!] [files/directories]

  bang が付かない場合: ファイル/ディレクトリを
                     Netrw のブックマークシステムに追加します。

   netrw バッファで引数なし:
     マークされたファイルが存在する: マークされたファイルをブックマークする
     存在しない                    : カーソル位置のファイル/
                                     ディレクトリをブックマークする
   netrw バッファの外で引数なし: 現在開いているファイルをブックマークする
   引数有り                    : それぞれの引数を glob() し、ブックマークする

 bang が付く場合: ファイル/ディレクトリをブックマークから削除する

:NetrwMB コマンドは netrw バッファの外でも使用可能です (一度でも netrw がその
セッション中で起動されていれば)。

".netrwbook" ファイルは netrw (とvim) が起動されていない間ブックマークを保持し
ます。デフォルトでは 'runtimepath'の最初のディレクトリに保存されます。

関連項目:
        netrw-gb ブックマークに戻る (移動する)
        netrw-mB ブックマークを削除する
        netrw-qb ブックマークを一覧表示する
        g:netrw_home .netrwbook が保存される場所を制御する


ブラウジング                                   netrw-enter   netrw-cr {{{2

ブラウジングは簡単です。ファイルまたはディレクトリの上にカーソルを移動して、
<cr> (リターンキー) を押すとファイルが開きます。ディレクトリを開くとそのファイ
ル一覧が表示されます。ファイルを開くときには一覧表示で使われたプロトコルが使用
されます。

  警告: 一覧表示には四つの方法があります (netrw-i参照)。long/wide 表示では二
  つ以上のスペースでファイル名/ディレクトリ名を区切るので、ファイル名に二つ以
  上のスペースが含まれている場合、あるいは名前の末尾にスペースが付いている場合
  は、表示方法を "thin" にしてからファイルを選択してください。

g:netrw_browse_split オプション (初期設定は0) を設定すると、ファイルを開くと
きの動作を、新しいウィンドウやタブを開くように変更できます。設定が 1 か 2 な
ら、ウィンドウはそれぞれ水平分割、垂直分割されます。設定が 3 なら、新しいタブ
でファイルが開きます。


gui (gvim) では <leftmouse> (左クリック) でファイルを選択できます。また、

 * g:netrw_retmap == 1            (初期設定は0)
 * netrw からファイルを開いたとき
 * netrw がロードされた時点で <2-leftmouse> に対するマップが定義されていない

以上の条件を満たすとき、左ダブルクリックで元の netrw ブラウザーウィンドウに戻
ることができます。

ブラウジング、特にリモートブラウジングを効率よくするため、ディレクトリのファイ
ル一覧バッファは再利用されます。この動作は g:netrw_fastbrowse 変数で制御でき
ます。低速ブラウジング (バッファ再利用なし)、中速ブラウジング (リモートディレ
クトリのみバッファ再利用)、高速ブラウジング (可能な限りバッファを再利用)、から
選択できます。バッファ再利用の代償として、何か変更があった (例えば新しいファイ
ルが作成された) 場合でも、表示されるファイル一覧は古いままです。最新の情報に更
新するには ctrl-L (netrw-ctrl-l参照) を押してください。

                                                                netrw-s-cr
現在のツリー表示ディレクトリを閉じる

gvim でツリー表示をしているとき (netrw-i 参照)、<s-cr> を使うと、カーソルが
置かれているディレクトリを閉じることができます。

あるいは、この効果をユーザーが選択したキーの組み合わせにリマップすることができま
す:

    nmap <buffer> <silent> <nowait> YOURKEYCOMBO  <Plug>NetrwTreeSqueeze

この行を $HOME/ftplugin/netrw/netrw.vim に置いてください。netrw バッファのみに
生成される必要があります。

関連トピック:
        netrw-ctrl-r  netrw-o       netrw-p
        netrw-P       netrw-t       netrw-v
関連設定:
   g:netrw_browse_split       g:netrw_fastbrowse
   g:netrw_ftp_list_cmd       g:netrw_ftp_sizelist_cmd
   g:netrw_ftp_timelist_cmd   g:netrw_ssh_browse_reject
   g:netrw_ssh_cmd            g:netrw_use_noswf


水平分割ウィンドウを使ったブラウジング netrw-o netrw-horiz {{{2

<cr> でファイル/ディレクトリを開くことができますが、代わりに "o" マップを使え
ばウィンドウを分割して開くことができます。ウィンドウは水平分割されます。(垂直
分割は netrw-v)

通常、o キーを押すと新しいウィンドウが上に分割されます。

関連設定: g:netrw_alto g:netrw_winsize

関連トピック:
        netrw-ctrl-r  netrw-o       netrw-p
        netrw-P       netrw-t       netrw-v
関連設定変数:
   g:netrw_alto    分割の方向 (上/下) を制御
   g:netrw_winsize 初期サイズを制御

タブを使ったブラウジング                               netrw-t {{{2

<cr> でファイル/ディレクトリを開くことができますが、代わりに "t" マップを使え
ばそれを新しいタブで開くことができます。

バックグラウンドタブで新しく開きたい場合は gT を使います。

関連トピック:
        netrw-ctrl-r  netrw-o       netrw-p
        netrw-P       netrw-t       netrw-v
関連設定変数:
   g:netrw_winsize 初期サイズを制御

垂直分割ウィンドウを使ったブラウジング         netrw-v {{{2

<cr> でファイル/ディレクトリを開くことができますが、代わりに "v" マップを使え
ばウィンドウを分割して開くことができます。ウィンドウは垂直分割されます。(水平
分割は netrw-o)

通常、v キーを押すと新しいウィンドウが左に分割されます。

1 つのディレクトリには 1 つのバッファが使われます。"v" で表示済みのサブディレ
クトリを開くとウィンドウは分割されますが、同じバッファが再び表示されます。

関連トピック:
        netrw-ctrl-r  netrw-o       netrw-p
        netrw-P       netrw-t       netrw-v
関連設定変数:
   g:netrw_altv    分割の方向 (右/左) を制御
   g:netrw_winsize 初期サイズを制御


gvim server を使ってブラウズする                       netrw-ctrl-r {{{2

本機能はファイルを編集するgvimとブラウジングするgvimを分けるものです。netrw ブ
ラウザーの (ディレクトリではなく) ファイルの上で <c-r> マッピングを使用すると
gvim serverが使われます (g:netrw_servername参照)。続けて <cr>
(netrw-cr参照) を押すとファイルを編集するのにそのサーバーが再利用されます。

関連項目:
        netrw-ctrl-r  netrw-o       netrw-p
        netrw-P       netrw-t       netrw-v
関連設定:
        g:netrw_servername   : サーバー名をセットする
        g:netrw_browse_split : <cr> がどのようにファイルを開くのか制御する


一覧表示スタイル変更 (THIN LONG WIDE TREE)                     netrw-i {{{2
                       (細   長   広   ツリー)

"i" マップを使うと表示方法が thin, long, wide, tree と、順番に切り替わります。

thin 形式ではファイル/ディレクトリの名前だけが表示されます。

long 形式は、リモートディレクトリの場合は ssh 経由で "ls" コマンドを実行した結
果に基づいて表示され、ローカルディレクトリの場合はファイル名、ファイルサイズ
(バイト単位)、最終変更日時が表示されます。long 形式では末尾にスペースが付いた
ファイル名を扱うことができません。そのようなファイルがあるときは thin 形式を
使ってください。

wide 形式では二つ以上のスペースを使ってファイル名を区切って表示します。この表
示形式では、二つ以上の連続したスペースが含まれているファイル名、または末尾にス
ペースが付いているファイル名を扱うことができません。そのような場合は thin 形式
を使ってください。wide 形式は最もコンパクトな表示形式です。

tree 形式ではトップディレクトリに続いてファイル/ディレクトリが、名前の前に 1
つ以上の "|" を付けて表示されます。これはディレクトリの深さを示します。ディレ
クトリの名前の所で <cr> キーを押すと、そのディレクトリを開いたり閉じたりできま
す。

デフォルトの表示スタイルを変更できます。(g:netrw_liststyle) 参照。
例えば、次の行を .vimrc に書くと:
        let g:netrw_liststyle= 3
ツリー形式の表示スタイルがデフォルトで使用されます。

ツリー形式を使う典型的な方法は以下の通りです:

        vim .
        (ツリー形式になるまで i を使う)
        ファイルへ移動する
        v  (垂直分割されたウィンドウで好きなように編集する)
        ctrl-w h  (netrw の一覧に戻るため)
        P (新しく選択されたファイルを前のウィンドウで編集する)
        ctrl-w h  (netrw の一覧に戻るため)
        P (新しく選択されたファイルを前のウィンドウで編集する)
        ...etc...

関連設定: g:netrw_liststyle g:netrw_maxfilenamelen
          g:netrw_timefmt   g:netrw_list_cmd

パーミッションの変更                                           netrw-gp {{{2

"gp" を使うと新しいパーミッションを入力するプロンプトが表示されます。カーソル
位置のファイルのパーミッションを変更できます。
現在、これはローカルファイルに対してのみ機能します。

関連設定: g:netrw_chgperm


ブックマークしたディレクトリに移動                     netrw-gb  {{{2

ブックマークしたディレクトリに移動するには、次のコマンドを使います。

        {cnt}gb

カウントを付けてブックマークを指定することができます。
Notenetrw-qb はブックマークと履歴を両方表示します。履歴の場所に移動したい
場合は netrw-u と netrw-U を参照してください。

関連項目:
        netrw-mB ブックマークを削除する
        netrw-mb ブックマークを設定する
        netrw-qb ブックマークを一覧表示する


前のディレクトリに戻る                 netrw-u netrw-updir {{{2

ディレクトリを移動するとき (カレントセッションで新規の場合)、そのディレクトリ
は、最近表示したディレクトリの履歴リストに保存されます (g:netrw_dirhistmax
が 0 でない場合に限る。初期設定では 10 エントリが保持される)。"u" マップを使用
すると、前のディレクトリに移動できます。反対に移動したい場合は netrw-U を参
照。

"u" マップはカウントを指定することができ、履歴の特定の位置に戻ることができま
す。qb (netrw-qbを参照) の一覧で表示される履歴の番号はこのカウントとして使え
ます。

                                                .netrwhist
履歴の量を制御するには g:netrw_dirhistmax を参照。".netrwhist" ファイルは
netrw (と vim) が起動されていない間、履歴を保持します。デフォルトでは
'runtimepath'の最初のディレクトリに保存されます。

関連項目:
        netrw-U 次のディレクトリに進む
        g:netrw_home .netrwhist が保存される場所を制御する


次のディレクトリに進む                 netrw-U netrw-downdir {{{2

"U" マップを使用すると、次のディレクトリに移動できます。このマップは "u" マッ
プの反対です (netrw-u参照)。qb マップを使用するとブックマークと履歴の一覧を
表示できます (netrw-qb参照)。

"U" マップはカウントを指定することができ、履歴の特定の位置に進むことができま
す。

履歴の量を制御するには g:netrw_dirhistmax を参照。


ツリーのトップを変更する               netrw-ntree  :Ntree  netrw-gn {{{2

ツリー表示のツリーのトップを変更するには次のコマンドを使います

        :Ntree [dirname]

"dirname" を指定しなかった場合、現在行が使われます (そして深さ情報は失われ
る)。
"dirname" を指定した場合、指定された名前が使われます。

"gn" マップはカーソル位置の単語を取得し、ツリーのトップをそれに変更します。


NETRW CLEAN                                     netrw-clean :NetrwClean {{{2

:NetrwClean を使うと、ホームディレクトリから netrw を削除できます。正確に
は、'runtimepath' の最初のディレクトリから削除します。

:NetrwClean! を使うと、'runtimepath' のすべてのディレクトリから netrw を削除
しようと試みます。これを行うにはもちろん書込/削除権限が正しいものである必要が
あります。

どちらのコマンドも、本当に削除していいかどうかを確認するダイアログが最初に表示
されます。ファイルを削除する権限がない場合はエラーメッセージが表示されます。

特殊ハンドラでブラウジングをカスタマイズ       netrw-x netrw-handler {{{2

html, gif, jpeg, (word/office) doc などのファイルは専用ハンドラ (コンピュータ
にあらかじめ備わっているようなツール) で処理するのが一番です。Netrw ではそのよ
うな専用ハンドラの呼び出しをサポートしています:

        * ファイルパスの上にあるカーソルで gx を押すか、netrw バッファで x を
          押す。前者は g:netrw_nogx 変数を定義することで無効にできます。
        * コマンドラインで、:Open <path> と入力します。下記 :Open を参照。

ビジュアルモード (visual-start を参照) を使用して、特殊ハンドラが使用するテ
キストを選択することもできます。通常、gx はカーソルの下のテキストを取得するた
めに近くの URL またはファイル名をチェックします。expand() が使用するテキスト
は、g:netrw_gx 変数 (オプションには "<cword>"、"<cWORD>" が含まれます) を介
して変更できます。Note expand("<cfile>") は、'isfname' の設定に依存すること
に注意してください。または、ビジュアル選択 (visual-block を参照) を行ってか
ら gx を押すことで、gx が使用するテキストを選択することもできます。

選択関数は、関数 Netrw_get_URL_<filetype> を追加することで各ファイルタイプに
適応できます。<filetype> は 'filetype' で指定します。
この関数は、gx が使用する URL またはファイル名を返す必要があり、空の文字列を返
す場合はデフォルトの動作に戻ります。
例えば、Markdown と HTML のリンク用の特別なハンドラは、

" 正確なカーソル位置に関係なく、gx が concealed なリンクで動作するようにする:

  function Netrw_get_URL_markdown()
    " 次のような markdown URL [link text](http://ya.ru 'yandex search')
    try
      let save_view = winsaveview()
      if searchpair('\[.\{-}\](', '', ')\zs', 'cbW', '', line('.')) > 0
        return matchstr(getline('.')[col('.')-1:],
          \ '\[.\{-}\](\zs' .. g:netrw_regex_url .. '\ze\(\s\+.\{-}\)\?)')
      endif
      return ''
    finally
      call winrestview(save_view)
    endtry
  endfunction

  function Netrw_get_URL_html()
    " 次のような HTML URL <a href='http://www.python.org'>Python is here</a>
    "                     <a href="http://www.python.org"/>
    try
      let save_view = winsaveview()
      if searchpair('<a\s\+href=', '', '\%(</a>\|/>\)\zs', 'cbW', '', line('.')) > 0
        return matchstr(getline('.')[col('.') - 1 : ],
          \ 'href=["'.."'"..']\?\zs\S\{-}\ze["'.."'"..']\?/\?>')
      endif
      return ''
    finally
      call winrestview(save_view)
    endtry
  endfunction

ファイルパス以外に、カーソルの下のテキストが URL である場合もあります。Netrw
は、デフォルトで次の正規表現を使用して、カーソルの下のテキストが URL であるか
どうかを判断します。

  :let g:netrw_regex_url = '\%(\%(http\|ftp\|irc\)s\?\|file\)://\S\{-}'

関連する設定変数:
        g:netrw_gx    gx がカーソルの下のテキストを取得する方法を制御する
        g:netrw_nogx  編集中の gx マップを防止する
        g:netrw_suppress_gx_mesg gx のブラウザーメッセージの抑制を制御する

ファイルを開いてアプリを起動する       netrw-gx :Open :Launch {{{2

Netrw は、次の方法で特殊ハンドラを決定します:

  g:netrw_browsex_viewer が存在する場合、それを使用してファイルを表示しよ
    うとします。
    使用したいビューアがリモート URL ディレクトリの処理をサポートしていない場
    合は、g:netrw_browsex_support_remote を 0 に設定します。
  * 上記以外:

    * Windows では                      : explorer.exe が使用されます
    * Mac OS X では                     : open が使用されます
    * Linux では                        : xdg-open が使用されます

適切なハンドラでパス (または URL)  <path> を開くには、以下を入力します。

    :Open <path>

シェルでも Vim のコマンドラインでもエスケープは必要ありません。

特定のアプリケーションを起動するには、<app> <args>、多くの場合、<args> は
<path> です

    :Launch <app> <args>.

<args> は作為的に複雑になる可能性があり、特に多くのファイルパスが含まれる場
合、エスケープはユーザーに任されます。

g:loaded_netrwPlugin を設定して netrw プラグインを無効にした場合
(netrw-noload を参照) は、以下が使用できます

    :call netrw#Launch('<app> <args>')
    :call netrw#Open('<path>')

                                                        netrw-curdir
ブックマークを削除する                         netrw-mB {{{2

ブックマークを削除するには、次のコマンドを使います

        {cnt}mB

もしマークされたファイルが存在するなら、mB はそれらをブックマークリストから削
除します。

一方で :NetrwMB! を使う人もいるでしょう (netrw-:NetrwMB参照)。

        :NetrwMB! [files/directories]

関連項目:
        netrw-gb ブックマークに戻る (移動する)
        netrw-mb ブックマークを設定する
        netrw-qb ブックマークを一覧表示する


ファイル/ディレクトリの削除    netrw-delete netrw-D netrw-del {{{2

ファイルが netrw-mf でマークされていない場合: (local marked file list)

    ファイル/ディレクトリを削除するにはファイル名の上にカーソルを移動して "D"
    を押します。ディレクトリを削除する場合は中身が空でなければなりません。ディ
    レクトリがディレクトリへのソフトリンクだった場合は、ディレクトリを削除する
    ために二つのリクエストが実行されます。netrw はファイルを削除する前に確認ダ
    イアログを表示します。"V" コマンド (ビジュアル選択) で範囲を選択して "D"
    を使うこともできます。
{訳注: > 二つのリクエスト
       rmdir <file> || rm <file> 的な処理}

ファイルが netrw-mf でマークされている場合: (local marked file list)

    マークされたファイル (と空ディレクトリ) が削除されます。netrw はファイルを
    削除する前に確認ダイアログを表示します。

パターンにマッチしたファイルを削除するには:

    * :MF パターン (netrw-:MF 参照) を使う。そして "D" を押す。

    * mr (netrw-mr 参照) を使う。パターンを入力するためのプロンプトが表示さ
      れます。
      入力したパターンにマッチしたファイルがマークされるので、それから "D" を
      押す。

Note "D" マップでは空のディレクトリのみが削除されることに注意してください。通
常のファイルも同様に delete() で削除されます。

リモートのファイルとディレクトリの削除には、g:netrw_rm_cmd
g:netrw_rmf_cmdg:netrw_rmdir_cmd 変数が使われます。g:netrw_rm_cmd は
ファイルの削除に使われます。初期設定は次のとおり:

        g:netrw_rm_cmd: ssh HOSTNAME rm

g:netrw_rmdir_cmd 変数はディレクトリの削除に使われます。初期設定は次のとおり:

        g:netrw_rmdir_cmd: ssh HOSTNAME rmdir

g:netrw_rmdir_cmd によるディレクトリの削除が失敗した場合は、g:netrw_rmf_cmd を
使用した削除が試されます。初期設定は次のとおり:

        g:netrw_rmf_cmd: ssh HOSTNAME rm -f

関連項目: netrw-d
関連設定: g:netrw_rm_cmd g:netrw_ssh_cmd


netrw-explore  netrw-hexplore netrw-nexplore netrw-pexplore
netrw-rexplore netrw-sexplore netrw-texplore netrw-vexplore netrw-lexplore
ディレクトリ探査コマンド  {{{2

     :[N]Explore[!]  [dir]... カレントファイルのディレクトリを開く   :Explore
     :[N]Hexplore[!] [dir]... 水平分割で開く                         :Hexplore
     :[N]Lexplore[!] [dir]... 左エクスプローラーを切り替える         :Lexplore
     :[N]Sexplore[!] [dir]... カレントファイルのディレクトリを分割   :Sexplore
                              して開く
     :[N]Vexplore[!] [dir]... 垂直分割で開く                         :Vexplore
     :Texplore       [dir]... タブで開く                             :Texplore
     :Rexplore            ... エクスプローラーに/から戻る            :Rexplore

     :Explore **/pattern で開いたときに使うコマンド : (netrw-starstar参照)
     :Nexplore............. 次のファイルに移動                      :Nexplore
     :Pexplore............. 前のファイルに移動                      :Pexplore

                                                netrw-:Explore
:Explore  は、ローカルディレクトリブラウザーを開始してカレントファイルのディレ
          クトリ (または [dir] で指定されたディレクトリ) を開きます。編集中の
          ファイルに未保存の変更があり 'hidden' が設定されていない場合は新しい
          ウィンドウを作成します。そうでない場合は同じウィンドウを使用します。
          通常、ウィンドウの分割は水平分割です。
          netrw-:Rexplore も参照。
:Explore! は、:Explore と同じですが、ウィンドウを垂直分割します。

                                                netrw-:Hexplore
:Hexplore  [dir] は、:belowright 水平分割を使って :Explore を実行します。
:Hexplore! [dir] は、:aboveleft  水平分割を使って :Explore を実行します。

                                                netrw-:Lexplore
:Lexplore [dir] 現在のタブの左側に、エクスプローラーウィンドウを開いたり閉じた
          りします。 [dir] を省略したときは現在のディレクトリを開きます。
          :Lexplore [dir] は、どのウィンドウで実行したかに関係なく、タブの左側
          でブラウザーを開き、指定されたディレクトリを表示します。

          初期設定では、:Lexplore は未初期化の g:netrw_chgwin を 2 に設定しま
          す。つまりファイルを開くときには 2 番目のウィンドウが使われるようにな
          ります。

          [N] は新しい :Lexplore ウィンドウの g:netrw_winsize を示します。つ
          まり、
            if [N] < 0 : Lexplore ウィンドウには N カラムを使用する
            if [N] = 0 : 通常の分割が行われる
            if [N] > 0 : カレントウィンドウの N% が新しいウィンドウに使用される

          この方法を好む人達はしばしばツリービューも好むでしょう。
          g:netrw_liststyle参照。

:[N]Lexplore! [dir] は :Lexplore と似ていますが、縦一杯のエクスプローラーウィ
          ンドウを右側に開きます。その際、未初期化の g:netrw_chgwin は 1 に
          セットされます (例えばファイルを開くときには最も左のウィンドウが優先
          的に使用されます)。

          以下も参照: netrw-C           g:netrw_browse_split   g:netrw_wiw
                      netrw-p netrw-P   g:netrw_chgwin
                      netrw-c-tab       g:netrw_winsize

                                                netrw-:Sexplore
:[N]Sexplore は、常に新しいウィンドウを作成してローカルディレクトリブラウザー
          を開始します。Explore と同様、通常はウィンドウは水平分割されます。
:[N}Sexplore! [dir] は、:Sexplore と同じですが、ウィンドウを垂直分割します。

                                                netrw-:Texplore
:Texplore  [dir] は、ブラウザーウィンドウを作成する前に :tabnew を実行しま
          す。

                                                netrw-:Vexplore
:Vexplore  [dir] は、:leftabove  垂直分割を使って :Explore を実行します。
:Vexplore! [dir] は、:rightbelow 垂直分割を使って :Explore を実行します。

省略可能な引数:

 [N]: この引数は新しいエクスプローラーウィンドウの高さかつ/または幅の量を指定
      するために g:netrw_winsize を上書きします。または g:netrw_winsize が
      ユーザーにより指定されれば、新しいエクスプローラーウィンドウの高さかつ/
      または幅の量を制御するのに使用されます。

 [dir]: デフォルトでは、これらのエクスプローラーコマンドは現在のファイルのディ
        レクトリを使用します。しかし、一部のコマンドでは使用されるディレクトリ
        (パス)を指定できます。
        例:

        :Explore /some/path

                                                netrw-:Rexplore
:Rexplore  このコマンドは他のコマンドとは少し違い、あらかじめエクスプローラー
           ウィンドウを開いてからでないと使えません。

           エクスプローラーに戻る
           netrw を使用してファイルを編集する時、例えばカーソル位置が netrw ブ
           ラウザーウィンドウ内のファイル名にある時に <cr> を押すと、
           :Rexplore が実行されます。これによりそのウィンドウでの最後の netrw
           ブラウザーの表示に戻ることができます。

           エクスプローラーから戻る
           逆に、ディレクトリを開いているとき、:Rexplore を使うと、そのウィン
           ドウで最後に開いていたファイルに戻ることができます。

           <2-leftmouse> マップ (gvim や一部の端末でのみ利用可) でも :Rexplore
           と同じことができます。

参照: g:netrw_alto g:netrw_altv g:netrw_winsize


netrw-star netrw-starpat netrw-starstar netrw-starstarpat netrw-grep
スターとパターンを使った探索 {{{2

Explore, Sexplore, Hexplore, Vexplore それぞれのコマンドで、次のようなパターン
が使われた場合、Explore はそれにマッチするようなファイルのリストをローカルファ
イルシステムに対して生成します。これらの探索パターンはリモートファイルのブラウ
ジングに対しては機能しません。

    */filepat   カレントディレクトリの、filepat にマッチするファイル
    **/filepat  カレントディレクトリとそれ以下のディレクトリの、filepat にマッ
                チするファイル
    *//pattern  カレントディレクトリの、pattern を含んでいるファイル (vimgrep
                が使用されます)
    **//pattern カレントディレクトリとそれ以下のディレクトリの、pattern を含ん
                でいるファイル (vimgrep が使用されます)

カーソルはリストの最初のファイルの上に置かれます。:Nexplore でファイルリスト
の次のファイルへ、:Pexplore で前のファイルへ移動できます。netrw はディレクト
リやカーソル位置を適切に更新します。

引数を付けずに
        :Explore
と実行すると、ファイルリストがクリアされます。

あなたのコンソールまたは gui が shift-up と shift-down を解釈できるなら、
shift-downarrow と shift-uparrow を使うと便利でしょう。
次のマップが netrw によって定義されます:

        <s-down>  == Nexplore
        <s-up>    == Pexplore



        :Explore */*.c
        :Nexplore
        :Nexplore
        :Pexplore

ステータスラインの右の方に "Match 3 of 20" のようなメッセージが表示されます。

関連設定:
        g:netrw_keepdir          g:netrw_browse_split
        g:netrw_fastbrowse       g:netrw_ftp_browse_reject
        g:netrw_ftp_list_cmd     g:netrw_ftp_sizelist_cmd
        g:netrw_ftp_timelist_cmd g:netrw_list_cmd
        g:netrw_liststyle


ファイルの情報を表示する                                       netrw-qf {{{2

ファイル名の上にカーソルを移動して "qf" を押すと、ファイルのサイズと最終更新日
時が表示されます。現在、この機能はローカルファイルのみ対応しています。


隠しリストを編集する                   netrw-ctrl-h netrw-edithide {{{2

"<ctrl-h>" マップを使うと、g:netrw_list_hide に設定されたファイル/ディレクト
リの隠しリストを変更できます。隠しリストはパターンをコンマで区切ったものです。
パターンにマッチしたファイル/ディレクトリは表示されなくなります。あるいはマッ
チしたファイルのみを表示することができます (netrw-a参照)。

"gh" マップ (netrw-gh参照) を使うと、通常の隠しリストの使用と "." で始まる
ファイル/ディレクトリを非表示にするのを切り替えることができます。

例:
        let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
これは netrw-gh コマンドの初期設定での動作と実質的に同じになります。
解説:

        \(^\|\s\s\)   : 行頭または連続した二つの空白文字が見つかったら
        \zs           : その場所からマッチを開始して
        \.            : ドットで始まり
        \S\+          : 1 つ以上の非空白文字が続く名前にマッチする

関連設定: g:netrw_hide g:netrw_list_hide
関連項目: netrw-a netrw-gh netrw-mh


                                        netrw-sort-sequence
ソートシーケンスを編集する             netrw-S netrw-sortsequence {{{2

"Sorted by" が name (名前順ソート) のとき、g:netrw_sort_sequence を設定するこ
とで優先順位を指定できます。ソートシーケンスは典型的には順位の高い順に拡張子を
並べたもので、パターンを使うこともできます。パターンはコンマで区切ります。ソー
トシーケンスの初期設定は次のとおり (実際にはすべて一行):

For Unix:
        '[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
        \.info$,\.swp$,\.bak$,\~$'

その他:
        '[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
        \.swp$,\.bak$,\~$'

単に * だけが指定されている場合は他のパターンにマッチしなかったすべてのファイ
ルがマッチします。ソートシーケンスを変更するには、g:netrw_sort_sequence 変数を
設定するか (手動または <.vimrc> で設定)、"S" マップを使います。

関連項目: netrw-s               netrw-S
関連設定: g:netrw_sort_sequence g:netrw_sort_options


カーソル位置のファイルを system() で実行する                   netrw-X {{{2

実行可能ファイルの上で X を押すと引数を入力するためのプロンプトが表示されます。
そこで [return] を押すと、netrw はそのコマンドと引数で system() を実行しま
す。結果は :echomsg で表示されるので、:messages で再表示できます。Ansi エ
スケープシーケンスは除去されます。

指示のための引数の編集の仕方の更なる情報については cmdline-window を参照して
ください。


取扱いをファイルまたはディレクトリに強制する   netrw-gd netrw-gf {{{2

リモートのシンボリックリンク (ssh や ftp を使用時) はリンク先がファイルなのか
ディレクトリなのかを知るのが難しいという問題があります。

強制的にファイルとして扱うには次のコマンドを使います:
        gf

強制的にディレクトリとして扱うには次のコマンドを使います:
        gd


親ディレクトリに移動する                                       netrw-- {{{2

親ディレクトリに移動するには "-" を押すか、ファイル一覧の ../ ディレクトリの上
で <cr> を押します。

netrw は g:netrw_list_cmd を使ってディレクトリ一覧を取得します。変数の
HOSTNAME の部分は実際の url に置き換えられます。初期設定は次のとおり:

        ssh HOSTNAME ls -FLa

HOSTNAME の部分は実際のリクエストの [user@]hostname に置換されます。設定は必要
に応じて変更してください。ディレクトリ名の末尾にはスラッシュが付くことが想定さ
れています。


ファイル/ディレクトリを隠す                    netrw-a netrw-hiding {{{2

Netrw のブラウジングでは隠しリストを使う方法が三つあります: 使用しない、マッチ
したファイルを隠す、マッチしたファイルのみを表示する。

ファイルが netrw-mf によってマークされていない場合:

"a" マップを使うと三つの表示モードが順番に切り替わります。

g:netrw_list_hide 変数にはコンマで区切られた正規表現に基づくパターンのリスト
(例 ^.*\.obj$,^\.) が設定されます。隠しリストを設定するには <c-h> マップを使い
ます (netrw-ctrl-h参照)。例えば、"." で始まるファイルを非表示にしたい場合、
<c-h> を押して隠しリストに '^\..*' を設定します (あるいは <.vimrc> で
let g:netrw_list_hide= '^\..*' を設定する)。そして、"a" キーを押して表示を切り
替えます (すべてのファイルを表示、マッチしたファイルを隠す、マッチしたファイル
のみ表示。

        例: \.[ch]$
                すべての *.c *.h ファイルを表示/非表示する。

        例: \.c$,\.h$
                同上。すべての *.c *.h ファイルを表示/非表示する。

表示モード (normal/hiding/show) の切り替えは "a" マップです。忘れないで!

ファイルが netrw-mf によってマークされている場合、次のように動作します:

  すべてのファイルを表示 or 隠しファイル非表示の場合:
    マークされたファイルを g:netrw_list_hide に追加し、
    隠しファイル非表示モードにする

  隠しファイルのみ表示の場合:
    マークされたファイルを g:netrw_list_hide から削除し、
    隠しファイル非表示モードにする

                                        netrw-gh netrw-hide
次のコマンドを使うと
        gh
ドットで始まるファイルを非表示にするかどうかを簡単に切り替えることができます。

関連設定: g:netrw_list_hide  g:netrw_hide
関連項目: netrw-a netrw-ctrl-h netrw-mh

                                        netrw-gitignore
netrw にはヘルパ関数の 'netrw_gitignore#Hide()' が用意されています。
g:netrw_list_hide と一緒に使うことで git の隠しファイルを自動的に隠すことが
できます。

'netrw_gitignore#Hide' はこれらのファイルにあるパターンを検索します:

        './.gitignore'
        './.git/info/exclude'
        global gitignore file: `git config --global core.excludesfile`
        system gitignore file: `git config --system core.excludesfile`

存在しないファイルは無視されます。
git の隠しファイルのパターンは存在するファイルから取られ、隠しファイル設定のパ
ターンに変換されます。例えば、'.gitignore' に '*.log' があったとすると、それは
'.*\.log' に変換されます。

この関数を使うには、単にその戻り値を g:netrw_list_hide オプションに代入しま
す。

        例: let g:netrw_list_hide= netrw_gitignore#Hide()
                netrw で git の隠しファイルをすべて隠す。

        例: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
                関数には git の隠しファイルのパターンを読み込む追加のファイル
                を指定できます。

        例: let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
                'netrw_gitignore#Hide' と独自のパターンを組み合わせる。


ブラウジングを改善する         netrw-listhack netrw-ssh-hack {{{2

リモートディレクトリをブラウジングするときなどに、操作の度にパスワードを入力す
るのは面倒です。

Linux/Unix システム向けには

  「Linux Server Hacks - 100 industrial strength tips & tools"」
  Rob Flickenger 著
  O'Reilly, ISBN 0-596-00461-3

日本語版は
  「LinuxサーバHacks—プロが使うテクニック&ツール100選」
  翻訳: 山口晴広、イメージズアンドワーズ
  ISBN-10: 487311151X
  ISBN-13: 978-4873111513

に、ssh と scp のパスワードを省略するための設定と、セキュリティ関係の議論があ
ります。以前は http://hacks.oreilly.com/pub/h/66 で参照できましたが、現在この
アドレスは "hackzine" へのリダイレクトになっています。
記事の内容と Ben Schmidt とのやりとりを要約します:

        1. ローカルマシン (sshクライアント) でパブリックキーとプライベートキー
           のペアを生成する:
                ssh-keygen -t rsa
                (プロンプトに従ってファイルが ~/.ssh/id_rsa に保存されます)

        2. パスフレーズを聞かれる (二度) のでそのまま <CR> を押してパスフレー
           ズを空にする。もしパスフレーズを設定するなら、ssh-agent を使うこと
           でパスフレーズの入力をセッションごとに一度だけで済ますことができま
           す。パスフレーズを設定しなかった場合、あなたのローカルコンピュータ
           にログインするか、あるいはキーファイルにアクセスできれば、そのキー
           ファイルが登録された ssh サーバーにアクセスできます。

        3. 二つのファイルが作成される:
                ~/.ssh/id_rsa
                ~/.ssh/id_rsa.pub

        4. ターゲットマシン (sshサーバー) での操作:
                cd
                mkdir .ssh
                chmod 0700 .ssh

        5. ローカルマシン (sshクライアント) での操作: (一行で入力)
                ssh {serverhostname}
                  cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub

           OpenSSHの場合, (一行で入力)
                ssh {serverhostname}
                  cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

次のコマンドで接続テストします:
        ssh {serverhostname}
他に何も入力しないでサーバーマシンにログインできるはずです。

パスフレーズを設定している場合は次のようにします:
        ssh-agent $SHELL
        ssh-add
        ssh {serverhostname}
ssh-add を実行するとパスフレーズを入力するプロンプトが表示されます。そして、
ssh を使うときはそれは表示されません。vim で使うときは、次のようにもできます
        ssh-agent vim
そして、vim の中で次のコマンドを実行します
        :!ssh-add
あるいは、vim を実行する予定の端末に ssh-agent を適用する方法もあります:
        ssh-agent xterm &
そして、必要になったところで ssh-add を実行してください。

Windows 向けには、vim メーリングリストにおいてパスワードの省略には Pagent を使
うのがいいという話がありました。

Kingston Fung 氏がパスワードを省略する別の方法について書いています:

    scp を使うたびにパスワードを入力しなくてもよくするには、ドキュメントにある
    ハックで空パスワードの ssh アカウントを作成する方法もあるが、もっといい方
    法がある。この方法では通常のパスワード付き ssh アカウントを使い、パスワー
    ドなしで操作を行える。これはセキュアかつ便利だ。ssh パブリックキー認証 +
    ssh-agent、これを実施してみたところ、うまくいきました!


    Ssh ヒント:

        Thomer Gil は netrw+ssh の速度を改善するヒントを提供しています:
            http://thomer.com/howtos/netrw_ssh.html

        Alex Young は ssh の速度を改善するいくつかのヒントを提供しています:
            http://usevim.com/2012/03/16/editing-remote-files/


ブックマークと履歴を一覧表示する       netrw-qb netrw-listbookmark {{{2

"qb" (query bookmarks) を押すと、ブックマークされたディレクトリと移動履歴の一
覧が表示されます。

関連項目:
        netrw-gb ブックマークに戻る (移動する)
        netrw-mb ブックマークを設定する
        netrw-mB ブックマークを削除する
        netrw-u  表示履歴の前のディレクトリに移動する
        netrw-U  表示履歴の次のディレクトリに移動する


新しいディレクトリを作成する                           netrw-d {{{2

"d" マップを使うと新しいディレクトリを作成できます (リモート操作は
g:netrw_mkdir_cmd 変数に依存。ローカル操作は g:netrw_localmkdir に依存)。コマ
ンドを実行すると新しいディレクトリの名前を入力するプロンプトが表示されます。何
も入力せずに <CR> を押すとディレクトリの作成をキャンセルできます。ローカルディ
レクトリを作成するときに既存のファイルまたはディレクトリと同じ名前を指定する
と、エラーが表示され、操作は無視されます。

関連項目: netrw-D
関連設定変数:   g:netrw_localmkdir   g:netrw_mkdir_cmd
                g:netrw_remote_mkdir netrw-%


ブラウジングディレクトリをカレントディレクトリにする   netrw-cd {{{2

g:netrw_keepdir の初期設定は 1 です。この設定の場合、カレントディレクトリは
ブラウジングディレクトリに合わせて変更されません。(v6 のファイルエクスプロー
ラーとの互換性のため)

g:netrw_keepdir を 0 に設定すると、ディレクトリを移動する度にカレントディレク
トリが設定されます。

g:netrw_keepdir が 1 のときは netrwのブラウジングディレクトリとカレントディレ
クトリは別々です。二つのディレクトリを同じにするには "cd" マップを使います
(cdと入力)。このマップは Vim のカレントディレクトリを netrw のブラウジングデ
ィレクトリに変更します。

netrw-cd : このマップ名は "c" から cd に変更されました (netrw-cd を参照)。
           この変更は netrw-cb および netrw-cB を使えるようにするためのもの
           です。

関連設定: g:netrw_keepdir

ファイルをマークする                           netrw-:MF     netrw-mf {{{2
        (netrw-mrも参照)

netrw はファイルをマークする方法をいくつか提供しています:

        * カーソルをファイル名の上に移動して "mf" を押す。

        * gvim では、加えて <s-leftmouse> でもファイルをマークできる。
          (see netrw-mouse)

        * :MF コマンドを使う。これはファイルのリストを指定して使う (ローカル
          ディレクトリでは、リストにワイルドカードを指定できる -- glob() 参
          照)

                :MF *.c

        * (Note: :MF の引数は <f-args> として、空白区切りで解釈される)

        * argument-list を使用してファイルをマークする (netrw-mA)

        * location-list 上のファイルをマークする (netrw-qL)

        * quickfixリストに基づいてマークする (netrw-qF)
          (quickfix-error-lists)

マークしたファイルは以下の netrw マップを使って操作できます:

    netrw-a   ファイル/ディレクトリを隠す
    netrw-D   ファイル/ディレクトリを削除する
    netrw-ma  マークしたファイルを arglist に移動する
    netrw-mA  arglist をマークしたファイルに移動する
    netrw-mb  マークしたファイルをブックマークに追加する
    netrw-mB  マークしたファイルをブックマークから削除する
    netrw-mc  ファイルをターゲットディレクトリにコピーする
    netrw-md  マークしたファイルに vimdiff を適用する
    netrw-me  マークしたファイルを開く
    netrw-mF  ファイルのマークを外す
    netrw-mg  マークしたファイルに vimgrep を適用する
    netrw-mm  マークしたファイルをターゲットに移動する
    netrw-mp  マークしたファイル印刷する
    netrw-ms  Netrw がマークしたファイルを読み込む
    netrw-mt  netrw-mm または netrw-mc 用のターゲットを設定する
    netrw-mT  マークしたファイルのタグを生成する
    netrw-mv  マークしたファイルにVimコマンドを適用する
    netrw-mx  マークしたファイルにシェルコマンドを適用する
    netrw-mX  マークしたファイルに一括でシェルコマンドを適用する
    netrw-mz  マークしたファイルを圧縮/伸長する
    netrw-O   マークしたファイルを取得する
    netrw-R   マークしたファイルの名前を変更する

マークを解除したいときはマークを設定したときと同様に、ファイル名の上で "mf" を
押します。gvim では <s-leftmouse> も使えます。すべてのマークを解除するには
"mu" を使います (netrw-mu参照)。

マークされたファイルはハイライトグループ "netrwMarkFile" で強調表示されます。
これは初期設定では "Identifier" へのリンクです (group-name の Identifier 参
照)。次のようなコマンドでハイライトグループを変更することができます

        highlight clear netrwMarkFile
        hi link netrwMarkFile ..何か..

これを $HOME/.vim/after/syntax/netrw.vim に書きます。

もしマウスが利用可能なら、<s-leftmouse> を使って複数のファイルをマークできま
す。Shift を押したままマウスの左ボタンでドラッグすることで複数のファイルをマー
クすることもできます。 (netrw-mouse 参照)

                        markfilelist global_markfilelist local_markfilelist
マークされたすべてのファイルはグローバルマークファイルリストに記録されます。グ
ローバルリストは 1 つだけ存在します。さらに、すべての netrw バッファはバッファ
ローカルマークファイルリストを持っています。netrw バッファは特定のディレクトリ
と結びついているので、ディレクトリごとにローカルマークファイルリストが存在する
ことになります。マークされたファイルに対する操作はグローバル、またはローカルの
マークファイルリストに作用します。

既知の問題: ツリー表示モード (g:netrw_liststyle) で表示していて、複数のディ
レクトリが同じ名前のファイルを持っているとき、そのどれかのファイルをマークする
と、すべてのファイルがマークされたかのように強調表示されます。しかしマークファ
イルリスト (markfilelist) は選択されたファイルのみを含んでいます。これはおそ
らく修正されないでしょう。


ファイルのマークを外す                                 netrw-mF {{{2
        (netrw-mfnetrw-mu も参照)

"mF" コマンドを使うとカレントバッファ内のすべてのファイルのマークを外すことが
できます。ファイルごとに個別にマークを外したい場合は mf (netrw-mf) を使いま
す。

locationリストを使ってファイルをマークする                     netrw-qL {{{2
        (also see netrw-mf)

location-list のファイルをマークするには "qL" を使います。続けて me
(netrw-me) などのコマンドを使うとそれらのファイルを開くことができます。


quickfix リストを使ってファイルをマークする                    netrw-qF {{{2
        (netrw-mf も参照)

quickfix-error-lists のファイルをマークするには "qF" を使います。続けて me
(netrw-me) などのコマンドを使うとそれらのファイルを開くことができます。
Quickfix エラーリストは :vimgrep などのコマンドで生成されます。


正規表現を使ってファイルをマークする                           netrw-mr {{{2
        (netrw-mfも参照)

正規表現を使ってファイルをマークするには "mr" を使います。"mr" を押すと "Enter
regexp: " というプロンプトが表示されるので、例えば *.c$ のようなシェル形式の正
規表現 (glob() 参照) を入力します。リモートシステムに対しては glob() は使え
ないので、netrw は "*" を ".*" に変換し (regexp 参照)、それを使ってファイル
をマークします。将来的には glob() スタイルではなく regexp スタイルの正規表現
を使えるようにする予定です (また別のオプションで)。

指示のための正規表現の編集の仕方の更なる情報については cmdline-window を参照
してください。


マークファイル: Vimコマンド                            netrw-mv  {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

"mv" マップはローカルマークファイルリストのファイルに対して netrw にそれぞれ任
意の vim コマンドを実行させます:

        * 1split
        * sil! keepalt e file
        * run vim command
        * sil! keepalt wq!

あなたが実行したい vim コマンドを尋ねるため "Enter vim command: " というプロン
プトが出ます。指示のためのコマンドの編集の仕方の更なる情報については
cmdline-window を参照してください。


マークファイル: 任意のシェルコマンド                           netrw-mx {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

"mx" マップを実行すると(外部)コマンドを入力するためのプロンプトが表示され、
マークしたファイルに対して入力したコマンドが実行されます。コマンド文字列内のす
べての "%" は実行ごとにファイル名に置換されます。"%" が無い場合はコマンドの後
ろにスペースとファイル名が付けられます。

例:
        (ファイルをマークする)
        mx
        コマンドを入力する: cat

        これにより次のシェルコマンドが実行されます:
        cat 'file1'
        cat 'file2'
        ...


マークファイル: 一括シェルコマンド                             netrw-mX {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

'mX' マップの実行の際、netrw はユーザーにグローバルマークファイルリストに対し
て適用する外部コマンドを尋ねます。"一括" の意味するものは、1 つのコマンドがす
べてのファイルに対して一度に実行されるためです:

        command files

このアプローチは、例えばtarballを作るためのファイルを選択するのに便利です:

        (ファイルをマークする)
        mX
        コマンドを入力する: tar cf mynewtarball.tar

この例により実行されるコマンド:

        tar cf mynewtarball.tar 'file1' 'file2' ...

マークファイル: 引数リスト                             netrw-ma netrw-mA
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

ma を使うと、マークファイルリストを引数リストに移動します。
mA を使うと、引数リストをマークファイルリストに移動します。

参照: netrw-cb netrw-cB netrw-qF argument-list :args


マークファイル: バッファリスト                 netrw-cb netrw-cB
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

cb を使うと、ファイル名をマークファイルリストからバッファリストに移動します。
cB を使うと、ファイル名をバッファリストからマークファイルリストにコピーします。

参照: netrw-ma netrw-mA netrw-qF buffer-list :buffers


マークファイル: 圧縮と伸長                             netrw-mz {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

マークされたファイルが圧縮されている場合、"mz" はファイルを伸長します。
マークされたファイルが圧縮されていない場合、"mz" はファイルを圧縮します。
圧縮コマンドは g:netrw_compress で設定できます。初期設定は "gzip" です。

伸長には、拡張子と伸長コマンドを関連付けた Dictionary が使われます。
g:netrw_decompress 参照。

正規表現で複数ファイルをマークできることを思い出してください (netrw-mr参照)。
これはたくさんのファイルを圧縮・解凍するのに便利です。

関連設定: g:netrw_compress g:netrw_decompress

マークファイル: コピー                                 netrw-mc {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

mt (netrw-mt) でコピー先ディレクトリを選択し、ファイルのあるディレクトリに移
動し、mf (netrw-mf) でファイルを選択し、"mc" を押します。カレントウィンドウ
(mf を実行した場所) からターゲットディレクトリへ、ファイルがコピーされます。

もし netrw-mt でセットした移動先ディレクトリがない場合、netrw はコピーする
ディレクトリを尋ねます。

また、ディレクトリとその内容 (ローカルに限ります) を移動先ディレクトリにコピー
することもできます。

関連設定:
        g:netrw_localcopycmd          g:netrw_localcopycmdopt
        g:netrw_localcopydircmd       g:netrw_localcopydircmdopt
        g:netrw_ssh_cmd

マークファイル: diff                                           netrw-md {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

vimdiff を使って選択したファイルの違いを表示します (選択できるファイルは二つ
か三つです)。グローバルマークファイルリストが使われます。

マークファイル: 編集                                           netrw-me {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

この "me" コマンドはマークされたファイルを arglist に設定し、編集を開始しま
す。:Rexplore でエクスプローラーウィンドウに戻ることができます。
(引数リスト内の次のファイル、前のファイルを開くには :n と :p を使う)

マークファイル: grep                                           netrw-mg {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

"mg" コマンドはマークされたファイルに対して :vimgrep を適用します。
検索パターンを入力するためのプロンプトが表示されます。次の形式で入力してくださ
い:

        /pattern/[g][j]
        ! /pattern/[g][j]
        pattern

/pattern/ でvimgrepによりセットされた quickfix リストの最初の項目が開かれま
す (:copen:cnext:cprevious:cclose 参照)。'g' なしの場合、マッチしたすべ
ての行が一度だけ追加されます。'g' ありの場合、すべてのマッチが追加されます。

/pattern/j により "mg" はマークされたファイルから指定されたパターンを持つもの
のみに選別します。

        mr ...file-pattern...
        mg /pattern/j

上記のコマンドはfile-patternにマッチし、またpatternを持つものに限られます。

マークファイル: 拡張子による表示/非表示                        netrw-mh {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

この "mh" コマンドは、マークされたファイルの拡張子を隠しリストに追加、または削
除します。Note: 同じ拡張子のファイルが複数選択されていた場合はファイルの数だけ
追加と削除が繰り返されます (つまり、同じ拡張子のファイルが偶数個選択されている
場合はそれを選択しなかったのと同じ)。

関連項目: netrw-a g:netrw_list_hide

マークファイル: 移動                                           netrw-mm {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                     (グローバルマークファイルリスト使用)

        警告: ファイルの移動はコピーと比べて危険です。ファイルの移動時は、まず
        コピーされ、それから削除されます。コピーが失敗して削除が成功するとファ
        イルが失われます。実際に操作する前に適当なファイルで試してみるか、ある
        いは、mc と D を使って自分でコピーと削除を実行してください。
        自己責任で使ってください。

mt (netrw-mt) で移動先ディレクトリを選択し、ファイルのあるディレクトリに移動
し、mf (netrw-mf) でファイルを選択し、"mm" を押します。カレントウィンドウ
(mf を実行した場所) からターゲットディレクトリへ、ファイルが移動されます。

関連設定: g:netrw_localmovecmd g:netrw_ssh_cmd

マークファイル: 印刷                                           netrw-mp {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

"mp" コマンドが使われるとnetrwはマークされたファイルに対して :hardcopy コマ
ンドを実行します。具体的には、それぞれのファイルを一行のウィンドウで開いて、
hardcopy を実行し、一行ウィンドウを閉じます。


マークファイル: スクリプト読み込み                             netrw-ms {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

"ms" を使うとnetrwはマークされたファイルをスクリプト読み込みします (Vim
の :source コマンド使用)


マークファイル: ターゲットディレクトリを設定する               netrw-mt {{{2
     (マークの設定方法は netrw-mf と netrw-mr を参照)

ファイルコピー/移動のターゲットを設定する (netrw-mcnetrw-mm 参照):

  * カーソルがファイルの上にある場合、netrw ウィンドウに表示されているディレク
    トリがターゲットとして設定されます。

  * カーソルがバナーの上にある場合も、netrw ウィンドウに表示されているディレク
    トリがターゲットとして設定されます。
    ターゲットがカレントディレクトリではない場合、"mf" と入力すると
    ターゲットを解除します。

  * カーソルがディレクトリの上にある場合は、そのディレクトリがターゲットとして
    設定されます。

  * :MT [directory] コマンドでターゲットを設定できます          netrw-:MT
    このコマンドは <q-args> を使うので、ディレクトリ名のスペースはエスケープ
    しなくても構いません。

  * マウスが有効化されたvimかgvimでは、ターゲットを <c-leftmouse> によって
    選択できます。

ターゲットは Vim セッションで 1 つしか設定できません。ターゲットはスクリプト変
数 (s:var参照) で管理されており、(Vim のインスタンスごとの) すべての netrw
ウィンドウで共有されます。

gvim でメニューを使っているなら、"Targets" エントリにブックマークと履歴が一覧
されるので、そこからターゲットを選択できます。

関連項目:
      ファイルをマークする...............................netrw-mf
      正規表現を使ってファイルをマークする...............netrw-mr
      マークファイル: ブックマークを使ったターゲットディレクトリ netrw-Tb
      マークファイル: 履歴を使ったターゲットディレクトリ.netrw-Th


マークファイル: タグ生成                                       netrw-mT {{{2
             (マークの設定方法は netrw-mf と netrw-mr を参照)
                      (ローカルマークファイルリスト使用)

"mT" マップはマークされたファイルに対して g:netrw_ctags で指定されたコマンド
を実行します (初期設定は "ctags")。リモートブラウジングでは、タグファイルを生
成するために ssh が使われます (g:netrw_ssh_cmd参照)。したがって、リモートシ
ステムの ssh でコマンドが使えなければなりません。ローカルで使う場合は、ctags
を参照して ctags を準備してください。私は個人的に hdrtags を使っています。
hdrtags は http://www.drchip.org/astronaut/src/index.html から入手できます。こ
れを使う場合は <.vimrc> で次のように設定してください:

        let g:netrw_ctags= "hdrtag"

リモートでタグファイルを生成した場合、タグファイルが "取得" されます。つまり、
ローカルシステムにファイルがコピーされます。そして、ネットワーク越しのファイル
にアクセスできるように、タグファイルが変更されます。変更されるのはタグファイル
内のファイル名で、それぞれのファイル名の前に netrw で扱える形の URL が挿入され
ます (URLは元のタグファイルの場所に基づく)。タグ操作 (tags) を実行すると、
netrw によって URL が開かれ、タグに移動できます。

関連設定: g:netrw_ctags g:netrw_ssh_cmd

マークファイル: ブックマークを使ったターゲットディレクトリ     netrw-Tb {{{2

ファイルコピー/移動のターゲットを設定する。

netrw-qb マップはブックマーク (と履歴) の一覧を表示します。
[count]Tb (count のデフォルトは 1) を使って、ブックマークからマークファイル
ターゲットを選択できます。

関連項目:
      ファイルをターゲットにコピーする...................netrw-mc
      ブックマークと履歴を一覧表示する...................netrw-qb
      マークファイル: ターゲットディレクトリを設定する...netrw-mt
      マークファイル: 履歴を使ったターゲットディレクトリ.netrw-Th
      ファイルをマークする...............................netrw-mf
      ファイルのマークを外す.............................netrw-mr
      ファイルをターゲットに移動する.....................netrw-mm


マークファイル: 履歴を使ったターゲットディレクトリ             netrw-Th {{{2

ファイルコピー/移動のターゲットを設定する。

netrw-qb マップは履歴 (とブックマーク) の一覧を表示します。
[count]Th (count のデフォルトは 0。つまりカレントディレクトリ) を使って、履歴
からマークファイルターゲットを選択できます。

関連項目:
      ファイルをターゲットにコピーする...................netrw-mc
      ブックマークと履歴を一覧表示する...................netrw-qb
      マークファイル: ターゲットディレクトリを設定する...netrw-mt
      マークファイル: ブックマークを使ったターゲットディレクトリ netrw-Tb
      ファイルをマークする...............................netrw-mf
      ファイルのマークを外す.............................netrw-mr
      ファイルをターゲットに移動する.....................netrw-mm


マークファイル: マーク解除                                     netrw-mu {{{2
     (netrw-mf と netrw-mr を参照)

"mu" マップを使うと現在設定されているすべてのマークが解除されます。このコマン
ドは "mF" とは異なります。"mu" はすべてのグローバルマークファイルリストとバッ
ファローカルマークファイルリストを解除するのに対し、"mF" はカレントディレクト
リのファイルの選択のみを解除します (netrw-mF参照)。


                                netrw-browser-settings
NETRW ブラウザー変数           netrw-browser-options netrw-browser-var {{{2

(ファイル転送の設定については netrw-options と netrw-protocol を参照)

netrw ブラウザーの各種設定は変数で管理されていて、それを変更することができま
す。<.vimrc> などで変数を設定することでブラウザーの動作をカスタマイズできます。
(netrw-settingsも参照)

   ----                         -----------
   変数                         説明
   ----                         -----------
   g:netrw_altfile            CTRL-^ で最後に編集したファイルに戻りたいと
                                きは 1 を設定する。
                                CTRL-^ で netrw ブラウザーに戻りたいときは 0
                                を設定する。
                                 初期設定: =1

  g:netrw_alto                分割ウィンドウを(上ではなく)下に開くようにする
                                (netrw-o 参照)
                                 初期設定: =&sb          ('sb' 参照)

  g:netrw_altv                分割ウィンドウを(左ではなく)右に開くようにする
                                (netrw-v 参照)
                                 初期設定: =&spr         ('spr' 参照)

  g:netrw_banner              バナーの表示を切り替える
                                =0: バナーを表示しない
                                =1: バナーを表示する (初期設定)

  g:netrw_bannerbackslash     この変数が存在し、ゼロ以外なら、バナーの表示に
                                (スラッシュではなく) バックスラッシュが使われ
                                る。

  g:netrw_browse_split        ブラウザーで <cr> を押してファイルを開くとき:
                                =0: 同じウィンドウを使う (デフォルト)
                                =1: ウィンドウを水平分割する
                                =2: ウィンドウを垂直分割する
                                =3: 新しいタブで開く
                                =4: "P" で開く (以前のウィンドウで開く)
                                    Noteg:netrw_preview を使うと (水平分割
                                    から変更して) 垂直分割にできます。
                                =[サーバー名,タブ番号,ウィンドウ番号]
                                    このような List を指定すると、
                                    "サーバー名" で指定したリモートサーバーは
                                    編集に使われます。また、指定されたタブと
                                    ウィンドウも使われます (clientserver,
                                    netrw-ctrl-r参照)。
                                このオプションは :Lexplore のウィンドウの生
                                成には影響を与えません。

                                関連項目:
                                    g:netrw_alto      g:netrw_altv
                                    netrw-C           netrw-cr
                                    netrw-ctrl-r

  g:netrw_browsex_viewer      ユーザー指定のビューア:
                                        "kfmclient exec"
                                        "gnome-open"

  g:netrw_browsex_support_remote
                                指定しているビューアがリモートURLをサポートす
                                るかどうかを設定します(netrw-handler 参照)。

  g:netrw_chgperm             Unix/Linux: "chmod PERM FILENAME"
                                Windows:    "cacls FILENAME /e /p PERM"
                                ファイルのアクセス権限を変更するのに使われま
                                す。

  g:netrw_clipboard           =1
                                デフォルトでnetrw はクリップボードの値が変更さ
                                れないようにしようとします。
                                しかし、一部のユーザーからスピードの問題がある
                                と報告されています。したがって、このオプション
                                をゼロに設定することで netrw がクリップボード
                                の保存と復元を行わないようにすることができます
                                (復元は必要に応じてのみ行われます)。
                                つまり、通常の netrw の操作でクリップボードが
                                (うっかり)変更された場合でも、それは以前の状態
                                に復元されないということです。

  g:netrw_compress            ="gzip"
                                ファイル圧縮コマンド

  g:Netrw_corehandler         netrw ブラウザーの "x" コマンドで <core> ファ
                                イルを処理するときの追加処理を設定できます。
                                g:Netrw_corehandler には 1 つ、または複数の関数
                                参照 (Funcref) を指定できます。(g:Netrw...
                                で大文字が使われていますが、これは関数参照を保
                                存するために必要です)


  g:netrw_ctags               ="ctags"
                                タグを作成するための外部コマンド

  g:netrw_cursor              = 2 (初期設定)
                                'cursorline' (cul) と 'cursorcolumn' (cuc) を
                                使用するかどうかをコントロールする:

                                Value   Thin-Long-Tree      Wide
                                 =0      u-cul u-cuc      u-cul u-cuc
                                 =1      u-cul u-cuc        cul u-cuc
                                 =2        cul u-cuc        cul u-cuc
                                 =3        cul u-cuc        cul   cuc
                                 =4        cul   cuc        cul   cuc
                                 =5      U-cul U-cuc      U-cul U-cuc
                                 =6      U-cul U-cuc        cul U-cuc
                                 =7        cul U-cuc        cul U-cuc
                                 =8        cul U-cuc        cul   cuc

                                記号の意味
                                  u-cul : 'cursorline' のユーザー設定使用
                                  u-cuc : 'cursorcolumn' のユーザー設定使用
                                  U-cul : 'cursorline' のユーザー設定を使用
                                  U-cuc : 'cursorcolumn' のユーザー設定を使用
                                  cul   : 'cursorline'  をローカル設定する
                                  cuc   : 'cursorcolumn' をローカル設定する

                                  初期設定は、netrw を最後に開いたときの
                                  g:netrw_cursor >= 5 または、netrw が最初に
                                  実行されたときに有効だった 'cuc' および
                                  'cal' の設定値を意味します。

  g:netrw_decompress          = { '.lz4':      'lz4 -d',
                                    '.lzo':      'lzop -d',
                                    '.lz':       'lzip -dk',
                                    '.7z':       '7za x',
                                    '.001':      '7za x',
                                    '.tar.bz':   'tar -xvjf',
                                    '.tar.bz2':  'tar -xvjf',
                                    '.tbz':      'tar -xvjf',
                                    '.tbz2':     'tar -xvjf',
                                    '.tar.gz':   'tar -xvzf',
                                    '.tgz':      'tar -xvzf',
                                    '.tar.zst':  'tar --use-compress-program=unzstd -xvf',
                                    '.tzst':     'tar --use-compress-program=unzstd -xvf',
                                    '.tar':      'tar -xvf',
                                    '.zip':      'unzip',
                                    '.bz':       'bunzip2 -k',
                                    '.bz2':      'bunzip2 -k',
                                    '.gz':       'gunzip -k',
                                    '.lzma':     'unlzma -T0 -k',
                                    '.xz':       'unxz -T0 -k',
                                    '.zst':      'zstd -T0 -d',
                                    '.Z':        'uncompress -k',
                                    '.rar':      'unrar x -ad',
                                    '.tar.lzma': 'tar --lzma -xvf',
                                    '.tlz':      'tar --lzma -xvf',
                                    '.tar.xz':   'tar -xvJf',
                                    '.txz':      'tar -xvJf'}

                                  拡張子と伸長プログラムを関連付ける辞書

  g:netrw_dirhistmax            =10: 履歴の最大数を設定する。履歴を使用しな
                                     い場合はゼロを設定する。
                                     (関連: netrw-qb netrw-u netrw-U)

  g:netrw_dynamic_maxfilenamelen =32: g:netrw_maxfilenamelen (ローカルファ
                                    イルの long 一覧表示で使用される) の動的判
                                    定を有効にする。

  g:netrw_errorlvl            =0: この値以上のエラーレベルであれば表示が許可
                                    される。
                                    0: 注意
                                    1: 警告
                                    2: エラー

  g:netrw_fastbrowse          =0: 低速ディレクトリブラウジング
                                    ファイル一覧を再利用しない
                                    常にファイル一覧取得を行う
                                =1: 中速ディレクトリブラウジング
                                    リモートディレクトリのみファイル一覧を再利
                                    用する。
                                    (初期設定)
                                =2: 高速ディレクトリブラウジング
                                    未取得のディレクトリ (またはnetrw-ctrl-l
                                    が使われたとき) のみファイル一覧を取得す
                                    る。

                                高速ブラウジングは古いファイル一覧バッファを保
                                持し、再取得処理を実行しません。これは特にリ
                                モートブラウジングで重要になります。ファイルが
                                作成/削除されるとファイル一覧バッファは不正確
                                な情報になります。netrw-ctrl-l を使うことで
                                ファイル一覧を更新できます。
                                この設定によって正確さ (常に最新) とスピードの
                                トレードオフを選択できます。

  g:netrw_ffkeep              (初期設定: 変数なし)
                                この変数が存在して値がゼロなら、netrw は
                                'fileformat' を保存、復元しない。

  g:netrw_fname_escape        =' ?&;%'
                                リモートで読み/書きするときにファイル名をエス
                                ケープするのに使われる。

  g:netrw_ftp_browse_reject   ftp がエラーや警告を出力すると、それがファイル
                                やディレクトリとして一覧に表示されてしまいま
                                す。この変数に設定したパターンを使ってそれらの
                                メッセージが取り除かれます。初期設定は以下のと
                                おり:
                                 '^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        ftp に渡されるファイル一覧取得コマンド。
                                初期設定:
                                 unix or g:netrw_cygwin set: : "ls -lF"
                                 そうでない場合                "dir"


  g:netrw_ftp_sizelist_cmd    ftp に渡されるファイル一覧取得コマンド。ファイ
                                ルサイズでソートする。
                                初期設定:
                                 unix or g:netrw_cygwin set: : "ls -slF"
                                 そうでない場合                "dir"

  g:netrw_ftp_timelist_cmd    ftp に渡されるファイル一覧取得コマンド。最終更
                                新日時でソートする。
                                初期設定:
                                 unix or g:netrw_cygwin set: : "ls -tlF"
                                 そうでない場合                "dir"

  g:netrw_glob_escape         ='[]*?`{~$'  (unix)
                                ='[]*?`{$'  (windows
                                設定された文字がディレクトリ名に使われていたら
                                glob() を適用する前にエスケープされる。

  g:netrw_gx                  ="<cfile>"
                                このオプションは gx (netrw-gx)がどのように
                                カーソル位置のテキストを取得するかを制御しま
                                す。可能な引数については expand() を参照して
                                ください。

  g:netrw_hide                "a" マップを制御する (netrw-a 参照)
                                =0 : すべて表示
                                =1 : 非隠しファイルを表示
                                =2 : 隠しファイルのみ表示
                                 初期設定: =0

  g:netrw_home                ブックマークと履歴 (.netrwbook と .netrwhist)
                                を保存するホームディレクトリ。
                                Netrw は文字列に対して expand() を使用しま
                                す。
                                初期設定: 'runtimepath' の最初のディレクトリ

  g:netrw_keepdir             =1 (初期設定) カレントディレクトリとブラウジン
                                   グディレクトリを別にする
                                =0 カレントディレクトリとブラウジングディレク
                                   トリを同じにする。
                                現在のブラウジングディレクトリはb:netrw_curdir
                                に保存されます。 (netrw-cd 参照)

  g:netrw_keepj               ="keepj" (デフォルト) netrw は :jumps の
                                         エントリを保つよう試みます。
                                =""      netrw は保存/位置の復元以外に
                                         :keepjumpsを使わなくなります。

  g:netrw_list_cmd            リモートディレクトリのファイル一覧取得コマンド
                                 初期設定: (sshがあるなら)
                                          "ssh HOSTNAME ls -FLa"

  g:netrw_list_cmd_options    もしこの変数が存在するなら、値は
                                g:netrw_list_cmd に追加されます。例えば、
                                "2>/dev/null" はバナー用のメッセージを除去しま
                                す。


  g:netrw_liststyle           デフォルトのファイル一覧表示スタイル:
                                = 0: thin listing (一行に 1 つのファイル)
                                = 1: long listing (一行に 1 つのファイル、タイ
                                     ムスタンプ、ファイルサイズ)
                                = 2: wide listing (一行に複数のファイル)
                                = 3: tree style listing (ツリー表示)

  g:netrw_list_hide           隠しファイル用のパターンのリスト(コンマ区切り)
                                パターンは正規表現です (regexp参照)
                                git の隠しファイル用に特別な関数が用意されてい
                                ます。この変数に 'netrw_gitignore#Hide()' ヘル
                                パ関数の戻り値を追加することで、git の隠しファ
                                イルを自動的に隠すことができます。
                                詳細は netrw-gitignore 参照。

                                例:
                                 let g:netrw_list_hide= '.*\.swp$'
                                 let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
                                初期設定: ""

  g:netrw_localcopycmd        ="cp"           Linux/Unix/MacOS/Cygwin
                                =expand("$COMSPEC")             Windows
                                マークされたファイル (netrw-mf) をターゲット
                                ディレクトリにコピー (netrw-mtnetrw-mc)

  g:netrw_localcopycmdopt     =''             Linux/Unix/MacOS/Cygwin
                                =' \c copy'                     Windows
                                g:netrw_localcopycmd 用のオプション

  g:netrw_localcopydircmd     ="cp"           Linux/Unix/MacOS/Cygwin
                                =expand("$COMSPEC")             Windows
                                ディレクトリをターゲットディレクトリに
                                コピーします (netrw-mcnetrw-mt)。

  g:netrw_localcopydircmdopt  =" -R"          Linux/Unix/MacOS/Cygwin
                                =" /c xcopy /e /c /h/ /i /k"    Windows
                                g:netrw_localcopydircmd 用のオプション

  g:netrw_localmkdir          ="mkdir"        Linux/Unix/MacOS/Cygwin
                                =expand("$COMSPEC")             Windows
                                ローカルディレクトリ作成コマンド

  g:netrw_localmkdiropt       =""             Linux/Unix/MacOS/Cygwin
                                =" /c mkdir"                    Windows
                                g:netrw_localmkdir 用のオプション

  g:netrw_localmovecmd        ="mv"           Linux/Unix/MacOS/Cygwin
                                =expand("$COMSPEC")             Windows
                                マークされたファイル (netrw-mf) をターゲット
                                ディレクトリに移動 (netrw-mtnetrw-mm)

  g:netrw_localmovecmdopt     =""             Linux/Unix/MacOS/Cygwin
                                =" /c move"                     Windows
                                g:netrw_localmovecmd 用のオプション

  g:netrw_maxfilenamelen      初期設定は 32。long スタイルでの表示を 80 カ
                                    ラムのディスプレイに収められるような値。
                                大きい画面を使っているか、32 バイトより長い名
                                前のファイル/ディレクトリがあるなら、このオプ
                                ションを設定して表示を調整するといいでしょう。

  g:netrw_mkdir_cmd           ssh 経由でのリモートディレクトリ作成コマンド
                                (g:netrw_remote_mkdir も参照)
                                 初期設定: "ssh USEPORT HOSTNAME mkdir"

  g:netrw_mousemaps             =1 (初期設定) ブラウジングでマウスボタンを有効
                                   にする:
                                     左クリック      : ファイル/ディレクトリを
                                                       開く
                                     Shift-左クリック: ファイルをマークする
                                     中クリック      : P と同じ
                                     右クリック      : ファイル/ディレクトリを
                                                       削除
                                =0: マウスのマップを無効にする

  g:netrw_nobeval             未設定 (初期設定)
                                この変数を定義するとバルーン評価は抑制される。
                                (参照 'ballooneval')

 g:netrw_sizestyle            未定義: 実際のバイト数 (デフォルト)
                                ="b" : 実際のバイト数  (デフォルト)
                                ="h" : 人間が読める形式 (例: 5k, 4m, 3g)
                                       1000 ベース
                                ="H" : 人間が読める形式 (例: 5K, 4M, 3G)
                                       1024 ベース
                                long 形式の一覧表示スタイル (netrw-i) と
                                query-file maps (netrw-qf) はファイルサイズを
                                指定されたスタイルで表示します。

  g:netrw_usetab              もしこの変数が存在し、その値が 非0 なら、<tab>
                                マップは Lexplore または netrw ウィンドウの縮
                                小・拡張をサポートするようになります。
                                (netrw-c-tab参照)

  g:netrw_remote_mkdir        ftp 経由でのリモートディレクトリ作成コマンド
                                (g:netrw_mkdir_cmd も参照)
                                 初期設定: "mkdir"

  g:netrw_retmap              この変数が存在し、その値が 1 なら:
                                 * netrw でファイルを開いたとき
                                 * <2-leftmouse> のノーマルモードのマップが他
                                   に定義されていない
                                という場合、netrw ブラウザーウィンドウに戻るた
                                めの機能として <2-leftmouse> マップが設定され
                                ます。
                                 例: クリックしてファイルを開き、ダブルクリッ
                                     クで戻る。

                                Note<2-leftmouse> 以外のキーを割り当てたい場
                                合は:
                                 * let g:netrw_retmap= 1
                                 * nmap <silent> 好きなキー <Plug>NetrwReturn
                                を設定してください。

                                :Rexplore コマンドを使っても同じことができま
                                す。

                                  初期設定: =0

  g:netrw_rm_cmd              リモートのファイル削除コマンド
                                 初期設定: "ssh USEPORT HOSTNAME rm"

  g:netrw_rmdir_cmd           リモートのディレクトリ削除コマンド
                                 初期設定: "ssh USEPORT HOSTNAME rmdir"

  g:netrw_rmf_cmd             リモートのソフトリンク削除コマンド
                                 初期設定: "ssh USEPORT HOSTNAME rm -f"

  g:netrw_servername          netrw-ctrl-r で使うサーバー名
                                 デフォルト: "NETRWSERVER"

  g:netrw_sort_by             ソートの種類: "name", "time", "size", "exten"
                                 初期設定: "name"

  g:netrw_sort_direction      ソートの順序: "normal" or "reverse"
                                 初期設定: "normal"

  g:netrw_sort_options        ソートには :sort が使われます。この変数に設
                                定された値はソートコマンドに追加されます。例え
                                ば .vimrc で次のように設定すると、大文字小文字
                                を無視できます:
                                        let g:netrw_sort_options="i"
                                 初期設定: ""

  g:netrw_sort_sequence       名前でソートするとき、まずこの変数で指定された
                                パターンを使ってソートする。コンマで区切られた
                                パターンのリスト。Note: ソート時のファイル名に
                                はファイルタイプを示す装飾文字
                                (netrw-filigree) が含まれます。
                                 初期設定: '[\/]$,*,\.bak$,\.o$,\.h$,
                                            \.info$,\.swp$,\.obj$'

  g:netrw_special_syntax      true なら、特定の種類のファイルが特別な色(シン
                                タックス)で表示されます:

                                        netrwBak     : *.bak
                                        netrwCompress: *.gz *.bz2 *.Z *.zip
                                        netrwCoreDump: core.\d\+
                                        netrwData    : *.dat
                                        netrwDoc     : *.doc,*.txt,*.pdf,
                                                       *.pdf,*.docx
                                        netrwHdr     : *.h
                                        netrwLex     : *.l *.lex
                                        netrwLib     : *.a *.so *.lib *.dll
                                        netrwMakefile: [mM]akefile *.mak
                                        netrwObj     : *.o *.obj
                                        netrwPix     : *.bmp,*.fit,*.fits,*.gif,
                                                       *.jpg,*.jpeg,*.pcx,*.ppc
                                                       *.pgm,*.png,*.psd,*.rgb
                                                       *.tif,*.xbm,*.xcf
                                        netrwTags    : tags ANmenu ANtags
                                        netrwTilde   : *
                                        netrwTmp     : tmp* *tmp
                                        netrwYacc    : *.y

                                加えて、'suffixes' で言及されているグループ
                                も特別ファイルのハイライトグループに追加されま
                                す。
                                これらの構文ハイライトグループは、初期設定では
                                netrwGray か Folded へのリンクです。
                                (hl-Folded 参照)
                                例えば <.vimrc> で次のように設定することで
                                        hi link netrwCompress Visual
                                好みの配色を設定できます。あるいは、このような
                                設定を .vim/after/syntax/netrw.vim に書く方法
                                もあります。
                                netrwGray のハイライトは、netrw によって以下の
                                場合に設定されます。
                                        * netrwGray がまだ定義されていない
                                        * gui が起動している
                                例として、私自身は暗背景カラースキームを使って
                                いて .vim/after/syntax/netrw.vim で以下のよう
                                設定しています:

 hi netrwCompress term=NONE cterm=NONE gui=NONE ctermfg=10 guifg=green  ctermbg=0 guibg=black
 hi netrwData     term=NONE cterm=NONE gui=NONE ctermfg=9 guifg=blue ctermbg=0 guibg=black
 hi netrwHdr      term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
 hi netrwLex      term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
 hi netrwYacc     term=NONE cterm=NONE,italic gui=NONE guifg=SeaGreen1
 hi netrwLib      term=NONE cterm=NONE gui=NONE ctermfg=14 guifg=yellow
 hi netrwObj      term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwTilde    term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwTmp      term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwTags     term=NONE cterm=NONE gui=NONE ctermfg=12 guifg=red
 hi netrwDoc      term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=yellow2 guibg=Blue3
 hi netrwSymLink  term=NONE cterm=NONE gui=NONE ctermfg=220 ctermbg=27 guifg=grey60


  g:netrw_ssh_browse_reject   ssh の出力に不要なテキスト (メッセージ、バナー
                                等) が混ざっていて、それらがディレクトリやファ
                                イルとして認識されると困ります。この変数に設定
                                されたパターンを使って余計なメッセージを取り除
                                きます。
                                初期設定:
                                         '^total\s\+\d\+$'

  g:netrw_ssh_cmd             リモートアクセス時に ssh として使われる実行可
                                能ファイル。ファイル一覧取得やファイル削除など
                                に使われます。
                                 初期設定: ssh

 g:netrw_suppress_gx_mesg     =1 : ブラウザーは時々、ページと入り混じった
                                不必要と思われるメッセージを出力することがあり
                                ます。しかし、例えば links を使用している時、
                                それらの出力はブラウザーが出力したものです。
                                このオプションを 0 にセットすることで、netrw
                                はブラウザーのメッセージを抑制しなくなります。

  g:netrw_tmpfile_escape      =' &;'
                                一時ファイルを escape() で処理するときに使われ
                                るエスケープ文字列。

  g:netrw_timefmt             Vim の strftime() で使用するフォーマット文字列
                                を指定します。初期設定は "%c" で、これは手元の
                                strftime() のマニュアルページによれば "現在の
                                ロケールにおいて一般的な日付・時刻の表記" で
                                す。"%c" の結果に不満な場合は例えば次のような
                                設定が便利でしょう:
                                 "%a %d %b %Y %T",
                                 " %a %Y-%m-%d  %I-%M-%S %p"
                                 初期設定: "%c"

  g:netrw_use_noswf           netrw のブラウザーバッファではスワップファイル
                                を使わないようにしています。しかし、あるシステ
                                ムではそれによって ml_get エラーが発生すること
                                があります。そのようなエラーが出た場合は
                                .vimrc で次のように設定してみてください
                                  let g:netrw_use_noswf= 0
                                  初期設定: 1

  g:netrw_winsize             ウィンドウを作成したときの初期サイズ。"o"
                                (netrw-o), "v" (netrw-v), :Hexplore,
                                :Vexplore で使用。g:netrw_winsize の値は整数
                                です。新しいウィンドウのサイズを netrw のカレ
                                ントバッファウィンドウに対する比率で指定しま
                                す。
                                 g:netrw_winsize が 0 より小さい場合、新しい
                                ウィンドウの行または列の大きさには
                                 g:netrw_winsize の絶対値が使われる。
                                 g:netrw_winsize がゼロなら、通常どおりウィン
                                ドウが分割される (つまり、例えば
                                'equalalways' が機能するなど)。
                                 初期設定: 50 (50%)

  g:netrw_wiw                 =1 netrw ウィンドウ/Lexplore ウィンドウを縮小
                                する時に使われる最小のウィンドウ幅を指定します
                                (netrw-c-tab参照)。

  g:netrw_xstrlen             マルチバイト文字列の長さを計算する方法を指定す
                                る。 (thanks to N Weibull, T Mechelynck)
                                =0: Vim の組み込み関数 strlen() を使う
                                =1: 文字数。(Latin a + combining circumflex は
                                    二文字)(初期設定)
                                =2: 文字数。(Latin a + combining circumflex は
                                    一文字。タブ文字は 1。CJK文字は全角半角と
                                    もに 1。...)
                                =3: 表示幅 (タブ文字は 1 から 'tabstop' まで
                                    の可変幅。CJK文字は全角は 2、その他は 1。
                                    アラビア文字の alif は、lam が前置されてい
                                    る場合は 0、そうでなければ 1。...)

  g:NetrwTopLvlMenu           トップレベルメニューの名前を指定する。初期設定
                                は "Netrw."。これを変更したい場合は .vimrc で
                                設定してください。

NETRW ブラウザーとオプション設定の互換性       netrw-incompatible {{{2

Netrw 内部でオプションを変更するときは、ユーザー設定を保存してから netrw 用の
値を設定し、後で元に戻すという方法が使われます。しかし、autochdirオプション:
        :set acd
の扱いには問題があります。autochdir は開いているファイルが置かれているディレク
トリをカレントディレクトリとして設定しますが、これはディレクトリを開いたときも
適用されます。つまり、autochdir によってファイル (それがディレクトリであって
も) が置かれているディレクトリがカレントディレクトリとして設定されてしまいま
す。

NETRW 設定ウィンドウ                           netrw-settings-window {{{2

NetrwSettings.vim プラグインのコマンド
        :NetrwSettings
を実行すると、netrw の設定変数が表示されたウィンドウが表示されます。値を編集し
てファイルを保存すると設定が反映されます。それぞれの変数の上で "?" を押すとそ
の変数のヘルプが表示されます。

(参照: netrw-browser-var netrw-protocol netrw-variables)


==============================================================================
ファイルを取得する                             netrw-obtain netrw-O {{{2

マークされたファイルがない場合:

    リモートディレクトリを表示しているとき、ファイル名の上で O を押すことで
    ファイルを取得できます (ローカルマシンにファイルがコピーされる。編集は開始
    されない)。

マークされたファイルがある場合:

    マークされたファイルが取得されます (ローカルマシンにファイルがコピーされ
    る。編集は開始されない)。

この操作は ftp と scp でサポートされています  (ブラウジングが動作しているなら
問題なく使えるはずです)。ステータスラインの右側に "Obtaining filename" のよう
なメッセージが表示されます。ファイル転送が完了するとステータスラインは元に戻り
ます。

ローカルマシンのファイルを "取得" することもできます。<.vimrc> で
g:netrw_keepdir が 0 に設定されていなければ、Netrw では Vim のカレントディレ
クトリとは別のディレクトリを表示できます。ローカルブラウザーでファイルを選択
(ファイル名の上にカーソルを移動) し、"O" を押すことで、ファイルを "取得" (Vim
のカレントディレクトリにコピー) できます。

関連項目:
 * カレントディレクトリを確認するには: :pwd 参照。
 * ブラウザーで表示しているディレクトリをカレントディレクトリにしたい場合は:
   netrw-cd 参照。
 * ブラウザーで表示しているディレクトリをカレントディレクトリに自動的にしたい
   場合は: g:netrw_keepdir 参照。


                                        netrw-newfile netrw-createfile
                                                        netrw-%
NETRW のカレントディレクトリで新しいファイルを作成する {{{2

netrw のカレントディレクトリで新しいファイルを作成するには "%" を押します。
ファイル名を入力するためのプロンプトが表示されます。指定した名前の空のファイル
が netrw のカレントディレクトリ (b:netrw_curdir) に作成されます。

Lexplore (netrw-:Lexplore) が使用されている場合、新しいファイルは
g:netrw_chgwin ウィンドウで生成されます。

関連項目:               netrw-d


プレビューウィンドウ                   netrw-p netrw-preview {{{2

ファイルの上で "p" キーを押すと、そのファイルをプレビューウィンドウで開くこと
ができます。ブラウザーウィンドウとは別にファイルを表示するウィンドウが作成され
ます (:pedit参照。カーソルは移動しません)。初期設定ではウィンドウは水平分割
されます。g:netrw_preview を設定することで垂直分割に変更できます。

netrw を次のように設定すると便利かもしれません:

        let g:netrw_preview   = 1
        let g:netrw_liststyle = 3
        let g:netrw_winsize   = 30

これは:

        1. ファイルのプレビューを垂直分割で開く。
        2. デフォルトの一覧表示スタイルを "tree" にする。
        3. 垂直分割でプレビューウィンドウを開いたときに、ディレクトリの一覧表
           示ウィンドウは列の幅の 30% しか使わないので、残りの領域をプレビュー
           ウィンドウの表示に使用できる。

        関連: もしあなたがこのアイデアを気に入るようなら、
              :Lexplore (netrw-:Lexplore) や g:netrw_chgwin にも
              興味を持つでしょう。

参照: g:netrw_chgwin netrw-P 'previewwindow' CTRL-W_z :pclose


以前のウィンドウ                               netrw-P netrw-prvwin {{{2

カーソル下のファイル/ディレクトリを以前の (最後にアクセスした) ウィンドウ
(:he CTRL-W_p) で開くには、"P" を押します。ウィンドウが 1 つしかない場合は、
新しいウィンドウが水平分割 (初期設定) で作成されます。

ウィンドウが複数ある場合は、以前のウィンドウを使ってファイル/ディレクトリが開
かれます。以前のウィンドウで表示されているバッファに未保存の変更があり、その
バッファを表示しているウィンドウが 1 つだけの場合、バッファを保存するかどうか
を尋ねるプロンプトが表示されます (yes, no, または cancel)。

関連アクション netrw-cr netrw-o netrw-t netrw-v
関連設定変数:
   g:netrw_alto    分割の方向 (上/下) を制御
   g:netrw_altv    分割の方向 (右/左) を制御
   g:netrw_preview 分割の方向 (水平/垂直) を制御
   g:netrw_winsize 初期サイズを制御

参照: g:netrw_chgwin netrw-p


一覧を更新する         netrw-refresh netrw-ctrl-l netrw-ctrl_l {{{2

ローカル/リモートのディレクトリのファイル一覧は、ctrl-l (<c-l>) を押すか、一覧
の ./ の上で <cr> を押すことで更新できます。":e ." でローカルディレクトリを更
新することもできます。


ソートの順番を逆にする netrw-r netrw-reverse {{{1

"r" キーを押すことでソートの順番を昇順/降順に切り替えることができます。

関連項目:  netrw-s
関連設定: g:netrw_sort_direction


ファイルの名前を変更する       netrw-move netrw-rename netrw-R {{{2

マークされたファイルがない場合: (netrw-mf 参照)

    移動 (名前変更) したいファイル/ディレクトリにカーソルを移動して "R" を押し
    ます。プロンプトが表示されるのでファイル/ディレクトリの移動先を入力してく
    ださい。"V" コマンド (ビジュアル選択) で複数の行を選択して "R" を使うこと
    もできます。それぞれのファイルに対して、リネームしたいファイル名を
    尋ねられます。

マークされたファイルがある場合: (netrw-mf 参照)

    マークされたファイルを移動 (名前変更) します。プロンプトが表示されるので
    ファイル/ディレクトリの移動先を入力してください。

    もしあなたが "s/frompattern/topattern/" と入力したら、マークファイルリスト
    のそれぞれのファイル名を取得し、置換を適用し、ファイル名を変更します。
    例:

        mr  [質問: *.c と入力]
        R   [質問: s/^\(.*\)\.c$/\1.cpp/ と入力]

    この例ではすべての *.c ファイルを *.cpp に変更します。Netrw はローカルの
    ファイルを確認無しに上書きすることを防ぎますが、リモートは防ぎません。

    ctrl-Xはファイルをリネームするのに特別な意味を持ちます:

        <c-x>      : 単一の ctrl-x は netrw に最後の '/' と ctrl-x
                     の間の分割の位置を伝えます。

        <c-x><c-x> : 連続した ctrl-x は2つの ctrl-x の前のすべての分割を
                     無視します。

    警告:

    Note: ファイルの移動はコピーと比べて危険です。なぜなら、リモートのファイル
    を "移動" するとき、実際には コピー + 削除 を実行しているからです。コピー
    が失敗して削除が成功するとファイルが失われます。
    自己責任で使ってください。

g:netrw_rename_cmd 変数でリモートの名前変更のコマンドを指定できます。初期設定
は次のとおり:

        ssh HOSTNAME mv

Thin 形式を使用している場合は、V (linewise-visual) で選択することで複数のファ
イル/ディレクトリを名前変更できます。

コマンドラインの編集方法の更なる情報については cmdline-editing を参照してく
ださい。特に、R コマンドと組み合わせた <ctrl-f> (コマンドラインウィンドウの編
集を開始する) と <ctrl-c> (カーソルの下でコマンドラインを使用する) が便利であ
ることに気付くでしょう。


ソートの種類を変更する         netrw-s netrw-sort {{{2

ファイル一覧は名前、時間、ファイルサイズのいずれかでソートできます。"s" マップ
を使うことでソートの種類を順番に切り替えることができます。ファイルの一覧は自動
的に更新されます。

関連項目:  netrw-r netrw-S
関連設定: g:netrw_sort_by g:netrw_sort_sequence


                                netrw-editwindow netrw-C netrw-:NetrwC
ファイルを開くウィンドウを指定する {{{2

ファイルを開くウィンドウを指定するには、netrw ウィンドウで "C" マップを押す
か、:NetrwC [win#] コマンドを使うか、g:netrw_chgwin にウィンドウ番号を設定しま
す。続いてファイルを開く (netrw-cr) と、指定されたウィンドウが使われます。

        * C だけを押すと、続いて netrw-cr でファイルを開くときにカレントウィ
          ンドウが使われます。

        * [count]C カウントを指定すると、続いて netrw-cr でファイルを開くと
          きに指定された番号のウィンドウが使用されます。

        * :NetrwC は g:netrw_chgwin をカレントウィンドウにセットします。

        * :NetrwC win#  は g:netrw_chgwin を指定されたウィンドウ番号に
          セットします。

次のように設定すると
        let g:netrw_chgwin= -1
デフォルトの動作に戻すことができます
(つまり、続くファイル選択動作でカレントウィンドウを使う)。

関連項目:                       netrw-cr g:netrw_browse_split
関連設定:                       g:netrw_chgwin


netrw ウィンドウ/エクスプローラーウィンドウを拡大・縮小する    netrw-c-tab {{{2

<c-tab> キーは netrw または :Lexplore ウィンドウの幅をトグルします。しかしこ
れは g:netrw_usetab が存在し 非0 である場合のみ有効です (また、もちろんあな
たの端末が <c-tab> と <tab> を区別できる場合のみ)。

  * もし現在のウィンドウが netrw ウィンドウなら、その幅をトグルします
    (g:netrw_wiwと元の幅を行き来します)

  * 次に、もし現在のタブに :Lexplore ウィンドウが存在するなら、その幅をトグ
    ルします

  * 最後に、:Lexplore ウィンドウを持ち上げます

もし g:netrw_usetab が存在し 非0 の場合、もしくはすでに <c-tab> にマッピング
が存在するなら、<c-tab> はマッピングされません。もし <c-tab> 以外にマップされ
ていた場合も同様です: (しかしその場合も g:netrw_usetab をセットしている必要
があります)。

        nmap <unique> (whatever)        <Plug>NetrwShrink

関連項目:                       :Lexplore
関連設定:       g:netrw_usetab


ユーザー定義のマッピング                               netrw-usermaps {{{1

ユーザー定義のマップを作成することができます。
キーマップの文字列と関数名の List を保持する g:Netrw_UserMaps を
指定してください:

        [["keymap-sequence","ExampleUserMapFunc"],...]

netrw が netrw バッファ用のマップを設定する時、もし g:Netrw_UserMaps
が存在するなら、内部関数 netrw#UserMaps(islocal) が呼ばれます。
この関数は g:Netrw_UserMaps のすべての要素を走査します:

        * マップを設定します:
                nno <buffer> <silent> KEYMAP-SEQUENCE
                :call s:UserMaps(islocal,"ExampleUserMapFunc")
        * その関数からの戻り値が文字列の "refresh" ならリフレッシュします。
        * もしその戻り値の文字列が "" ではない場合、その文字列は
          実行されます (:exe 戻り値)
        * もし戻り値が List なら、上記の結果に対する2つのアクションは List の
          中のすべての文字列に行われます。

ユーザー関数には1つの引数が渡されます。以下のように

        fun! ExampleUserMapFunc(islocal)

もしそれがローカルディレクトリの呼び出しなら a:islocal は 1、
もしそれがリモートディレクトリの呼び出しなら a:islocal は 0 になります。

                                netrw-call  netrw-expose  netrw-modify
netrw#Expose("varname")              netrw の (スクリプトローカルな)
                                     内部変数にアクセスできます。
netrw#Modify("varname",newvalue)     netrw の内部変数を変更できます。
netrw#Call("funcname"[,args])        netrw の内部関数を指定の引数で
                                     呼び出すことができます。

例: netrw のマークファイルリストのコピーを取得します:

        let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")

例: netrw のマークファイルリストの値を変更します:

        call netrw#Modify("netrwmarkfilelist",[])

例: netrw のマークファイルリストを gu マッピング経由でクリアします:
    " ExampleUserMap: {{{2
    fun! ExampleUserMap(islocal)
      call netrw#Modify("netrwmarkfilelist",[])
      call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
      let retval= ["refresh"]
      return retval
    endfun
    let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]


10. 問題と対策                                          netrw-problems {{{1

        (何かフィードバックがあればこの項に追加していきます)
        (netrw-debug も参照)
                                                                netrw-p1
        P1. Windows を使っています。ftp を使ったブラウジングで時間やサイズで   {{{2
            ソートできません。- あるいは - リモートシステムが Windows サーバー
            なんですが、時間やサイズでソートできません。

                Windows の ftp の ls には最低限の機能しかありません (ソートオ
                プションが使えない等)。注釈文字を得るための -F もサポートされ
                ていません (例えば ABC がディレクトリなら ABC/ になる機能)。
                そのため、Netrw は "dir" を使って thin と long スタイルの一覧
                を取得します。あなたの ftp がこれらの機能をサポートしているな
                ら、<.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"

                あるいは、あなたの Windows に cygwin がインストールされている
                なら、<.vimrc> に次の設定を書いてください:

                        let g:netrw_cygwin= 1

                この問題はリモートシステムが Windows だった場合にも起こりま
                す。その場合、以上のように g:netrw_ftp_[time|size}list_cmd を
                設定しても、リモートシステムは期待した動作をしないでしょう。


                                                                netrw-p2
        P2. rcp://user@host/ (あるいは他の ftp 以外のプロトコル) を指定したの  {{{2
            に netrw は ssh を使おうとする。

                Netrw はリモートディレクトリを表示する方法として ssh と ftp を
                使います。ftp 以外が指定された場合は ssh が使われます。(ファイ
                ル一覧取得ではなく) ファイルをダウンロードするときに、指定され
                たプロトコルが使われます。

                                                                netrw-p3
        P3. ファイル一覧の表示スタイルを long をデフォルトにしたい。           {{{2

                .vimrc に次のコマンドを書いてください:

                        let g:netrw_liststyle= 1

                他にもいろいろカスタマイズできます。netrw-browser-var を参照
                してください。

                                                                netrw-p4
        P4. ローカルブラウザーでの時間の表示がおかしい                         {{{2

                あなたのシステムの strftime() は "%c" を指定したときに "Sun
                Apr 27 11:49:23 1997" のような出力を返しますか? そうでない場
                合は、"man strftime" を実行して適切なオプションを確認してくだ
                さい。そして、.vimrc にその設定を書いてください:

                        let g:netrw_timefmt= "%X"  (X は調べたオプション)

                                                                netrw-p5
        P5. ブラウザーで移動するごとにカレントディレクトリを設定したい。       {{{2

            次の設定を .vimrc に書いてください:

                let g:netrw_keepdir= 0

                                                                netrw-p6
        P6. ファイル名に中国語 (などの非 ascii) の文字が使われていると、netrw  {{{2
            (Explore, Sexplore, Hexplore, etc) でそれが表示されない。

                (Vim メーリングリストでの Wu Yongwei 氏による回答)
                問題は確認できました。936 以外のコードページを使っていません
                か? Windows の Unicode版 API に対応していない他のアプリケー
                ション同様、どうやら Vim ではカレントコードページの文字以外は
                使えないようです。これは OS の問題です。最近の Linux ディスト
                リビューションのような UTF-8 ロケールが使えるシステムではこの
                ような問題は起こらないでしょう。

                (こういうのが utf-8 が推奨される理由の 1 つです)

                                                                netrw-p7
        P7. "ssh is not executable on your system" (ssh という実行可能ファイル {{{2
            がない) って表示されるんだけど、どうすればいいの?

                (Dudley Fox) 私の知る限りほとんどの windows ユーザーは ssh と
                して putty を使っています。putty はフリーの ssh/telnet アプリ
                ケーションです。詳しくは url を参照してください。

                http://www.chiark.greenend.org.uk/~sgtatham/putty/

                (Marlin Unruh) このプログラムは私のところでも動作しました。実
                行可能ファイル 1 つなので、Windows\System32 フォルダにコピーし
                てショートカットを作っておくといいかも。

                (Dudley Fox) plink も試してみるといいでしょう。こっちの方が目
                的にあっていると思います。plink は putty スイートに含まれてい
                ます。

           http://the.earth.li/~sgtatham/putty/0.58/htmldoc/Chapter7.html#plink

                (Vissale Neang) OpenSSH の windows 版もあります。次の場所から
                入手可能:

                http://sshwindows.sourceforge.net/

                これは Cygwin をインストールしなくても使えます。

                (Antoine Mechelynck) Windows 環境でネイティブに動く Unix プロ
                グラムが個別に欲しい場合は sourceforge の GnuWin32 プロジェク
                トのものがいいと思います:

                    http://gnuwin32.sourceforge.net/

                Cygwin が Windows の上に Unix 仮想マシンを作っているのと違い、
                GnuWin32 は Windows のシステムコールで Unix のユーティリティを
                実装しています。なので、それらのプログラムは cmd.exe と相性が
                いいです。

                (dave) WinSCP を使ってサーバーに接続する方法もあります。
                Preferences > Editors で gvim をエディタとして設定する:

                        - "Add..." をクリック
                        - 外部エディタを設定 (パスは適当に調節してください。
                          クォートを付けて最後に !.! を付ける):
                            "c:\Program Files\Vim\vim82\gvim.exe" !.!
                        - 設定画面の下の方を見てファイルタイプが
                          {asterisk}.{asterisk} (すべてのファイル)、または自分
                          の設定したい値になっているのを確認する (cec:
                          {asterisk} は * に読み替えてください。こういう風に書
                          かないとヘルプのタグとして認識されてしまうので...)。
                        - 設定がリストボックスの一番上にくるようにする (なって
                          いない場合は設定をクリックして "Up" をクリックする)
                Norton Commander スタイルを使っている場合は <F4> を押すことで
                ファイルをローカルにコピーしたものをgvimで開くことができます。

                (Vit Gottwald) パブリックキーとプライベートキーを生成してパブ
                リックキーをサーバーに保存する方法:
  http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-gettingready
                        (8.3 Getting ready for public key authentication)

                'pscp' でプライベートキーを使う方法:

  http://www.chiark.greenend.org.uk/~sgtatham/putty/0.60/htmldoc/Chapter5.html
                        (5.2.4 Using public key authentication with PSCP)

                (Ben Schmidt) cwRsync に付属している ssh が便利だと思います。
                私は最近これを見つけてほとんどの Windows システムに cwRsync か
                cwRsyncServer をインストールしました。ssh だけ使いたい場合は同
                じ人が配布している COPSSH を使った方がいいかもしれません。こっ
                ちには多分 sftp とかも入ってると思います。cwRsync には入ってな
                いのでよくわかりませんが。

                (cec) 以上の提案を実行する場合は以下の変数を .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

                最初の変数 (g:netrw_ssh_cmd) が一番重要です。他の変数は
                g:netrw_ssh_cmd の文字列を使って初期値が設定されます。

                                                netrw-p8 netrw-ml_get
        P8. ブラウザーでディレクトリを変更するとなんか変になる。ml_get エラー  {{{2
            が表示されて、vim を kill するしかなくなる。どうすればいいの?

                Netrw ではディレクトリを表示しているバッファに対してスワップ
                ファイルが作成されないようにしていますが、その影響で、システム
                によっては ml_get エラーが発生することがあります。<.vimrc> で
                g:netrw_use_noswf を 0 に設定してみてください:
                        let g:netrw_use_noswf= 0

                                                                netrw-p9
        P9. "[something] is a directory" と表示されて "Press ENTER or type    {{{2
             command to continue" というプロンプトが出るのがいやなんだけど...

                "[something] is a directory" プロンプトは (netrw ではなく) Vim
                によって出力されていて、この表示をなくす方法はありません。
                cmdheight が 1 (初期設定) の場合にこのメッセージによって
                "Press ENTER..." プロンプトが表示されます。hit-enter を読ん
                でください。'cmdheight' を 2 (かそれ以上) に設定するといいか
                もしれません。

                                                                netrw-p10
        P10. ウィンドウを二分割して、左の細いウィンドウをブラウザー表示に、右  {{{2
             のウィンドウをファイル編集用にしたいんだけど、どうすればいいの?

             おそらく netrw を横のウィンドウで表示させたいのではないでしょう
             か。もしそうなら、":[N]Lexplore" が目的のものかと思います。省略可
             能な "[N]" で :Lexplorer ウィンドウの起動時の幅を指定することがで
             きます (設定値については g:netrw_winsize を参照)。

             以前の解決法:

                * <.vimrc> に次の設定を書く:
                        let g:netrw_altv = 1
                * カレントディレクトリを ":e ." で開く
                * ファイルを選択して v を押す
                * 適当にウィンドウのサイズを変更する (CTRL-W_< と CTRL-W_>
                  参照)。gvim を使っている場合はウィンドウの区切りをマウスでド
                  ラッグすることでもサイズを変更できる。
                * 他のファイルを開く場合は ctrl-w h で netrw ブラウザーに戻り、
                  ファイルを選択し、P を押す (CTRL-W_h と netrw-P 参照)。
                  gvim を使っている場合はブラウザーウィンドウで <leftmouse> 押
                  してから開きたいファイルを <middlemouse> で選択する。

                                                                netrw-p11
        P11. ディレクトリが正しくソートされない、一覧のファイル名になんか変な  {{{2
             文字が付く、wide 表示でファイルが正しく整列されない、...。

             おそらくエンコーディングの問題です。私は普段 utf-8 を使っています
             が、しかし ascii文字 (32-126の範囲のバイト) しか使っていません。
             マルチバイトエンコーディングでは 1 つの文字を 2 バイトかそれ以上
             のバイトで表現します。g:netrw_sepchr や g:netrw_xstrlen の設
             定を変更してみてください。

                                                                netrw-p12
        P12. Windows + putty + ssh を使っています。ブラウズするときにディレク  {{{2
             トリの末尾に "/" が付いていないため、netrw はそれをファイルとして
             転送しようとするので、サブディレクトリをブラウズできません。なん
             とかなりませんか?

             (mikeyao) Windows 環境で vim を ssh と putty で使いたいなら、
             plink と pscp/psftp の組み合わせを試してみてください。pscp/psftp
             は接続に、plink はサーバー上でのコマンドの実行 (例えば 'ls' を
             使ってファイルとディレクトリの一覧を取得) に使用されます。

             私は次のように設定して使っています:

            " ファイルの一覧取得用。一番大事な設定。これを設定しないと空のバッ
            " ファが表示される
            let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
            " putty のディレクトリのシステムパスに追加していない場合は
            " scp/sftp コマンドを指定する必要がある。例:
            "let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
            "let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"

                                                                netrw-p13
        P13. scp/ssh 接続で Nwrite の速度をスピードアップしたいんだけど?      {{{2
             (Thomer M. Gil)

             ssh の ControlMaster と ControlPath を試してみてください
             (ssh_config のマンページ参照)。1 つのネットワーク接続を複数の ssh
             接続で共有できます。これにより、ファイル書き込みごとの暗号ハンド
             シェイクを省略でき、時には一桁くらい速くなります。
             ( http://thomer.com/howtos/netrw_ssh.html 参照)
             (取り込み許可取得済み)

             ~/.ssh/config に以下の設定を追加してください:

                 # "*" は目的のホスト名に変更してください
                 Host *
                   ControlMaster auto
                   ControlPath /tmp/%r@%h:%p

             そして、ホストに ssh 接続し、それを実行したままにしておきます:

                 ssh -N host.domain.com

             そして、Vim の Netrw でファイルを開きます。快適な速度をお楽しみく
             ださい:

                vim scp://host.domain.com//home/user/.bashrc

                                                                netrw-p14
        P14. ファイルやディレクトリを開くのにシングルクリックじゃなくてダブル  {{{2
             クリックを使うようにするにはどうすればいいの?  (Ben Fritz)

             まず、netrw のマップを無効化します
                    let g:netrw_mousemaps= 0
             そして、netrw バッファのみで使うマップを
             $HOME/.vim/after/ftplugin/netrw.vim で定義します:
                    nmap <buffer> <2-leftmouse> <CR>
             Note: g:netrw_mousemaps をゼロに設定すると、<leftmouse> だけでな
             く、netrw のマウス関連のマップはすべて無効化されます。
             (g:netrw_mousemaps 参照)

                                                                netrw-p15
        P15. リモートファイルを開くと (例: :e ftp://hostname/path/file)、      {{{2
             Windows では E303 メッセージが出てスワップファイルが開けないと
             言われる。

             (romainl) もしかして保護ディレクトリの上で Vim を起動していません
             か。$HOME やその他の書き込み可能なディレクトリで Vim を起動してく
             ださい。

                                                                netrw-p16
        P16. Netrw が自身のバッファを閉じてしまう。                            {{{2
             どうやって問題を再現させればいいの?
                1. :Explore する、ディレクトリを歩く、ファイルを開く
                2. :Explore する、別のファイルを開く
                3. ステップ1で開いたバッファが閉じる
            上記であなたが期待している出力は何でしょうか?
            また、あなたの環境では何が表示されますか?
                私は両方のバッファが存在していて欲しいけど、
                実際は最後のバッファだけが残ります。

           (Lance) .vimrc に書かれた "set autochdir" が原因です。
           (drchip) 'acd' オプションをセットすると再現できました。
                    バッファが正しく閉じられていないように見えます。
                    ":ls!" するとそれらの閉じられていないバッファが
                    表示されます (":ls" では表示されません)。

                                                                netrw-P17
        P17. ssh でのみ到達可能なサーバー上のファイルを                        {{{2
             ローカルで編集するにはどうしたらいいの?
             以下を参照してください。
             http://stackoverflow.com/questions/12469645/
             "Using Vim to Remotely Edit A File on ServerB Only
              Accessible From ServerA"

                                                                netrw-P18
        P18. ディレクトリのファイル一覧表示の際に行番号を表示するには          {{{2
             どうしたらいいの?
                g:netrw_bufsettings によって netrw バッファの設定を
                制御できます。以下を .vimrc に書いてみてください。
                  let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
                もし相対的な行番号を表示したかったら、代わりにこれを
                試してください。
                  let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"

                                                                netrw-P19
        P19. ディレクトリのファイル一覧を表示して gvim を起動できますか?      {{{2
                次のコードを .vimrc に書いてみてください:
                    augroup VimStartup
                      au!
                      au VimEnter * if expand("%") == "" && argc() == 0 &&
                      \ (v:servername =~ 'GVIM\d*' || v:servername == "")
                      \ | e . | endif
                    augroup END
                もしよければ "e" の代わりに Lexplore を使うこともできます。こ
                のコードは client-server が有効化されているのを仮定しています
                (例えば "huge" バージョンの vim)。

                                                                netrw-P20
        P20. アクセント記号付き文字を含んだディレクトリ (またはファイル)を作成 {{{2
                したけど、netrw でそのディレクトリに入ったり、そのファイルを読
                み込んだりできません:

                おそらくあなたのシェルか o/s が、あなたの vim が使っているエン
                コーディングと異なるエンコーディングを使っていることが原因では
                ないでしょうか。将来 vim に "systemencoding" をサポートさせる
                パッチがこれを解決してくれると思われます。今は netrw に適切な
                エンコーディングを使わせるようにしてください。例えば:

                        au FileType netrw set enc=latin1

                                                                netrw-P21
        P21. ファイルをコピーもしくは移動させようとするとエラーが出ます:       {{{2

                **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!

             何がおかしいの?

             Netrw はコピーや移動を行うためにいくつかのシステム用コマンドを
             持っています (次を参照

                 g:netrw_localcopycmdg:netrw_localmovecmd,
                 g:netrw_mkdir_cmd)。

            もしかしたら .vimrc でそれらを適切に設定して、デフォルトのコマンド
            を 1 つかそれ以上調整する必要があるかもしれません。またその他に問
            題を難しくしている原因としてこれらのコマンドは vim のローカルディ
            レクトリを使用します。それは netrw でブラウズしているディレクトリ
            と同じではないかもしれません (g:netrw_keepdir 参照)。


==============================================================================
11. Netrw をデバッグする                                netrw-debug {{{1

ステップ1: あなたが直面した問題が以下の netrw の最新版(開発版)のコピーを取得す
ることで解決するか確認してください:

        http://www.drchip.org/astronaut/vim/index.html#NETRW

<netrw.vim> スクリプトはたいていは次のような場所にあります:

        /usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
        /usr/local/share/vim/vim8x/autoload/netrw.vim

これらは起動時に自動的に読み込まれます (:set nocp を想定)。
新しい netrw を次の場所にインストールしてください。

        $HOME/.vim/plugin/netrwPlugin.vim
        $HOME/.vim/autoload/netrw.vim

ステップ2: netrw の最新版をインストールしたら、その問題が本当に netrw によるも
のか確認してください。netrw.vimrc という次の内容のファイルを作成してください。

        set nocp
        so $HOME/.vim/plugin/netrwPlugin.vim

次に netrw を次のように起動してください:

        vim -u netrw.vimrc --noplugins -i NONE [他にパスがあればここに追加]

必要な netrw のコマンドを実行し、問題がまだ起きていることを確認してください。
この手順は個人の .vimrc の設定、.viminfo ファイル、他のプラグインによる問題を
回避するためです。もし問題が再現しなくなったら、あなたの .vimrc のどの設定が
netrw かあるいは関与している他のプラグインと衝突しているかを見極める必要があり
ます。

ステップ3: 問題がまだ起きているようなら、netrw からデバッグトレースを取得して
ください:

        1. <Decho.vim> スクリプトを入手してください:

             http://www.drchip.org/astronaut/vim/index.html#DECHO
           or
             http://vim.sourceforge.net/scripts/script.php?script_id=120

          Decho.vim は "vimball" の形で提供されています。vimball-intro参照。
          Decho.vba.gz ファイルを編集してから source するには:

                vim Decho.vba.gz
                :so %
                :q

        2. netrw デバッグでの追跡を有効にし、<netrw.vim> ファイルを編集してく
        ださい:

                vim netrw.vim
                :DechoOn
                :wq

           通常のデバッグなし状態に戻すには再び <netrw.vim> を編集します

                vim netrw.vim
                :DechoOff
                :wq

           このコマンドは <Decho.vim> で定義されており、すべての Decho デバッ
           グステートメント (Dfunc(), Dret(), Decho(), Dredir()) をコメントア
           ウトします。

        3. Vim を起動して、ネットワークファイルを開いたりブラウジングしたりし
           て問題を再現してください。<netrw.vim> がネットワーク上のファイルを
           読み込んだり書き込んだりする過程が別のタブか、サーバー Vim のウィン
           ドウに出力されます。

           netrw.vimrc ファイルに Decho プラグインを入れるには:

                set nocp
                so $HOME/.vim/plugin/Decho.vim
                so $HOME/.vim/plugin/netrwPlugin.vim

           続けて次のように vim を動かします

                vim -u netrw.vimrc --noplugins -i NONE [some path here]

           こうしてオプションや他のプラグインとの絡みを回避できます。

           ファイルに保存するには: linux 下では、出力がリモートサーバーのウィ
           ンドウに分割されるので、ファイルに保存するには次のようにします

                :w! DBG

           clientserver をサポートしない vim では、デバッグ出力は別のタブに出
           して:

                :tabnext
                :set bt=
                :w! DBG


           加えて、次のコマンドも使うと助けになります

                :Dsep <command>

           <command> は次にあなたがタイプするコマンドです。これによって、デ
           バッグ出力のどの部分がどのコマンドに対応するかを関連付けるのが簡単
           になります。

           バグレポートについては、bugs を参照してください。
==============================================================================
12. 変更履歴                                            netrw-history {{{1

        v172:   Sep 02, 2021    * (Bram Moolenaar) Changed "l:go" to "go"
                                * (Bram Moolenaar) no need for "b" in
                                  netrw-safe guioptions
                Nov 15, 2021    * removed netrw_localrm and netrw_localrmdir
                                  references
                Aug 18, 2022    * (Miguel Barro) improving compatibility with
                                  powershell
        v171:   Oct 09, 2020    * included code in s:NetrwOptionsSafe()
                                  to allow 'bh' to be set to delete when
                                  rather than hide when g:netrw_fastbrowse
                                  was zero.
                                * Installed g:netrw_clipboard setting
                                * Installed option bypass for 'guioptions'
                                  a/A settings
                                * Changed popup_beval() to popup_atcursor()
                                  in netrw#ErrorMsg (lacygoill). Apparently
                                  popup_beval doesn't reliably close the
                                  popup when the mouse is moved.
                                * VimEnter() now using win_execute to examine
                                  buffers for an attempt to open a directory.
                                  Avoids issues with popups/terminal from
                                  command line. (lacygoill)
                Jun 28, 2021    * (zeertzjq) provided a patch for use of
                                  xmap,xno instead of vmap,vno in
                                  netrwPlugin.vim. Avoids entanglement with
                                  select mode.
                Jul 14, 2021    * Fixed problem addressed by tst976; opening
                                  a file using tree mode, going up a
                                  directory, and opening a file there was
                                  opening the file in the wrong directory.
                Jul 28, 2021    * (Ingo Karkat) provided a patch fixing an
                                  E488 error with netrwPlugin.vim
                                  (occurred for vim versions < 8.02)
        v170:   Mar 11, 2020    * (reported by Reiner Herrmann) netrw+tree
                                  would not hide with the ^\..* pattern
                                  correctly.
                                * (Marcin Szamotulski) NetrwOptionRestore
                                  did not restore options correctly that
                                  had a single quote in the option string.
                Apr 13, 2020    * implemented error handling via popup
                                  windows (see popup_beval())
                Apr 30, 2020    * (reported by Manatsu Takahashi) while
                                  using Lexplore, a modified file could
                                  be overwritten.  Sol'n: will not overwrite,
                                  but will emit an E37 (although one cannot
                                  add an ! to override)
                Jun 07, 2020    * (reported by Jo Totland) repeatedly invoking
                                  :Lexplore and quitting it left unused
                                  hidden buffers.  Netrw will now set netrw
                                  buffers created by :Lexplore to 'bh'=wipe.
        v169:   Dec 20, 2019    * (reported by amkarthik) that netrw's x
                                  (netrw-x) would throw an error when
                                  attempting to open a local directory.
        v168:   Dec 12, 2019    * scp timeout error message not reported,
                                  hopefully now fixed (Shane Xb Qian)
        v167:   Nov 29, 2019    * netrw does a save&restore on @* and @+.
                                  That causes problems with the clipboard.
                                  Now restores occurs only if @* or @+ have
                                  been changed.
                                * netrw will change @* or @+ less often.
                                  Never if I happen to have caught all the
                                  operations that modify the unnamed
                                  register (which also writes @*).
                                * Modified hiding behavior so that "s"
                                  will not ignore hiding.
        v166:   Nov 06, 2019    * Removed a space from a nmap for "-"
                                * Numerous debugging statement changes
        v163:   Dec 05, 2017    * (Cristi Balan) reported that a setting ('sel')
                                  was left changed
                                * (Holger Mitschke) reported a problem with
                                  saving and restoring history.  Fixed.
                                * Hopefully I fixed a nasty bug that caused a
                                  file rename to wipe out a buffer that it
                                  should not have wiped out.
                                * (Holger Mitschke) amended this help file
                                  with additional g:netrw_special_syntax
                                  items
                                * Prioritized wget over curl for
                                  g:netrw_http_cmd
        v162:   Sep 19, 2016    * (haya14busa) pointed out two syntax errors
                                  with a patch; these are now fixed.
                Oct 26, 2016    * I started using mate-terminal and found that
                                  x and gx (netrw-x and netrw-gx) were no
                                  longer working.  Fixed (using atril when
                                  $DESKTOP_SESSION is "mate").
                Nov 04, 2016    * (Martin Vuille) pointed out that @+ was
                                  being restored with keepregstar rather than
                                  keepregplus.
                Nov 09, 2016    * Broke apart the command from the options,
                                  mostly for Windows.  Introduced new netrw
                                  settings: g:netrw_localcopycmdopt
                                  g:netrw_localcopydircmdopt
                                  g:netrw_localmkdiropt
                                  g:netrw_localmovecmdopt
                Nov 21, 2016    * (mattn) provided a patch for preview; swapped
                                  winwidth() with winheight()
                Nov 22, 2016    * (glacambre) reported that files containing
                                  spaces weren't being obtained properly via
                                  scp.  Fix: apparently using single quotes
                                  such as with 'file name' wasn't enough; the
                                  spaces inside the quotes also had to be
                                  escaped (ie. 'file\ name').
                                * Also fixed obtain (netrw-O) to be able to
                                  obtain files with spaces in their names
                Dec 20, 2016    * (xc1427) Reported that using "I" (netrw-I)
                                  when atop "Hiding" in the banner also caused
                                  the active-banner hiding control to occur
                Jan 03, 2017    * (Enno Nagel) reported that attempting to
                                  apply netrw to a directory that was without
                                  read permission caused a syntax error.
                Jan 13, 2017    * (Ingo Karkat) provided a patch which makes
                                  using netrw#Call() better.  Now returns
                                  value of internal routines return, for example.
                Jan 13, 2017    * (Ingo Karkat) changed netrw#FileUrlRead to
                                  use :edit instead of :read.  I also
                                  changed the routine name to netrw#FileUrlEdit.
                Jan 16, 2017    * (Sayem) reported a problem where :Lexplore
                                  could generate a new listing buffer and
                                  window instead of toggling the netrw display.
                                  Unfortunately, the directions for eliciting
                                  the problem weren't complete, so I may or
                                  may not have fixed that issue.
                Feb 06, 2017    * Implemented cb and cB.  Changed "c" to "cd".
                                  (see netrw-cbnetrw-cB, and netrw-cd)
                Mar 21, 2017    * previously, netrw would specify (safe) settings
                                  even when the setting was already safe for
                                  netrw.  Netrw now attempts to leave such
                                  already-netrw-safe settings alone.
                                  (affects s:NetrwOptionRestore() and
                                  s:NetrwSafeOptions(); also introduced
                                  s:NetrwRestoreSetting())
                Jun 26, 2017    * (Christian Brabandt) provided a patch to
                                  allow curl to follow redirects (ie. -L
                                  option)
                Jun 26, 2017    * (Callum Howard) reported a problem with
                                  :Lexpore not removing the Lexplore window
                                  after a change-directory
                Aug 30, 2017    * (Ingo Karkat) one cannot switch to the
                                  previously edited file (e.g. with CTRL-^)
                                  after editing a file:// URL.  Patch to
                                  have a "keepalt" included.
                Oct 17, 2017    * (Adam Faryna) reported that gn (netrw-gn)
                                  did not work on directories in the current
                                  tree
        v157:   Apr 20, 2016    * (Nicola) had set up a "nmap <expr> ..." with
                                  a function that returned a 0 while silently
                                  invoking a shell command.  The shell command
                                  activated a ShellCmdPost event which in turn
                                  called s:LocalBrowseRefresh().  That looks
                                  over all netrw buffers for changes needing
                                  refreshes.  However, inside a :map-<expr>,
                                  tab and window changes are disallowed.  Fixed.
                                  (affects netrw's s:LocalBrowseRefresh())
                                * g:netrw_localrmdir not used any more, but
                                  the relevant patch that causes delete() to
                                  take over was #1107 (not #1109).
                                * expand() is now used on g:netrw_home;
                                  consequently, g:netrw_home may now use
                                  environment variables
                                * s:NetrwLeftmouse and s:NetrwCLeftmouse will
                                  return without doing anything if invoked
                                  when inside a non-netrw window
                Jun 15, 2016    * gx now calls netrw#GX() which returns
                                  the word under the cursor.  The new
                                  wrinkle: if one is in a netrw buffer,
                                  then netrw's s:NetrwGetWord().
                Jun 22, 2016    * Netrw was executing all its associated
                                  Filetype commands silently; I'm going
                                  to try doing that "noisily" and see if
                                  folks have a problem with that.
                Aug 12, 2016    * Changed order of tool selection for
                                  handling http://... viewing.
                                  (Nikolay Aleksandrovich Pavlov)
                Aug 21, 2016    * Included hiding/showing/all for tree
                                  listings
                                * Fixed refresh (^L) for tree listings
        v156:   Feb 18, 2016    * Changed =~ to =~# where appropriate
                Feb 23, 2016    * s:ComposePath(base,subdir) now uses
                                  fnameescape() on the base portion
                Mar 01, 2016    * (gt_macki) reported where :Explore would
                                  make file unlisted. Fixed (tst943)
                Apr 04, 2016    * (reported by John Little) netrw normally
                                  suppresses browser messages, but sometimes
                                  those "messages" are what is wanted.
                                  See g:netrw_suppress_gx_mesg
                Apr 06, 2016    * (reported by Carlos Pita) deleting a remote
                                  file was giving an error message.  Fixed.
                Apr 08, 2016    * (Charles Cooper) had a problem with an
                                  undefined b:netrw_curdir.  He also provided
                                  a fix.
                Apr 20, 2016    * Changed s:NetrwGetBuffer(); now uses
                                  dictionaries.  Also fixed the "No Name"
                                  buffer problem.
        v155:   Oct 29, 2015    * (Timur Fayzrakhmanov) reported that netrw's
                                  mapping of ctrl-l was not allowing refresh of
                                  other windows when it was done in a netrw
                                  window.
                Nov 05, 2015    * Improved s:TreeSqueezeDir() to use search()
                                  instead of a loop
                                * NetrwBrowse() will return line to
                                  w:netrw_bannercnt if cursor ended up in
                                  banner
                Nov 16, 2015    * Added a <Plug>NetrwTreeSqueeze (netrw-s-cr)
                Nov 17, 2015    * Commented out imaps -- perhaps someone can
                                  tell me how they're useful and should be
                                  retained?
                Nov 20, 2015    * Added netrw-ma and netrw-mA support
                Nov 20, 2015    * gx (netrw-gx) on a URL downloaded the
                                  file in addition to simply bringing up the
                                  URL in a browser.  Fixed.
                Nov 23, 2015    * Added g:netrw_sizestyle support
                Nov 27, 2015    * Inserted a lot of <c-u>s into various netrw
                                  maps.
                Jan 05, 2016    * netrw-qL implemented to mark files based
                                  upon location-lists; similar to netrw-qF.
                Jan 19, 2016    * using - call delete(directoryname,"d") -
                                  instead of using g:netrw_localrmdir if
                                  v7.4 + patch#1107 is available
                Jan 28, 2016    * changed to using winsaveview() and
                                  winrestview()
                Jan 28, 2016    * s:NetrwTreePath() now does a save and
                                  restore of view
                Feb 08, 2016    * Fixed a tree-listing problem with remote
                                  directories
        v154:   Feb 26, 2015    * (Yuri Kanivetsky) reported a situation where
                                  a file was not treated properly as a file
                                  due to g:netrw_keepdir == 1
                Mar 25, 2015    * (requested by Ben Friz) one may now sort by
                                  extension
                Mar 28, 2015    * (requested by Matt Brooks) netrw has a lot
                                  of buffer-local mappings; however, some
                                  plugins (such as vim-surround) set up
                                  conflicting mappings that cause vim to wait.
                                  The "<nowait>" modifier has been included
                                  with most of netrw's mappings to avoid that
                                  delay.
                Jun 26, 2015    * netrw-gn mapping implemented
                                * :Ntree NotADir resulted in having
                                  the tree listing expand in the error messages
                                  window.  Fixed.
                Jun 29, 2015    * Attempting to delete a file remotely caused
                                  an error with "keepsol" mentioned; fixed.
                Jul 08, 2015    * Several changes to keep the :jumps table
                                  correct when working with
                                  g:netrw_fastbrowse set to 2
                                * wide listing with accented characters fixed
                                  (using %-S instead of %-s with a printf()
                Jul 13, 2015    * (Daniel Hahler) CheckIfKde() could be true
                                  but kfmclient not installed.  Changed order
                                  in netrw#BrowseX(): checks if kde and
                                  kfmclient, then will use xdg-open on a unix
                                  system (if xdg-open is executable)
                Aug 11, 2015    * (McDonnell) tree listing mode wouldn't
                                  select a file in a open subdirectory.
                                * (McDonnell) when multiple subdirectories
                                  were concurrently open in tree listing
                                  mode, a ctrl-L wouldn't refresh properly.
                                * The netrw:target menu showed duplicate
                                  entries
                Oct 13, 2015    * (mattn) provided an exception to handle
                                  windows with shellslash set but no shell
                Oct 23, 2015    * if g:netrw_usetab and <c-tab> now used
                                  to control whether NetrwShrink is used
                                  (see netrw-c-tab)
        v153:   May 13, 2014    * added another g:netrw_ffkeep usage {{{2
                May 14, 2014    * changed s:PerformListing() so that it
                                  always sets ft=netrw for netrw buffers
                                  (ie. even when syntax highlighting is
                                  off, not available, etc)
                May 16, 2014    * introduced the netrw-ctrl-r functionality
                May 17, 2014    * introduced the netrw-:NetrwMB functionality
                                * mb and mB (netrw-mbnetrw-mB) will
                                  add/remove marked files from bookmark list
                May 20, 2014    * (Enno Nagel) reported that :Lex <dirname>
                                  wasn't working.  Fixed.
                May 26, 2014    * restored test to prevent leftmouse window
                                  resizing from causing refresh.
                                  (see s:NetrwLeftmouse())
                                * fixed problem where a refresh caused cursor
                                  to go just under the banner instead of
                                  staying put
                May 28, 2014    * (László Bimba) provided a patch for opening
                                  the :Lexplore window 100% high, optionally
                                  on the right, and will work with remote
                                  files.
                May 29, 2014    * implemented :NetrwC  (see netrw-:NetrwC)
                Jun 01, 2014    * Removed some "silent"s from commands used
                                  to implemented scp://... and pscp://...
                                  directory listing.  Permits request for
                                  password to appear.
                Jun 05, 2014    * (Enno Nagel) reported that user maps "/"
                                  caused problems with "b" and "w", which
                                  are mapped (for wide listings only) to
                                  skip over files rather than just words.
                Jun 10, 2014    * g:netrw_gx introduced to allow users to
                                  override default "<cfile>" with the gx
                                  (netrw-gx) map
                Jun 11, 2014    * gx (netrw-gx), with 'autowrite' set,
                                  will write modified files.  s:NetrwBrowseX()
                                  will now save, turn off, and restore the
                                  'autowrite' setting.
                Jun 13, 2014    * added visual map for gx use
                Jun 15, 2014    * (Enno Nagel) reported that with having hls
                                  set and wide listing style in use, that the
                                  b and w maps caused unwanted highlighting.
                Jul 05, 2014    * netrw-mv and netrw-mX commands included
                Jul 09, 2014    * g:netrw_keepj included, allowing optional
                                  keepj
                Jul 09, 2014    * fixing bugs due to previous update
                Jul 21, 2014    * (Bruno Sutic) provided an updated
                                  netrw_gitignore.vim
                Jul 30, 2014    * (Yavuz Yetim) reported that editing two
                                  remote files of the same name caused the
                                  second instance to have a "temporary"
                                  name.  Fixed: now they use the same buffer.
                Sep 18, 2014    * (Yasuhiro Matsumoto) provided a patch which
                                  allows scp and windows local paths to work.
                Oct 07, 2014    * gx (see netrw-gx) when atop a directory,
                                  will now do gf instead
                Nov 06, 2014    * For cygwin: cygstart will be available for
                                  netrw#BrowseX() to use if its executable.
                Nov 07, 2014    * Began support for file://... urls.  Will use
                                  g:netrw_file_cmd (typically elinks or links)
                Dec 02, 2014    * began work on having mc (netrw-mc) copy
                                  directories.  Works for linux machines,
                                  cygwin+vim, but not for windows+gvim.
                Dec 02, 2014    * in tree mode, netrw was not opening
                                  directories via symbolic links.
                Dec 02, 2014    * added resolved link information to
                                  thin and tree modes
                Dec 30, 2014    * (issue#231) :ls was not showing
                                  remote-file buffers reliably.  Fixed.
        v152:   Apr 08, 2014    * uses the 'noswapfile' option (requires {{{2
                                  vim 7.4 with patch 213)
                                * (Enno Nagel) turn 'rnu' off in netrw
                                  buffers.
                                * (Quinn Strahl) suggested that netrw
                                  allow regular window splitting to occur,
                                  thereby allowing 'equalalways' to take
                                  effect.
                                * (qingtian zhao) normally, netrw will
                                  save and restore the 'fileformat';
                                  however, sometimes that isn't wanted
                Apr 14, 2014    * whenever netrw marks a buffer as ro,
                                  it will also mark it as nomod.
                Apr 16, 2014    * sftp protocol now supported by
                                  netrw#Obtain(); this means that one
                                  may use "mc" to copy a remote file
                                  to a local file using sftp, and that
                                  the netrw-O command can obtain remote
                                  files via sftp.
                                * added [count]C support (see netrw-C)
                Apr 18, 2014    * when g:netrw_chgwin is one more than
                                  the last window, then vertically split
                                  the last window and use it as the
                                  chgwin window.
                May 09, 2014    * SavePosn was "saving filename under cursor"
                                  from a non-netrw window when using :Rex.
        v151:   Jan 22, 2014    * extended :Rexplore to return to buffer {{{2
                                  prior to Explore or editing a directory
                                * (Ken Takata) netrw gave error when
                                  clipboard was disabled.  Sol'n: Placed
                                  several if has("clipboard") tests in.
                                * Fixed ftp://X@Y@Z// problem; X@Y now
                                  part of user id, and only Z is part of
                                  hostname.
                                * (A Loumiotis) reported that completion
                                  using a directory name containing spaces
                                  did not work.  Fixed with a retry in
                                  netrw#Explore() which removes the
                                  backslashes vim inserted.
                Feb 26, 2014    * :Rexplore now records the current file
                                   using w:netrw_rexfile when returning via
                                  :Rexplore
                Mar 08, 2014    * (David Kotchan) provided some patches
                                  allowing netrw to work properly with
                                  windows shares.
                                * Multiple one-liner help messages available
                                  by pressing <cr> while atop the "Quick
                                  Help" line
                                * worked on ShellCmdPost, FocusGained event
                                  handling.
                                * :Lexplore path: will be used to update
                                  a left-side netrw browsing directory.
                Mar 12, 2014    * netrw-s-cr: use <s-cr>  to close
                                  tree directory implemented
                Mar 13, 2014    * (Tony Mechylynck) reported that using
                                  the browser with ftp on a directory,
                                  and selecting a gzipped txt file, that
                                  an E19 occurred (which was issued by
                                  gzip.vim).  Fixed.
                Mar 14, 2014    * Implemented :MF and :MT (see netrw-:MF
                                  and netrw-:MT, respectively)
                Mar 17, 2014    * :Ntree [dir] wasn't working properly; fixed
                Mar 18, 2014    * Changed all uses of set to setl
                Mar 18, 2014    * Commented the netrw_btkeep line in
                                  s:NetrwOptionSave(); the effect is that
                                  netrw buffers will remain as 'bt'=nofile.
                                  This should prevent swapfiles being created
                                  for netrw buffers.
                Mar 20, 2014    * Changed all uses of lcd to use s:NetrwLcd()
                                  instead.  Consistent error handling results
                                  and it also handles Window's shares
                                * Fixed netrw-d command when applied with ftp
                                * https: support included for netrw#NetRead()
        v150:   Jul 12, 2013    * removed a "keepalt" to allow ":e #" to {{{2
                                  return to the netrw directory listing
                Jul 13, 2013    * (Jonas Diemer) suggested changing
                                  a <cWORD> to <cfile>.
                Jul 21, 2013    * (Yuri Kanivetsky) reported that netrw's
                                  use of mkdir did not produce directories
                                  following the user's umask.
                Aug 27, 2013    * introduced g:netrw_altfile option
                Sep 05, 2013    * s:Strlen() now uses strdisplaywidth()
                                  when available, by default
                Sep 12, 2013    * (Selyano Baldo) reported that netrw wasn't
                                  opening some directories properly from the
                                  command line.
                Nov 09, 2013    * :Lexplore introduced
                                * (Ondrej Platek) reported an issue with
                                  netrw's trees (P15).  Fixed.
                                * (Jorge Solis) reported that "t" in
                                  tree mode caused netrw to forget its
                                  line position.
                Dec 05, 2013    * Added <s-leftmouse> file marking
                                  (see netrw-mf)
                Dec 05, 2013    * (Yasuhiro Matsumoto) Explore should use
                                  strlen() instead s:Strlen() when handling
                                  multibyte chars with strpart()
                                  (ie. strpart() is byte oriented, not
                                  display-width oriented).
                Dec 09, 2013    * (Ken Takata) Provided a patch; File sizes
                                  and a portion of timestamps were wrongly
                                  highlighted with the directory color when
                                  setting :let g:netrw_liststyle=1 on Windows.
                                * (Paul Domaskis) noted that sometimes
                                  cursorline was activating in non-netrw
                                  windows.  All but one setting of cursorline
                                  was done via setl; there was one that was
                                  overlooked.  Fixed.
                Dec 24, 2013    * (esquifit) asked that netrw allow the
                                  /cygdrive prefix be a user-alterable
                                  parameter.
                Jan 02, 2014    * Fixed a problem with netrw-based ballon
                                  evaluation (ie. netrw#NetrwBaloonHelp()
                                  not having been loaded error messages)
                Jan 03, 2014    * Fixed a problem with tree listings
                                * New command installed: :Ntree
                Jan 06, 2014    * (Ivan Brennan) reported a problem with
                                  netrw-P.  Fixed.
                Jan 06, 2014    * Fixed a problem with netrw-P when the
                                  modified file was to be abandoned.
                Jan 15, 2014    * (Matteo Cavalleri) reported that when the
                                  banner is suppressed and tree listing is
                                  used, a blank line was left at the top of
                                  the display.  Fixed.
                Jan 20, 2014    * (Gideon Go) reported that, in tree listing
                                  style, with a previous window open, that
                                  the wrong directory was being used to open
                                  a file.  Fixed. (P21)
        v149:   Apr 18, 2013    * in wide listing format, now have maps for {{{2
                                  w and b to move to next/previous file
                Apr 26, 2013    * one may now copy files in the same
                                  directory; netrw will issue requests for
                                  what names the files should be copied under
                Apr 29, 2013    * Trying Benzinger's problem again.  Seems
                                  that commenting out the BufEnter and
                                  installing VimEnter (only) works.  Weird
                                  problem!  (tree listing, vim -O Dir1 Dir2)
                May 01, 2013    * :Explore ftp://... wasn't working.  Fixed.
                May 02, 2013    * introduced g:netrw_bannerbackslash as
                                  requested by Paul Domaskis.
                Jul 03, 2013    * Explore now avoids splitting when a buffer
                                  will be hidden.
        v148:   Apr 16, 2013    * changed Netrw's Style menu to allow direct {{{2
                                  choice of listing style, hiding style, and
                                  sorting style


==============================================================================
13. Todo                                                netrw-todo {{{1

07/29/09 : banner       :g:netrw_banner can be used to suppress the
           suppression    banner.  This feature is new and experimental,
                          so its in the process of being debugged.
09/04/09 : "gp"         : See if it can be made to work for remote systems.
                        : See if it can be made to work with marked files.

==============================================================================
14. クレジット                                          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 <NcampObell@SdrPchip.AorgM-NOSPAM>
        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

==============================================================================
Modelines: {{{1
vim:tw=78:ts=8:ft=help:noet:norl:fdm=marker