Up: 目次   [Index]


ネットワークファイルの讀み書き

*pi_netrw.txt*  For Vim バージョン 8.1.  Last change: 2019 Nov 14

            ------------------------------------------------
            NETRW REFERENCE MANUAL    by Charles E. Campbell
            ------------------------------------------------
Author:  Charles E. Campbell  <NdrOchip@ScampbellPfamily.AbizM>
          (まずメールアドレスから NOSPAM を削除してください)
Copyright: Copyright (C) 2017 Charles E Campbell
        The VIM LICENSE applies to the files in this package, including
        netrw.vim, pi_netrw.txt, netrwFileHandlers.vim, 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!

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-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-c|
    ファイルをマークする|netrw-mf|
    ファイルのマークを外す|netrw-mF|
    ロケーションリストを使つてファイルをマークする|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 を使ふとファイルの讀み込み、書き込み、ネットワークを通したブラウジング、ローカルファイルのブラウジングが簡單になります。最初に、プラグインが有效になつてゐるかどうかを確認してください。最低限、次のやうな設定が <.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 だけを無效にしたい場合は、netrw のプラグインファイルと自動ロードファイルの兩方が讀み込まれないやうにする必要があります。<.vimrc> に次の設定を書いてください:

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

3. Netrw リファレンス

Netrw は |netrw-start| で說明した scp や ftp 以外のプロトコルもサポートしてゐます。サポートされてゐるのは dav, fetch, http などです。|netrw-externapp| の一覽を見てください。各プロトコルには變數が關聯付けられてゐて、變數にはそのプロトコルをサポートしてゐる外部プログラムが設定されます。

外部プログラムとプロトコル

プロトコル變數初期設定
dav:g:netrw_dav_cmd= "cadaver"もしも cadaver があるなら
= "curl -o"または curl があるなら
fetch:g:netrw_fetch_cmd= "fetch -o"もしも fetch があるなら
ftp:g:netrw_ftp_cmd= "ftp"
http:g:netrw_http_cmd= "elinks"もしも elinks があるなら
= "links"もしも links があるなら
= "curl"もしも curl があるなら
= "wget"もしも wget があるなら
= "fetch"もしも 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" または "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 操作を實行します。

讀み込み

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

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

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

:Nread ?ヘルプ表示
:Nread "machine:path"rcp を使ふ
:Nread "machine path"ftp w/ <.netrc> を使ふ
:Nread "machine id password path"ftp を使ふ
:Nread "dav://machine[:port]/path"cadaver を使ふ
:Nread "fetch://[user@]machine/path"fetch を使ふ
:Nread "ftp://[user@]machine[[:#]port]/path"ftp w/ <.netrc> を使ふ
:Nread "http://[user@]machine/path"http, wget を使ふ
:Nread "rcp://[user@]machine/path"rcp を使ふ
:Nread "rsync://[user@]machine[:port]/path"rsync を使ふ
:Nread "scp://[user@]machine[[:#]port]/path"scp を使ふ
:Nread "sftp://[user@]machine/path"sftp を使ふ

書き込み

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

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

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

:Nwrite ?ヘルプ表示
:Nwrite "machine:path"rcp を使ふ
:Nwrite "machine path"ftp w/ <.netrc> を使ふ
:Nwrite "machine id password path"ftp を使ふ
:Nwrite "dav://machine[:port]/path"cadaver を使ふ
:Nwrite "ftp://[user@]machine[[:#]port]/path"ftp w/ <.netrc> を使ふ
:Nwrite "rcp://[user@]machine/path"rcp を使ふ
:Nwrite "rsync://[user@]machine[:port]/path"rsync を使ふ
:Nwrite "scp://[user@]machine[[:#]port]/path"scp を使ふ
:Nwrite "sftp://[user@]machine/path"sftp を使ふ

http: はサポートされてゐません!

スクリプト實行

スクリプトを實行するときにも url を使ふことができます。例:

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

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

:Nsource ?ヘルプ表示
:Nsource "dav://machine[:port]/path"cadaver を使ふ
:Nsource "fetch://[user@]machine/path"fetch を使ふ
:Nsource "ftp://[user@]machine[[:#]port]/path"ftp w/ <.netrc> を使ふ
:Nsource "http://[user@]machine/path"http, wget を使ふ
:Nsource "rcp://[user@]machine/path"rcp を使ふ
:Nsource "rsync://[user@]machine[:port]/path"rsync を使ふ
:Nsource "scp://[user@]machine[[:#]port]/path"scp を使ふ
:Nsource "sftp://[user@]machine/path"sftp を使ふ

ディレクトリのファイル一覽表示

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

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

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

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

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

USERID と PASSWORD の變更

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-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_previewg:netrw_alto結果
00|:aboveleft|
01|:belowright|
10|:topleft|
11|:botright|

サイズを制禦するには |g:netrw_winsize| を參照。

g:netrw_scpport

= "-P" : scp のポート番號を設定するためのオプション

g:netrw_sshport

= "-p" : ssh のポート番號を設定するためのオプション

g:netrw_sepchr

=\0xff
=\0x01 enc == euc-jp 向け。(この値を使つた方がいい文字コードが他にもあるなら、知らせてください)

內部處理で優先番號とファイル名を區切るのに使はれる。|netrw-p12| 參照。

g:netrw_silent

=0 : 普通に轉送處理をする
=1 : 靜か (silent) に轉送處理をする

g:netrw_use_errorwindow

=1 : netrw のメッセージ表示に別ウィンドウを使ふ。メッセージが確實に表示されます (初期設定)。

=0 : netrw のメッセージ表示に echoerr を使ふ。表示されたメッセージを確認できないことがあるかもしれませんが、ウィンドウを閉ぢる必要がありません。

g:netrw_win95ftp

=1 Win95 で、OS 附屬の ftp が出力の末尾に書き出す四行の空行を削除する。
=0 普通に ftp を使用する (末尾の行を削除しない)

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 をバイナリモードで使ふ (初期設定)

パス

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

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

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

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

4. ネットワークファイル轉送

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 コマンドのやうに見えて怪しいと感じたら、それを開いてはいけません。

プロトコルを扱ふ外部プログラムは變數を設定することで變更できます (例へば、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

もしも、|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 は記錄され、次に同じマシンにアクセスするときにはプロンプトは表示されません。

+=================================+============================+============+
|  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) |
+=================================+============================+============+

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

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| を參照してください。

パスワード

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

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

5. 5. netrw の有效化

ネットワークファイル轉送は |'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. 透過的なリモートファイル編輯

ネットワークファイルの轉送は、ファイルを讀み書きするときに |:autocmd| の |BufReadCmd|, |BufWriteCmd|, |SourceCmd| イベントによつて透過的に處理されます。それによつて、ローカルファイルと同じくらゐ簡單にネットワークファイルを讀み込み、書き込み、スクリプト實行することができます。

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

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

7. Ex コマンド

一般的な讀み込み/書き込みコマンドがサポートされてゐます。それ以外のコマンドもいくつかあります。|netrw-transparent| で說明したやうに、通常はこれらのコマンドを使ふ必要はありません。次のやうに使つてください (|netrw-urls| 參照):

:e URL
:r URL
:w URL

以下の說明では、{netfile} はリモートファイルの url を示します。

:[range]Nw[rite]

指定した範圍の行を b:netrw_lastfile が示すファイルに保存する。(關聯: |netrw-nwrite|)

:[range]Nw[rite] {netfile} [{netfile}]...

指定した範圍の行を {netfile} に保存する。

:Nr[ead]

b:netrw_lastfile が示すファイルをカレントバッファに讀み込む。(關聯: |netrw-nread|)

:Nr[ead] {netfile} {netfile}...

{netfile} を現在行の下に讀み込む。

:Ns[ource] {netfile}

{netfile} をスクリプトとして實行する。リモートの .vimrc を使つて vim を起動するには、次のやうにします (實際にはすべて 1 行です) (Antoine Mechelynck ありがたう)

vim -u NORC -N
--cmd "runtime plugin/netrwPlugin.vim"
--cmd "source scp://HOSTNAME/.vimrc"

(關聯: |netrw-source|)

:call 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-options| |netrw-variables| |netrw-protocol| |netrw-browser-settings| |netrw-browser-options|)

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

Netrw オプション

オプション說明
b:netrw_colカーソル位置を保持する (NetWrite 使用時)
g:netrw_cygwin=1 windows の scp が cygwin のものと想定する (windows の初期設定)
=0 windows の scp が windows スタイルのパスを扱へると想定する (その他の初期設定)
g:netrw_ftp=0 デフォルト ftp を使ふ (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_uidftp の現在の user-id を保持する
g:netrw_use_nt_rcp=0 WinNT/2K/XP の rcp を使はない (初期設定)
=1 WinNT/2K/XP の rcp を binary mode で使ふ
g:netrw_win95ftp=0 win95/98/ME/etc で unix-style ftp を使ふ
=1 標準の ftp を使ふ

netrw は次の變數を一時的に使用します。

一時變數

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

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

プロトコル制禦オプション

オプションタイプ設定說明
netrw_ftp變數=變數なしuserid を "user userid" で設定
=0userid を "user userid" で設定
=1userid を "userid" で設定
NetReadFixup函數=變數なし變更しない
=變數ありftp で取得したファイルを NetReadFixup() で自動的にフィルタする。
g:netrw_dav_cmd變數="cadaver"もしも cadaver があるなら
g:netrw_dav_cmd變數="curl -o"もしくは curl があるなら
g:netrw_fetch_cmd變數="fetch -o"もしも fetch があるなら
g:netrw_ftp_cmd變數="ftp"
g:netrw_http_cmd變數="fetch -o"もしも fetch があるなら
g:netrw_http_cmd變數="wget -O"もしくは 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變數="/"spec ファイルからホスト名を分割するのに使ふ
g:netrw_scp_cmd變數="scp -q"
g:netrw_sftp_cmd變數="sftp"

|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| の 2 つのオプションは、問題のある ftp クライアントを補助します。これらのオプションの使用方法を理解してもらふため、netrw が ftp からファイルを讀み込むときの仕組みを少し解說します。

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

g:netrw_ftp が未定義、または 1 以外g:netrw_ftp に 1 が設定されてゐる
open machine [port]open machine [port]
user userid passworduserid password
[g:netrw_ftpmode]password
[g:netrw_ftpextracmd][g:netrw_ftpmode]
get filename tempfile[g:netrw_extracmd]
テンポラリファイルの名前を取得する

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

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

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

ここでは g:netrw_ftp_cmd は通常は "ftp" です

-iftp を對話的に使はない
-nnetrc を使はない。Method #3 を使ふ (<.netrc> 無しで ftp 使用)

{譯注: Method #3 は |netrw-fixup| の a:method == 3}

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

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

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

使用してゐる 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() 函數は定義するだけで呼び出されるやうになります。これにより讀み込みの處理をカスタマイズできます。例へば、<netrw.vim> の中では Windows 95 ftp の問題を囘避するために、この函數が定義されてゐます。なぜか Windows 95 の ftp は轉送ファイルの末尾に 4 行の空行を出力するので、それを取り除いてゐます。<netrw.vim> のコードは次のやうなものです:

if has("win95") && g:netrw_win95ftp
 fun! NetReadFixup(method, line1, line2)
   if method == 3   " ftp (no <.netrc>)
    let fourblanklines= line2 - 3
    silent fourblanklines.",".line2."g/^\s*/d"
   endif
 endfunction
endif

(關聯項目: |ftp| |netrw-userpass| |netrw-start|)

9. ブラウジング

ブラウジングの紹介

(クイックリファレンス: |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 の 2 つのプロトコルをサポートしてゐます。例へば 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 がそれをサポートしてゐるなら)。

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

netrw で實行できる操作の一覽は |netrw-browse-cmds| を參照してください。

ローカルファイルを一覽表示するときは、|getftype()| 函數を使つて、ファイルタイプを示す裝飾文字が付加されます:

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

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

QUICK HELP

(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|

クイックリファレンス: マップ

マップ簡單な說明リンク
<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 にマッチしたファイルのみ表示する)
c表示中のディレクトリをカレントディレクトリにする|netrw-c|
Cファイルを開くウィンドウを指定する|netrw-C|
dディレクトリを作成する|netrw-d|
Dファイル/ディレクトリ (複數可) を削除する|netrw-D|
gb前のブックマークされたディレクトリに移動|netrw-gb|
gd取扱ひをディレクトリに强制する|netrw-gd|
gf取扱ひをファイルに强制する|netrw-gf|
ghドットファイルの表示/非表示を切り替へる|netrw-gh|
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|
qFQuickFix リストを使つてファイルをマークする|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-%|
<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|)

クイックリファレンス: コマンド

: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|

バナーの表示を切り替へる

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

參照: |g:netrw_banner|

ディレクトリをブックマークする

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

mb

ブックマークは Vim のセッション閒で、リスト (|List|) として .netrwbook と呼ばれれるファイルに保存されます。これは典型的に、ユーザーの ’runtimepath’ 中の最初のディレクトリに保存されてゐます。ブックマークは常にソートされます。

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

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

:NetrwMB[!] [files/directories]
bang が付かない場合:

ファイル/ディレクトリを Netrw のブックマークシステムに追加します。

netrw バッファで引數なし:
  • マークされたファイルが存在する: マークされたファイルをブックマークする
  • 存在しない : カーソル位置のファイル/ディレクトリをブックマークする
netrw バッファの外で引數なし:

現在開いてゐるファイルをブックマークする

引數有り:

それぞれの引數を |glob()| し、ブックマークする

bang が付く場合:

ファイル/ディレクトリをブックマークから削除する

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

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

關聯項目:

ブラウジング

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

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

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

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

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

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

現在のツリー表示ディレクトリを閉ぢる

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|

水平分割ウィンドウを使つたブラウジング

<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|初期サイズを制禦

タブを使つたブラウジング

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

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

關聯トピック: |netrw-ctrl-r| |netrw-o| |netrw-p| |netrw-P| |netrw-t| |netrw-v|

關聯設定變數:

|g:netrw_winsize|初期サイズを制禦

垂直分割ウィンドウを使つたブラウジング

<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 を使つてブラウズする

本機能はファイルを編輯する 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> がどのやうにファイルを開くのか制禦する

一覽表示スタイル變更 (細 長 廣 ツリー)

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

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

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

wide 形式では 2 つ以上のスペースを使つてファイル名を區切つて表示します。この表示形式では、2 つ以上の連續したスペースが含まれてゐるファイル名、または末尾にスペースが付いてゐるファイル名を扱ふことができません。そのやうな場合は 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|

パーミッションの變更

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

關聯設定: |g:netrw_chgperm|

ブックマークしたディレクトリに移動

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

{cnt}gb

カウントを付けてブックマークを指定することができます。

Note:
|netrw-qb| はブックマークと履歷を兩方表示します。履歷の場所に移動したい場合は |netrw-u| と |netrw-U| を參照してください。

關聯項目:

|netrw-mB|ブックマークを削除する
|netrw-mb|ブックマークを設定する
|netrw-qb|ブックマークを一覽表示する

前のディレクトリに戾る

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

"u" マップはカウントを指定することができ、履歷の特定の位置に戾ることができます。qb (|netrw-qb| を參照) の一覽で表示される履歷の番號はこのカウントとして使へます。

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

關聯項目:

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

次のディレクトリに進む

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

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

履歷の量を制禦するには |g:netrw_dirhistmax| を參照。

ツリーのトップを變更する

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

:Ntree [dirname]

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

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

NETRW CLEAN

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

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

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

特殊ハンドラででブラウジングをカスタマイズ

(|netrw_filehandler| も參照)

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

(後ろは |g:netrw_nogx| が設定されてゐる場合は使へません)

Netrw は次の方法で專用ハンドラを決定します:

これらの方法ではファイルを處理するためのアプリケーションは擴張子によつて決められます。例へば OpenOffice (*.sfx)、畫像表示 (*.jpg, *.gif, etc)、PostScript (*.ps, *.eps) などに對應可能です。

gx マッピングはすべてのバッファに適用できます。カーソル位置の單語に "gx" を適用すると、それに對し netrw は特別な處置を行ひます (ちやうど "x" が netrw バッファに對して行ふやうに)。

特別な處置を行ふテキストをビジュアルモード (|visual-start| 參照) により選擇することもできます。通常 gx はカーソル位置のテキストを取得するのに expand("<cfile>") を使用しますが、|g:netrw_gx| 變數で |expand()| が使用する引數を變へることができます ("<cword>", "<cWORD>" を含むオプション)。

Note:
expand("<cfile>") は |'isfname'| の設定に依存することに注意。

また、代はりに gx で使用するテキストを最初にビジュアル選擇を行つておくか、|'isfname'| オプション (グローバルなので netrw は變更しません) を變更することで選擇することもできます (|visual-block| 參照)。

關聯設定:

|g:netrw_gx|gx がどのやうにカーソル位置のテキストを取得するか制禦する
|g:netrw_nogx|編輯中 gx マップを無效にする
|g:netrw_suppress_gx_mesg|gx がブラウザーの出力を抑制するか制禦する

|g:netrw_browsex_viewer| が存在し "-" である場合、netrw は特殊なファイルを vim の函數で處理しようと試みます。"x" マップはファイルの擴張子に應じて函數を呼び出します。ただし、あらかじめハンドラ函數を定義しておく必要があります! 例:

mypgm.html   x -> NFH_html("scp://user@host/some/path/mypgm.html")

擴張子ごとのハンドラ函數を自分で定義できます。函數のサンプルは <autoload/netrwFileHandlers.vim> を參照してください。例:

" NFH_suffix(filename)
" NFH_擴張子 (ファイル名)
fun! NFH_suffix(filename)
..ファイル名に應じた處理...
endfun

このやうな函數は .vim/plugin (vimfiles\plugin) ディレクトリ內のファイルで定義します。Vim では函數名に記號を含めることができません (アンダースコアは可)。記號を含む擴張子をサポートするため、擴張子は次のルールで變換されます:

@ -> AT       ! -> EXCLAMATION    % -> PERCENT
: -> COLON    = -> EQUAL          ? -> QUESTION
, -> COMMA    - -> MINUS          ; -> SEMICOLON
$ -> DOLLAR   + -> PLUS           ~ -> TILDE

例:

file.rcs,v  ->  NFH_rcsCOMMAv()

他にも變換が必要な文字があるやうなら、メールでお知らせください:
NdrOchip at ScampbellPfamily.AbizM - NOSPAM

關聯設定: |g:netrw_browsex_viewer|

ブックマークを削除する

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

{cnt}mB

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

一方で :NetrwMB! を使ふ人もゐるでせう (|netrw-:NetrwMB| 參照)。

:NetrwMB! [files/directories]

關聯項目:

|netrw-gb|ブックマークに戾る (移動する)
|netrw-mb|ブックマークを設定する
|netrw-qb|ブックマークを一覽表示する

ファイル/ディレクトリの削除

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

ファイル/ディレクトリを削除するにはファイル名の上にカーソルを移動して "D" を押します。ディレクトリを削除する場合は中身が空でなければなりません。

ディレクトリがディレクトリへのソフトリンクだつた場合は、ディレクトリを削除するために 2 つのリクエストが實行されます。

netrw はファイルを削除する前に確認ダイアログを表示します。"V" コマンド (ビジュアル選擇) で範圍を選擇して "D" を使ふこともできます。

{譯注: > 2つのリクエスト rmdir <file> || rm <file> 的な處理}

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

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

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

もしも Patch#1107 を適用した Vim 7.4 を使つてゐるなら、ディレクトリを削除するために |g:netrw_localrmdir| はもう使はれません。代はりに、Vim 自體の |delete()| が "d" オプションで使はれます。

どうか空のディレクトリは "D" マッピングで削除されるかもしれないことに注意してください。標準のファイルも |delete()| で削除されます。

リモートのファイルとディレクトリの削除には、|g:netrw_rm_cmd|, |g:netrw_rmf_cmd|, |g: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_localrmdir| |g:netrw_rm_cmd| |g:netrw_rmdir_cmd| |g:netrw_ssh_cmd|

ディレクトリ探査コマンド

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

:Explore **/pattern で開いたときに使ふコマンド: (|netrw-starstar| 參照)

:Nexplore次のファイルに移動
:Pexplore前のファイルに移動
:Explore

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

:Explore!

:Explore と同じですが、ウィンドウを垂直分割します。

:Hexplore [dir]

|:belowright| 水平分割を使つて :Explore を實行します。

:Hexplore! [dir]

|:aboveleft| 水平分割を使つて :Explore を實行します。

:[N]Lexplore [dir]

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

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

[N] は新しい :Lexplore ウィンドウの |g:netrw_winsize| を示します。

この方法を好む人達はしばしばツリービューも好むでせう。|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|

:[N]Sexplore

常に新しいウィンドウを作成してローカルディレクトリブラウザーを開始します。Explore と同樣、通常はウィンドウは水平分割されます。

:[N]Sexplore! [dir]

:Sexplore と同じですが、ウィンドウを垂直分割します。

:Texplore [dir]

ブラウザーウィンドウを作成する前に |:tabnew| を實行します。

:[N]Vexplore [dir]

|:leftabove| 垂直分割を使つて :Explore を實行します。

:[N]Vexplore! [dir]

|:rightbelow| 垂直分割を使つて :Explore を實行します。

省略可能な引數:

[N]:この引數は新しいエクスプローラーウィンドウの高さかつ/または幅の量を指定するために |g:netrw_winsize| を上書きします。

または |g:netrw_winsize| がユーザーにより指定されれば、新しいエクスプローラーウィンドウの高さかつ/または幅の量を制禦するのに使用されます。

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

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

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

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

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

參照: |g:netrw_alto| |g:netrw_altv| |g:netrw_winsize|

スターとパターンを使つた探索

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, and
<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|

ファイルの情報を表示する

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

隱しリストを編輯する

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

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

例:

let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'

これは |netrw-gh| コマンドの初期設定での動作と實質的に同じになります。

解說:

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

關聯設定: |g:netrw_hide| |g:netrw_list_hide|

關聯項目: |netrw-a| |netrw-gh| |netrw-mh|

ソートシーケンスを編輯する

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

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() で實行する

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

より多くの引數の編輯方法の方針は |cmdline-window| を參照。

取扱ひをファイルまたはディレクトリに强制する

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

强制的にファイルとして扱ふには次のコマンドを使ひます:

gf

强制的にディレクトリとして扱ふには次のコマンドを使ひます:

gd

親ディレクトリに移動する

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

netrw は |g:netrw_list_cmd| を使つてディレクトリ一覽を取得します。變數の HOSTNAME の部分は實際の url に置き換へられます。初期設定は次のとほり:

ssh HOSTNAME ls -FLa

HOSTNAME の部分は實際のリクエストの [user@]hostname に置換されます。設定は必要に應じて變更してください。リモートブラウズを實行する NetList 函數は、ディレクトリ名の末尾にはスラッシュが付くことを想定してゐます。

ファイル/ディレクトリを隱すにする

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

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

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

|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 から削除し、隱しファイル非表示モードにする

次のコマンドを使ふと

gh

ドットで始まるファイルを非表示にするかどうかを簡單に切り替へることができます。

關聯設定: |g:netrw_list_hide| |g:netrw_hide|

關聯項目: |netrw-a| |netrw-ctrl-h| |netrw-mh|

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 の隱しファイルのパターンを讀み込む追加のファイルを指定できます。

例: g:netrw_list_hide= netrw_gitignore#Hide() . ’.*\.swp$’

’netrw_gitignore#Hide’ と獨自のパターンを組み合はせる。

ブラウジングを改善する

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

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. パスフレーズを聞かれる (2 度) のでそのまま <CR> を押してパスフレーズを空にする。もしパスフレーズを設定するなら、ssh-agent を使ふことでパスフレーズの入力をセッションごとに 1 度だけで濟ますことができます。パスフレーズを設定しなかつた場合、あなたのローカルコンピュータにログインするか、あるいはキーファイルにアクセスできれば、そのキーファイルが登錄された ssh サーバーにアクセスできます。
  3. 2 つのファイルが作成される:
    ~/.ssh/id_rsa
    ~/.ssh/id_rsa.pub
    
  4. ターゲットマシン (ssh サーバー) での操作:
    cd
    mkdir .ssh
    chmod 0700 .ssh
    
  5. ローカルマシン (ssh クライアント) での操作: (1 行で入力)
    ssh {serverhostname} cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
    

    もしくは OpenSSH で: (1 行で入力)

    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 を使ふ。詳しくはリンク先を見て欲しい。

http://www.ibm.com/developerworks/library/l-keyc2/
http://sial.org/howto/openssh/publickey-auth/

Ssh ヒント:

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

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

ブックマークと履歷を一覽表示する

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

關聯項目:

|netrw-gb|ブックマークに戾る (移動する)
|netrw-mb|ブックマークを設定する
|netrw-mB|ブックマークを削除する
|netrw-u|表示履歷の前のディレクトリに移動する
|netrw-U|表示履歷の次のディレクトリに移動する

新しいディレクトリを作成する

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

關聯項目: |netrw-D|

關聯設定變數: |g:netrw_localmkdir| |g:netrw_mkdir_cmd| |g:netrw_remote_mkdir| |netrw-%|

ブラウジングディレクトリをカレントディレクトリにする

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

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

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

netrw-c : このマップの名前は "c" から cd に變更されました (|netrw-cd| を參照)。この變更は |netrw-cb| と |netrw-cB| のマップも考慮されてゐます。

關聯設定: |g:netrw_keepdir|

ファイルをマークする

(|netrw-mr| も參照)

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

マークしたファイルは以下の 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-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| 參照)

マークされたすべてのファイルはグローバルマークファイルリストに記錄されます。グローバルリストは 1 つだけ存在します。さらに、すべての netrw バッファはバッファローカルマークファイルリストを持つてゐます。

netrw バッファは特定のディレクトリと結びついてゐるので、ディレクトリごとにローカルマークファイルリストが存在することになります。マークされたファイルに對する操作はグローバル、またはローカルのマークファイルリストに作用します。

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

ファイルのマークを外す

(|netrw-mf|, |netrw-mu| も參照)

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

ロケーションリストを使つてファイルをマークする

(|netrw-mf| も參照)

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

QuickFix リストを使つてファイルをマークする

(|netrw-mf| も參照)

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

正規表現を使つてファイルをマークする

(|netrw-mf| も參照)

正規表現を使つてファイルをマークするには "mr" を使ひます。"mr" を押すと "Enter regexp: " といふプロンプトが表示されるので、例へば *.c$ のやうなシェル形式の正規表現 (|glob()| 參照) を入力します。

リモートシステムに對しては glob() は使へないので、netrw は "*" を ".*" に變換し (|regexp| 參照)、それを使つてファイルをマークします。將來的には glob() スタイルではなく |regexp| スタイルの正規表現を使へるやうにする豫定です (また別のオプションで)。

より多くの正規表現の編輯方法の方針は |cmdline-window| を參照。

マークファイル: Vimコマンド

(マークの設定方法は |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-mf| と |netrw-mr| を參照)
(ローカルマークファイルリスト使用)

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

例:

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

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

マークファイル: 一括シェルコマンド

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

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

command files

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

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

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

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

マークファイル: 引數リスト

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

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

參照: |netrw-cb| |netrw-cB| |netrw-qF| |argument-list| |:args|

マークファイル: バッファリスト

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

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

參照: |netrw-ma| |netrw-mA| |netrw-qF| |buffer-list| |:buffers|

マークファイル: 壓縮と伸暢

(マークの設定方法は |netrw-mf| と |netrw-mr| を參照)
(ローカルマークファイルリスト使用)

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

伸暢には、擴張子と伸暢コマンドを關聯付けた |Dictionary| が使はれます。|g:netrw_decompress| 參照。

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

關聯設定: |g:netrw_compress| |g:netrw_decompress|

マークファイル: コピー

(マークの設定方法は |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-mf| と |netrw-mr| を參照)
(グローバルマークファイルリスト使用)

|vimdiff| を使つて選擇したファイルの違ひを表示します (選擇できるファイルは 2 つか 3 つです)。グローバルマークファイルリストが使はれます。

マークファイル: 編輯

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

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

マークファイル: GREP

(マークの設定方法は |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-mf| と |netrw-mr| を參照)
(ローカルマークファイルリスト使用)

この "mh" コマンドは、マークされたファイルの擴張子を隱しリストに追加、または削除します。同じ擴張子のファイルが複數選擇されてゐた場合はファイルの數だけ追加と削除が繰り返されることに注意してくだだい (つまり、同じ擴張子のファイルが偶數個選擇されてゐる場合はそれを選擇しなかつたのと同じ)。

關聯項目: |netrw-a| |g:netrw_list_hide|

マークファイル: 移動

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

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

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

關聯設定: |g:netrw_localmovecmd| |g:netrw_ssh_cmd|

マークファイル: 印刷

(マークの設定方法は |netrw-mf| と |netrw-mr| を參照)
(ローカルマークファイルリスト使用)

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

マークファイル: スクリプト實行

(マークの設定方法は |netrw-mf| と |netrw-mr| を參照)
(ローカルマークファイルリスト使用)

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

マークファイル: ターゲットディレクトリを設定する

(マークの設定方法は |netrw-mf| と |netrw-mr| を參照)

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

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

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

關聯項目:

ファイルをマークする|netrw-mf|
正規表現を使つてファイルをマークする|netrw-mr|
マークファイル: ブックマークを使つたターゲットディレクトリ|netrw-Tb|
マークファイル: 履歷を使つたターゲットディレクトリ|netrw-Th|

マークファイル: タグ生成

(マークの設定方法は |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-qb| マップはブックマーク (と履歷) の一覽を表示します。[count]Tb (count のデフォルトは 1) を使つて、ブックマークからマークファイルターゲットを選擇できます。

關聯項目:

ファイルをターゲットにコピーする|netrw-mc|
ブックマークと履歷を一覽表示する|netrw-qb|
マークファイル: ターゲットディレクトリを設定する|netrw-mt|
マークファイル: 履歷を使つたターゲットディレクトリ|netrw-Th|
ファイルをマークする|netrw-mf|
ファイルのマークを外す|netrw-mr|
ファイルをターゲットに移動する|netrw-mm|

マークファイル: 履歷を使つたターゲットディレクトリ

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

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

關聯項目:

ファイルをターゲットにコピーする|netrw-mc|
ブックマークと履歷を一覽表示する|netrw-qb|
マークファイル: ターゲットディレクトリを設定する|netrw-mt|
マークファイル: ブックマークを使つたターゲットディレクトリ|netrw-Tb|
ファイルをマークする|netrw-mf|
ファイルのマークを外す|netrw-mr|
ファイルをターゲットに移動する|netrw-mm|

マークファイル: マーク解除

(|netrw-mf| と |netrw-mr| を參照)

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

NETRW ブラウザー變數

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

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

變數

說明

g:netrw_altfile

|CTRL-^| で最後に編輯したファイルに戾りたいときは 1 を設定する。

|CTRL-^| で netrw ブラウザーに戾りたいときは 0 を設定する。

初期設定: =0

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" で開く (以前のウィンドウで開く)

Note:
|g: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"

値が "-" なら、netrwFileHandler() によつてファイルを處理するスクリプト/函數が呼ばれます。(|netrw_filehandler| 參照)

g:netrw_chgperm

Unix/Linux: "chmod PERM FILENAME"
Windows: "cacls FILENAME /e /p PERM"

ファイルのアクセス權限を變更するのに使はれます。

g:netrw_compress

="gzip"

ファイル壓縮コマンド

g:Netrw_corehandler

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

g:netrw_ctags

="ctags"

タグを作成するための外部コマンド

g:netrw_cursor

= 2 (初期設定)

|'cursorline'| (cul) と |'cursorcolumn'| (cuc) を使用するかどうかをコントロールする:

ValueThin-Long-TreeWide
=0u-cul u-cucu-cul u-cuc
=1u-cul u-cuccul u-cuc
=2cul u-cuccul u-cuc
=3cul u-cuccul cuc
=4cul cuccul cuc

記號の意味

u-cul|'cursorline'| のユーザー設定使用
u-cuc|'cursorcolumn'| のユーザー設定使用
cul|'cursorline'| をローカル設定する
cuc|'cursorcolumn'| をローカル設定する
g:netrw_decompress

= {".gz": "gunzip", ".bz2": "bunzip2", ".zip": "unzip", ".tar": "tar -xf"}

擴張子と伸暢プログラムを關聯付ける辭書

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 または g:netrw_cygwin の場合: "ls -lF"
さうでない場合: "dir"

g:netrw_ftp_sizelist_cmd

ftp に渡されるファイル一覽取得コマンド。ファイルサイズでソートする。

初期設定:
unix または g:netrw_cygwin の場合: "ls -slF"
さうでない場合: "dir"

g:netrw_ftp_timelist_cmd

ftp に渡されるファイル一覽取得コマンド。最終更新日時でソートする。

初期設定:
unix または g:netrw_cygwin の場合: "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 : 隱しファイルのみ表示
初期設定: =1

g:netrw_home

ブックマークと履歷 (.netrwbook.netrwhist) を保存するホームディレクトリ。

Netrw は文字列上の |expand()| を使ふ。

初期設定: |'runtimepath'| の最初のディレクトリ

g:netrw_keepdir

=1 (初期設定) カレントディレクトリとブラウジングディレクトリを別にする
=0 カレントディレクトリとブラウジングディレクトリを同じにする。

現在のブラウジングディレクトリは b:netrw_curdir に保存されます。 (|netrw-c| 參照)

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-mt|, |netrw-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-mc|, |netrw-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-mt|, |netrw-mm|)

g:netrw_localmovecmdopt

="" Linux/Unix/MacOS/Cygwin
=" /c move" Windows

|g:netrw_localmovecmd| 用のオプション

g:netrw_localrmdir

="rmdir" Linux/Unix/MacOS/Cygwin
=expand("$COMSPEC") Windows

ディレクトリ削除コマンド (rmdir)

この變數は Vim 7.4 以前もしくは Patch#1107 を適用してゐない Vim でのみ使へます。さうでなければ、|delete()| が "d" オプションで使はれます。

g:netrw_localrmdiropt

="" Linux/Unix/MacOS/Cygwin
=" /c rmdir" Windows

|g:netrw_localrmdir| 用のオプション

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> マップが設定されます。

例: クリックしてファイルを開き、ダブルクリックで戾る。

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" または "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 によつて設定されます。

例として、私自身は暗背景カラースキームを使つてゐて .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

マルチバイト文字列の長さを計算する方法を指定する。(N Weibull, T Mechelynck ありがたう)

=0: Vim の組み込み函數 strlen() を使ふ
=1: 文字數。(Latin a + combining circumflex は 2 文字) (初期設定)
=2: 文字數。(Latin a + combining circumflex は 1 文字。タブ文字は 1。CJK 文字は全角半角ともに 1。...)
=3: 表示幅 (タブ文字は 1 から |'tabstop'| までの可變幅。CJK 文字は全角は 2、その他は 1。アラビア文字の alif は、lam が前置されてゐる場合は 0、さうでなければ 1。...)

g:NetrwTopLvlMenu

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

NETRW ブラウザーとオプション設定の互換性

Netrw 內部でオプションを變更するときは、ユーザー設定を保存してから netrw 用の値を設定し、後で元に戾すといふ方法が使はれます。しかし、autochdir オプション:

:set acd

の扱ひには問題があります。autochdir は開いてゐるファイルが置かれてゐるディレクトリをカレントディレクトリとして設定しますが、これはディレクトリを開いたときも適用されます。つまり、autochdir によつてファイル (それがディレクトリであつても) が置かれてゐるディレクトリがカレントディレクトリとして設定されてしまひます。

NETRW 設定ウィンドウ

NetrwSettings.vim プラグインのコマンド

:NetrwSettings

を實行すると、netrw の設定變數が表示されたウィンドウが表示されます。値を編輯してファイルを保存すると設定が反映されます。それぞれの變數の上で "?" を押すとその變數のヘルプが表示されます。

(參照: |netrw-browser-var| |netrw-protocol| |netrw-variables|)

ファイルを取得する

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

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

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

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

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

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

關聯項目:

NETRW のカレントディレクトリで新しいファイルを作成する

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

關聯項目: |netrw-d|

プレビューウィンドウ

ファイルの上で "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|

以前のウィンドウ

カーソル下のファイル/ディレクトリを以前の (最後にアクセスした) ウィンドウ (: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|

一覽を更新する

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

ソートの順番を逆にする

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

關聯項目: |netrw-s|

關聯設定: |g:netrw_sort_direction|

ファイルの名前を變更する

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

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

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

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

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

例:

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

この例ではすべての *.c ファイルを *.cpp に變更します。

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

V (|linewise-visual|) で選擇することで複數のファイル/ディレクトリを名前變更できます。

より多くのコマンドラインの編輯方法の方針は |cmdline-editing| を參照。特に、<ctrl-f> (コマンドラインウィンドウで編輯を開始) と <ctrl-c> (カーソル下のコマンド行を使用) は R コマンドと組み合せると便利であることがわかるでせう。

ソートの種類を變更する

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

關聯項目: |netrw-r| |netrw-S|

關聯設定: |g:netrw_sort_by| |g:netrw_sort_sequence|

ファイルを開くウィンドウを指定する

ファイルを開くウィンドウを指定するには、netrw ウィンドウで "C" マップを押すか、|g:netrw_chgwin| にウィンドウ番號を設定します。ファイルを開く (|netrw-cr|) と、指定されたウィンドウが使はれます。

次のやうに設定すると

let g:netrw_chgwin= -1

デフォルトの動作に戾すことができます (つまり、カレントウィンドウを使ふ)。

關聯項目: |netrw-cr| |g:netrw_browse_split| 關聯設定: |g:netrw_chgwin|

netrw ウィンドウ/エクスプローラーウィンドウを擴大・縮小する

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

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

nmap <unique> (whatever)        <Plug>NetrwShrink

關聯項目: |:Lexplore|

關聯設定: |g:netrw_usetab|

ユーザー定義のマッピング

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

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

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

ユーザー函數には 1 つの引數が渡されます。以下のやうに

fun! ExampleUserMapFunc(islocal)

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

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:
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-debug| も參照)

P1. Windows 95 を使つてゐます。ftp が讀み込みのたびに末尾に 4 行の空行を出力します。

|netrw-fixup| を見て、次の設定を <.vimrc> に加へてください:

let g:netrw_win95ftp= 1
P2. Windows を使つてゐます。ftp を使つたブラウジングで時閒やサイズでソートできません。- あるいは - リモートシステムが 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 を設定しても、リモートシステムは期待した動作をしないでせう。

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

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

P4. ファイル一覽の表示スタイルを long をデフォルトにしたい。

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

let g:netrw_liststyle= 1

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

P5. ローカルブラウザーでの時閒の表示がをかしい

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

let g:netrw_timefmt= "%X"  (X は調べたオプション)
P6. ブラウザーで移動するごとにカレントディレクトリを設定したい。

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

let g:netrw_keepdir= 0
P7. ファイル名に中國語 (などの非 ascii) の文字が使はれてゐると、netrw (Explore, Sexplore, Hexplore, etc) でそれが表示されない。

(Vim メーリングリストでの Wu Yongwei 氏による囘答)

問題は確認できました。936 以外のコードページを使つてゐませんか? Windows の Unicode 版 API に對應してゐない他のアプリケーション同樣、どうやら Vim ではカレントコードページの文字以外は使へないやうです。これは OS の問題です。最近の Linux ディストリビューションのやうな UTF-8 ロケールが使へるシステムではこのやうな問題は起こらないでせう。

(かういふのが utf-8 が推奬される理由の 1 つです!)

P8. "ssh is not executable on your system" (ssh といふ實行可能ファイルがない) って表示されるんだけど、どうすればいいの?

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

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

(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 をエディタとして設定する:

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 の文字列を使つて初期値が設定されます。

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

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

let g:netrw_use_noswf= 0
P10. "[something] is a directory" と表示されて "Press ENTER or type command to continue" といふプロンプトが出るのがいやなんだけど...

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

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

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

以前の解決法:

P12. ディレクトリが正しくソートされない、一覽のファイル名になんか變な文字が付く、wide 表示でファイルが正しく整列されない、...。

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

P13. Windows + putty + ssh を使つてゐます。ブラウズするときにディレクトリの末尾に "/" が付いてゐないため、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"
P14. scp/ssh 接續で Nwrite の速度をスピードアップしたいんだけど?(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
P15. ファイルやディレクトリを開くのにシングルクリックぢやなくてダブルクリックを使ふやうにするにはどうすればいいの? (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| 參照)

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

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

P17. Netrw が自身のバッファを閉ぢてしまふ。どうやつて問題を再現させればいいの?
     1. :Explore する、ディレクトリを步く、ファイルを開く
     2. :Explore する、別のファイルを開く
     3. ステップ 1 で開いたバッファが閉ぢる
上記であなたが期待してゐる出力は何でせうか?また、あなたの環境では何が表示されますか?私は兩方のバッファが存在してゐて欲しいけど、實際は最後のバッファだけが殘ります。

(Lance) .vimrc に書かれた "set autochdir" が原因です。

(drchip) |'acd'| オプションをセットすると再現できました。バッファが正しく閉ぢられてゐないやうに見えます。":ls!" するとそれらの閉ぢられてゐないバッファが表示されます (":ls" では表示されません)。

P18. ssh でのみ到達可能なサーバー上のファイルをローカルで編輯するにはどうしたらいいの?

以下を參照してください。

http://stackoverflow.com/questions/12469645/
"Using Vim to Remotely Edit A File on ServerB Only Accessible From ServerA"

P19. ディレクトリのファイル一覽表示の際に行番號を表示するにはどうしたらいいの?

|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"
P20. ディレクトリのファイル一覽を表示して gvim を起動できますか?

次のコードを .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)。

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

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

au FileType netrw set enc=latin1
P22. ファイルをコピーもしくは移動させようとするとエラーが出ます:
     **error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn’t work!
何がをかしいの?

Netrw はコピーや移動を行ふためにいくつかのシステム用コマンドを持つてゐます (次を參照 |g:netrw_localcopycmd|, |g:netrw_localmovecmd|, |g:netrw_localrmdir|, |g:netrw_mkdir_cmd|)。

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

11. Netrw をデバッグする

ステップ 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
(@command{:echo &rtp} の出力を參照)

これらは起動時に自動的に讀み込まれます (: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
または
http://vim.sourceforge.net/scripts/script.php?script_id=120

Decho.vim は "vimball" の形で提供されてゐます。|vimball-intro| 參照。

2. 次のやうにして <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 のウィンドウに出力されます。

出力をファイルに保存するには次のやうにします

:tabnext
:set bt=
:w! DBG

加へて、次のコマンドも使つてもらへる助かります

:Dsep <command>

<command> は次にあなたがタイプするコマンドです。これによつて、デバッグ出力のどの部分がどのコマンドに對應するかを關聯付けるのが簡單になります。

その情報を <netrw.vim> のメンテナーに送つてください。あなたが使用してゐる OS や Vim のバージョン情報も一緖に添へてください。

(|:version| 參照)
NdrOchip at ScampbellPfamily.AbizM - NOSPAM

12. 變更履歷

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| |g:netrw_localrmdiropt|
        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-cb|, |netrw-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-list|s; 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 implemted
                        * :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-mb|, |netrw-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

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. クレジット

Vim editor      by Bram Moolenaar (Thanks, Bram!)
dav             support by C Campbell
fetch           support by Bram Moolenaar and C Campbell
ftp             support by C Campbell <NdrOchip@ScampbellPfamily.AbizM>
http            support by Bram Moolenaar <bram@moolenaar.net>
rcp
rsync           support by C Campbell (suggested by Erik Warendorph)
scp             support by raf <raf@comdyn.com.au>
sftp            support by C Campbell

inputsecret(), BufReadCmd, BufWriteCmd contributed by C Campbell

Jérôme Augé             -- also using new buffer method with ftp+.netrc
Bram Moolenaar          -- obviously vim itself, :e and v:cmdarg use,
                           fetch,...
Yasuhiro Matsumoto      -- pointing out undo+0r problem and a solution
Erik Warendorph         -- for several suggestions (g:netrw_..._cmd
                           variables, rsync etc)
Doug Claar              -- modifications to test for success with ftp
                           operation

Up: 目次   [Index]