Pi_netrw
Nvim の:help
ページ。 生成された ソースは こちら。 tree-sitter-vimdoc パーサーを使用。
------------------------------------------------ NETRW リファレンスマニュアル Charles E. Campbell 著 ------------------------------------------------ 著者: Charles E. Campbell <
[メールアドレスはスパム対策のため非表示]> (Campbell のメールアドレスから NOSPAM を削除してください)
著作権: Copyright (C) 2017 Charles E Campbell このパッケージ内のファイル(netrw.vim、pi_netrw.txt、netrwFileHandlers.vim、netrwSettings.vim、および syntax/netrw.vim を含む)には VIM ライセンスが適用されます。他のフリーソフトウェアと同様に、netrw.vim と関連ファイルは *現状のまま* 提供され、明示的または黙示的ないかなる保証もありません。商品性の保証はありません。いかなる目的への適合性の保証もありません。このプラグインを使用することにより、いかなる場合でも、著作権保有者はこのソフトウェアの使用から生じる損害について責任を負わないことに同意するものとします。自己責任でご使用ください!
1. 目次..............................................|netrw-contents| 2. Netrw の開始...................................|netrw-start| 3. Netrw リファレンス.......................................|netrw-ref| 外部アプリケーションとプロトコル.................|netrw-externapp| 読み込み.............................................|netrw-read| 書き込み.............................................|netrw-write| ソースの読み込み............................................|netrw-source| ディレクトリ一覧表示...................................|netrw-dirlist| ユーザーIDとパスワードの変更....................|netrw-chgup| 変数と設定..............................|netrw-variables| パス...............................................|netrw-path| 4. ネットワーク指向ファイル転送........................|netrw-xfer| NETRC...............................................|netrw-netrc| パスワード............................................|netrw-passwd| 5. アクティベーション............................................|netrw-activate| 6. トランスペアレントリモートファイル編集.......|netrw-transparent| 7. Ex コマンド...........................................|netrw-ex| 8. 変数とオプション.................................|netrw-variables| 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| リストスタイルの変更(細い、広い、長いツリー)..........|netrw-i| ブックマークされたディレクトリへの変更..................|netrw-gb| ドットファイルの表示/非表示のクイック切り替え......|netrw-gh| ローカルのみのファイル権限の変更.................|netrw-gp| 親ディレクトリへの変更.........................|netrw-u| 子ディレクトリへの変更...........................|netrw-U| 特殊ハンドラーを使用したブラウジングのカスタマイズ.........|netrw-x| ブックマークの削除..................................|netrw-mB| ファイルまたはディレクトリの削除.......................|netrw-D| ディレクトリ探索コマンド........................|netrw-explore| ワイルドカードとパターンを使用した探索...................|netrw-star| ファイルに関する情報の表示...................|netrw-qf| ファイルまたはディレクトリの非表示リストの編集..................|netrw-ctrl-h| 並び替え順序の編集........................|netrw-S| ファイルまたはディレクトリとして強制的に扱う............|netrw-gd|
netrw-gf 上へ移動............................................|netrw--| ファイルまたはディレクトリの非表示.........................|netrw-a| ブラウジングの改善..................................|netrw-ssh-hack| ブックマークと履歴の表示.......................|netrw-qb| 新しいディレクトリの作成..............................|netrw-d| ブラウジングディレクトリをカレントディレクトリにする.|netrw-cd| ファイルのマーキング.......................................|netrw-mf| ファイルのマーク解除.....................................|netrw-mF| 位置リストによるファイルのマーキング......................|netrw-qL| クイックフィックスリストによるファイルのマーキング......................|netrw-qF| 正規表現によるファイルのマーキング.................|netrw-mr| マークされたファイル:任意のシェルコマンド...............|netrw-mx| マークされたファイル:任意のシェルコマンド(一括)......|netrw-mX| マークされたファイル:任意の Vim コマンド.................|netrw-mv| マークされたファイル:引数リスト.........................|netrw-ma|
netrw-mA マークされたファイル:バッファリスト...........................|netrw-cb|
netrw-cB マークされたファイル:圧縮と解凍.........|netrw-mz| マークされたファイル:コピー...............................|netrw-mc| マークされたファイル:差分表示..................|netrw-md| マークされたファイル:編集...............................|netrw-me| マークされたファイル:grep..................................|netrw-mg| マークされたファイル:接尾辞による表示/非表示.........|netrw-mh| マークされたファイル:移動................................|netrw-mm| マークされたファイル:ソースの読み込み..............|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|
Netrw は、ファイルの読み込み、書き込み、ネットワーク上のブラウジング、ローカルブラウジングを容易にします! まず、プラグインが有効になっていることを確認してください。そのためには、少なくとも以下の内容を `
` に含める必要があります。(または netrw-activate を参照)set nocp " 'compatible' is not set
filetype plugin on " plugins are enabled
Netrw は、URL を使用した他のマシン上のファイルの「透過的な」編集をサポートしています(
netrw-transparent を参照)。例として、他のマシンにアカウントがあると仮定します。scp を使用できる場合は、次のように試してください。
vim scp://hostname/path/to/file
では、ssh/scp ではなく ftp の場合はどうでしょうか?それも簡単です。次のように試してください。
vim ftp://hostname/path/to/file
ftp の使用を簡素化したいですか? ftp が次のファイルのサポートしているか確認してください。
.netrc -- 通常はホームディレクトリに配置され、ユーザーだけが読み取り権限を持ちます(グループ、ワールド、その他は不可)。内容は次のようになります。
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」をホストのマシン名に置き換えます。そのため、次のように指定できます。
userid
password
各サイトを別々のファイルに保存します: c:\Users\MyUserName\MachineName。
ブラウジングについて説明しましょう。ファイルを編集する前に、周囲を確認したい場合です。現在のホストでブラウジングするには、ディレクトリを「編集」するだけです。
vim .
vim /home/userid/path
リモートホストでブラウジングするには、ディレクトリを「編集」します(ただし、ディレクトリ名の後に「/」を付けることを確認してください)。
vim scp://hostname/
vim ftp://hostname/path/to/dir/
netrw は scp と ftp 以外にも多くのプロトコルをサポートしています。次のセクション
netrw-externapp で、これらの外部アプリケーションを netrw と vim でどのように使用するかをご覧ください。
プラグインを使用したいが、何らかの理由で netrw を使用したくない場合は、netrw のプラグイン部分とオートロード部分をロードしないようにする必要があります。そのためには、次の 2 行を `
` に追加します。:let g:loaded_netrw = 1
:let g:loaded_netrwPlugin = 1
Netrw は、
netrw-start で説明されているように、scp と ftp 以外にもいくつかのプロトコルをサポートしています。これらには、dav、fetch、http などが含まれます... まあ、
netrw-externapp のリストを確認してください。各プロトコルには、そのプロトコルをサポートするデフォルトのコマンドを保持する変数が関連付けられています。
g:netrw_http_xcmd :
http://.. のオプション文字列。プロトコルはこの変数で指定され、個別に上書きできます。デフォルトでは、http 処理コマンドのオプション引数は次のとおりです。
elinks : "-source >"
links : "-dump >"
curl : "-L -o"
wget : "-q -O"
fetch : "-o"
たとえば、システムに elinks があり、テキストのレンダリングを試みてページを表示したい場合は、次のようにしたい場合があります。
let g:netrw_http_xcmd= "-dump >"
`.vimrc` に追加します。
g:netrw_http_put_cmd: このオプションは、実行ファイルと必要なオプションの両方を指定します。このコマンドは、URL に PUT 操作を実行します。
一般的に、通常の編集コマンドで URL 表記を使用できます。たとえば、
:e ftp://[user@]machine/path
Netrw は Nread コマンドも提供します。
:Nread ? ヘルプを表示 :Nread "machine:path" rcp を使用 :Nread "machine path" <.netrc> を使用して ftp を使用 :Nread "machine id password path" ftp を使用 :Nread "dav://machine[:port]/path" cadaver を使用 :Nread "fetch://[user@]machine/path" fetch を使用 :Nread "ftp://[user@]machine[[:#]port]/path" <.netrc> を使用して ftp を使用 :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
Netrw は Nwrite コマンドも提供します。
:Nwrite ? ヘルプを表示 :Nwrite "マシン名:パス" は rcp を使用 :Nwrite "マシン名 パス" は <.netrc> を使用した ftp を使用 :Nwrite "マシン名 ID パスワード パス" は ftp を使用 :Nwrite "dav://マシン名[:ポート番号]/パス" は cadaver を使用 :Nwrite "ftp://[ユーザー名@]マシン名[[:#]ポート番号]/パス" は <.netrc> を使用した ftp を使用 :Nwrite "rcp://[ユーザー名@]マシン名/パス" は rcp を使用 :Nwrite "rsync://[ユーザー名@]マシン名[:ポート番号]/パス" は rsync を使用 :Nwrite "scp://[ユーザー名@]マシン名[[:#]ポート番号]/パス" は scp を使用 :Nwrite "sftp://[ユーザー名@]マシン名/パス" は sftp を使用 http: サポートされていません!
通常のファイルソースコマンドで URL 表記を使用できます。例:
:so ftp://[user@]machine/path
Netrw は Nsource コマンドも提供しています。
:Nsource ? ヘルプを表示 :Nsource "dav://マシン名[:ポート番号]/パス" は cadaver を使用 :Nsource "fetch://[ユーザー名@]マシン名/パス" は fetch を使用 :Nsource "ftp://[ユーザー名@]マシン名[[:#]ポート番号]/パス" は <.netrc> を使用した ftp を使用 :Nsource "http://[ユーザー名@]マシン名/パス" は http を使用し、wget を使用 :Nsource "rcp://[ユーザー名@]マシン名/パス" は rcp を使用 :Nsource "rsync://[ユーザー名@]マシン名[:ポート番号]/パス" は rsync を使用 :Nsource "scp://[ユーザー名@]マシン名[[:#]ポート番号]/パス" は scp を使用 :Nsource "sftp://[ユーザー名@]マシン名/パス" は sftp を使用
ディレクトリを編集しようとすると、一覧が表示されます。
:e scp://[user]@hostname/path/
:e ftp://[user]@hostname/path/
リモートディレクトリの一覧表示(scp や ftp を使用するもの)では、末尾のスラッシュ "/" が必要です(スラッシュによって、netrw は引数をダウンロードするファイルではなく、参照するディレクトリとして扱います)。
Nread コマンドでもこれを実現できます(同様に、末尾のスラッシュが必要です)。
:Nread [protocol]://[user]@hostname/path/
ftp を使用しようとすると、ユーザーIDとパスワードの入力を求められます。これらはグローバル変数
g:netrw_uid と
s:netrw_passwd に保存されます。その後の ftp の使用では、これらの2つの文字列が再利用されるため、ftp の使用が簡素化されます。ただし、異なるユーザーIDやパスワードを使用する必要がある場合は、まず
NetUserPass() を呼び出す必要があります。パスワードの入力を回避するには、使用する ftp がホームディレクトリの <.netrc> ファイルをサポートしているかどうかを確認してください。
netrw-passwd も参照してください(ssh/scp を使用していて、scp でパスワードを使用しない方法を調べたい場合は、
netrw-ssh-hack を参照してください)。
:NetUserPass [uid [パスワード]] -- 必要に応じてプロンプトを表示 :call NetUserPass() -- uid とパスワードの入力を求める :call NetUserPass("uid") -- パスワードの入力を求める :call NetUserPass("uid","password") -- グローバル uid とパスワードを設定する
g:Netrw_funcref netrw がファイルを編集するときに呼び出される関数(または関数群)を指定します。ファイルが最初に編集され、次に関数参照(
Funcref)が呼び出されます。この変数には、
List型の Funcref も格納できます。(デフォルト) 未定義。(関数参照を保持するため、g:Netrw... の大文字は必須です)
Example: place in .vimrc; affects all file opening
fun! MyFuncRef()
endfun
let g:Netrw_funcref= function("MyFuncRef")
g:netrw_ftp 存在しない場合、デフォルトの ftp を使用 =0 デフォルトの ftp を使用 (uid パスワード) =1 代替の ftp メソッドを使用 (ユーザー uid パスワード) ftp で問題が発生する場合は、この変数の値を変更して、代替 ftp メソッドが設定で機能するかどうかを確認してください。
g:netrw_ftp_options デフォルトで選択されるこれらのオプションは、インタラクティブなプロンプトをオフにし、最初の接続時に自動ログインを試行しないように ftp を制限することを目的としています。ただし、すべての ftp 実装がこのオプションをサポートするわけではありません(例:ncftp)。="-i -n"
デフォルト:存在しない この変数が存在する場合、その中に含まれる文字列は、ftp クライアントに設定されるコマンドに追加されます。例:="passive"
g:netrw_ignorenetrc =0 (Linux、Cygwin のデフォルト) =1 <.netrc> ファイルがあるが機能せず、無視したい場合は、この変数を設定します。(Windows + cmd.exe のデフォルト)
=0 netrw のメニューを無効にする =1 (デフォルト) netrw のメニューを有効にする
g:netrw_sepchr =\0xff =\0x01 (enc == euc-jp の場合、おそらく他のエンコーディングでも同様です。お知らせください) 内部的に優先順位コードとファイル名を区切ります。
netrw-p12 を参照してください。
g:netrw_use_errorwindow =2: netrw からのメッセージはポップアップウィンドウを使用します。マウスを動かして停止すると、ポップアップウィンドウが閉じます。=1 : netrw からのメッセージは別々の1行のウィンドウを使用します。このウィンドウは、メッセージの信頼性の高い配信を提供します。=0 : (デフォルト) netrw からのメッセージは echoerr を使用します。この方法ではメッセージが表示されないことがありますが、ウィンドウを終了する必要はありません。
g:netrw_cygwin =1 Windows での scp は Cygwin からであると想定します。また、ネットワーク参照で、時間とサイズでソートされた ls を使用できます(Windows の場合のデフォルト)=0 Windows の scp は Windows スタイルのパスを受け入れると想定します。ネットワーク参照では、ls の代わりに dir を使用します。Unix を使用している場合は、このオプションは無視されます。
g:netrw_use_nt_rcp =0 WinNT、Win2000、WinXP の rcp を使用しない =1 バイナリモードで WinNT の rcp を使用 (デフォルト)
ファイルへのパスは、ほとんどのプロトコルで一般的にユーザーディレクトリを基準としています。ただし、一部のプロトコルでは、関連付けられたディレクトリを基準とするパスを使用する場合があります。
example: vim scp://user@host/somefile
example: vim scp://user@host/subdir1/subdir2/somefile
"somefile" が "user" のホームディレクトリにある場合。ルート相対パスを使用してファイルを取得する場合は、フルパスを使用してください。
example: vim scp://user@host//somefile
example: vim scp://user@host//subdir1/subdir2/somefile
Vim でのネットワーク指向ファイル転送は、プラグイン技術を使用した Vim スクリプト () によって実装されています。現在、rcp、scp、ftp または ftp+<.netrc>、scp、fetch、dav/cadaver、rsync、または sftp を使用したネットワーク経由での読み取りと書き込みの両方をサポートしています。
http は現在、wget または fetch を使用した読み取り専用でサポートされています。
は、Vim とさまざまなファイル転送プログラム間の接続として機能する標準プラグインです。autocommand イベント(BufReadCmd、FileReadCmd、BufWriteCmd)を使用して、url のようなファイル名を持つ読み取り/書き込みを傍受します。ex. vim ftp://hostname/path/to/file
コロンの前にある文字は、使用するプロトコルを指定します。この例では、ftp です。 スクリプトは、次に、外部プログラム(ftp、scp など)に発行するコマンドまたは一連のコマンド(通常は ftp)を作成します。外部プログラムは、実際のファイル転送/プロトコルを実行します。ファイルは、 スクリプトがクリーンアップする一時ファイル(Unix/Linux の場合、/tmp/...)から読み書きされます。
さて、Jan Minář の「FTP ユーザー名とパスワードの開示」について一言。まず、ftp は安全なプロトコルではありません。ユーザー名とパスワードはインターネット上で「クリアテキスト」で送信されます。いかなるスニッフィングツールでもこれらを拾うことができます。これは netrw の問題ではなく、ftp の問題です。これが気になる場合は、代わりに scp または sftp を使用してみてください。
Netrw は、同じ Vim セッション中、およびリモートホスト名が同じである限り、ユーザーIDとパスワードを再利用します。
Jan は、netrw が ftp をどのように処理するかについて少し混乱しているようです。通常、「ftp セッション」では複数のコマンドが実行され、彼は uid/パスワードは1つの ftp セッションでのみ保持されるべきだと考えているようです。しかし、netrw はすべての ftp 操作を別々の「ftp セッション」で行います。そのため、「ftp セッション」の1つに対してのみ uid/パスワードを記憶するということは、まったく uid/パスワードを記憶しないことと同じです。IMHO、これはリモートディレクトリを参照する際にすぐに面倒になるでしょう。
一方、Jan M. には、netrw(および Vim 自体)が「細工された」ファイル名を処理する際に抱えていた多くの脆弱性を指摘してくれたことに感謝します。
shellescape() と
fnameescape() 関数は、Bram Moolenaar によってこれらの問題に対処するために作成され、netrw はそれらを使用するように変更されました。それでも、私のアドバイスは、「ファイル名」があなたが実行して快適でない Vim コマンドのように見える場合は、開かないことです。
netrw-putty netrw-pscp netrw-psftp プロトコルを実装する外部アプリケーションは、変数を設定することで変更できます(例:scpは変数g:netrw_scp_cmdを使用し、デフォルトは"scp -q"です)。例として、PuTTYの使用を考えてみましょう。
let g:netrw_scp_cmd = '"c:\Program Files\PuTTY\pscp.exe" -q -batch'
let g:netrw_sftp_cmd= '"c:\Program Files\PuTTY\psftp.exe"'
(注:PuTTY v0.6の"-batch"オプションはWindows 7では動作しないという報告があります。そのため、このシステムではオフのままにすることをお勧めします)
netrw-p8 を参照してください。PuTTY、pscp、psftpなどの詳細について説明しています。
古いプロトコルであるFTPは、多数の実装によってサポートされているようです。残念ながら、一部の実装ではノイズが発生し(ファイルの最後にジャンクが追加される)、問題となる場合があります。そのため、懸念のあるユーザーは、FTPで読み取り後にクリーンアップを行うNetReadFixup()関数を記述することを選択できます。一部のUnixシステム(例:FreeBSD)では、「fetch」というユーティリティが提供されており、これはFTPプロトコルを使用しますが、ノイズがなく、実際にはで使用するためにより便利です。したがって、「fetch」が利用可能である場合(つまり、実行可能ファイルが存在する場合)、ftp://...ベースの転送に使用する方が適切です。
rcp、scp、sftp、httpの場合、ネットワーク指向のファイル転送を透過的に使用できます。つまり、
vim rcp://[user@]machine/path
vim scp://[user@]machine/path
FTPが<.netrc>をサポートしている場合、マシン名、ユーザーID、パスワードという必要な3要素がそのファイルに存在すれば、透過的に使用できます。ただし、FTPは独自に<.netrc>ファイルを使用できる必要があります。
vim ftp://[user@]machine[[:#]portnumber]/path
WindowsにはFTP(通常はc:\Windows\System32\ftp.exe)が用意されており、-s:filenameオプション(filenameにはフルパスを指定できますし、おそらく指定する必要があります)を使用します。このオプションには、FTPの起動時に自動的に実行されるFTPコマンドが含まれています。この機能を使用して、1つのサイトのユーザー名とパスワードを入力できます。
userid
password
netrw-windows-netrc netrw-windows-s g:netrw_ftp_cmdに-s:[path/]MACHINEが含まれている場合(Windowsマシンのみ)、netrwはFTP接続で要求された現在のマシン名をMACHINEに置換します。したがって、複数の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はユーザーにユーザーIDとパスワードを問い合わせる必要があります。後者は「サイレント」に行われます。つまり、実際に入力されたパスワードの代わりにアスタリスクが表示されます。Netrwは、最新の転送からのユーザーIDとパスワードを保持するため、そのマシンとの後続の転送(読み取り/書き込み)は、追加のプロンプトなしで行われます。
netrw-urls +=================================+============================+============+ | 読み取り | 書き込み | 使用するツール | +=================================+============================+============+ | 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 | 利用不可 | 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 が実行可能 (*4) | | | |
http://[user@]host/path | 利用不可 | wget | +---------------------------------+----------------------------+------------+ | HTTP: fetch が実行可能 (*4) | | | |
http://[user@]host/path | 利用不可 | fetch | +---------------------------------+----------------------------+------------+ | RCP: | | | | rcp://[user@]host/path | rcp://[user@]host/path | rcp | +---------------------------------+----------------------------+------------+ | RSYNC: | | | | rsync://[user@]host/path | rsync://[user@]host/path | rsync | | :Nread rsync://host/path | :Nwrite rsync://host/path | rsync | | :Nread rcp://host/path | :Nwrite rcp://host/path | rcp | +---------------------------------+----------------------------+------------+ | SCP: | | | | scp://[user@]host/path | scp://[user@]host/path | scp | | :Nread scp://host/path | :Nwrite scp://host/path | scp (*1) | +---------------------------------+----------------------------+------------+ | SFTP: | | | | sftp://[user@]host/path | sftp://[user@]host/path | sftp | | :Nread sftp://host/path | :Nwrite sftp://host/path | sftp (*1) | +=================================+============================+============+
(*1) 絶対パスを使用するには、scp://machine//pathを使用します。
(*2) <.netrc>が存在する場合、FTPクライアントで動作すると想定されます。それ以外の場合は、スクリプトがユーザーIDとパスワードを要求します。
(*3) FTPの場合、「machine」は、標準のFTPポートとは異なるポートが必要な場合は、machine#portまたはmachine:portになります。
(*4)
http:...,の場合、wgetが利用可能であれば使用されます。それ以外の場合は、fetchが利用可能であれば使用されます。
:Nreadコマンドと:Nwriteコマンドはどちらも、複数のファイル名を指定できます。
通常、ホームディレクトリにある<.netrc>ファイルには、ホスト名(マシン名)を、それと共に使用するユーザーIDとパスワードにマッピングする行が含まれています。
<.netrc>ファイル内の行の一般的な構文を以下に示します。UnixのFTPは通常<.netrc>をサポートしますが、WindowsのFTPは通常サポートしません。
machine {full machine name} login {user-id} password "{password}"
default login {user-id} password "{password}"
FTPクライアントは独自に<.netrc>の使用を処理する必要がありますが、
.netrc>ファイルが存在する場合、FTP転送ではユーザーIDまたはパスワードは要求されません。
注:このファイルにはパスワードが含まれているため、他のユーザーがこのファイルを読み取ることができないようにしてください!ほとんどのプログラムは、他のユーザーが読み取ることができる.netrcの使用を拒否します。システム管理者もファイルを読み取ることができることを忘れないでください!つまり、Linux/Unixの場合は:chmod 600 .netrc
WindowsのFTPクライアントは通常.netrcをサポートしませんが、netrwには回避策があります。
netrw-windows-sを参照してください。
残念ながら、netrwがscpにパスワードを渡す方法はなさそうです。そのため、scp経由でのすべての転送では、パスワードの再入力が必要になります。ただし、
netrw-ssh-hackがこの問題の解決に役立ちます。
Vimの
'nocompatible'モードが有効になっている場合、ネットワーク指向のファイル転送はデフォルトで利用できます。Netrwのスクリプトファイルは、システムのplugin、autoload、syntaxディレクトリに存在します。vimを起動するたびに、plugin/netrwPlugin.vimスクリプトのみが自動的に読み込まれます。少なくとも、カスタマイズファイル<.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
透過的なファイル転送は、通常のファイルの読み取りまたは書き込み(
:autocmdを介して
BufReadCmd、
BufWriteCmd、または
SourceCmdイベントで呼び出される)が行われるたびに発生します。そのため、ローカルファイルと同様に簡単に、ネットワークを介してファイルの読み取り、書き込み、またはソースを行うことができます!
vim ftp://[user@]machine/path
...
:wq
netrwなどのプラグインをvimで使用するように促す方法の詳細については、
netrw-activateを参照してください。
通常の読み取り/書き込みコマンドがサポートされています。また、いくつかの追加コマンドも使用できます。
netrw-transparentに示されているように、多くの場合、NwriteまたはNreadを使用する必要はありません(つまり、単に
:e URL
:r URL
:w URL
を適切に使用します)--
netrw-urlsを参照してください。以下の説明では、
{netfile}
はリモートファイルへのURLです。
:[range]Nw[rite] {netfile}
[{netfile}
]... 指定した行を{netfile}
に書き込みます。
:Nr[ead] {netfile}
{netfile}
... 現在の行の後に{netfile}
を読み込みます。
:Nsource :Ns :Ns[ource]
{netfile}
{netfile}
をソースします。リモート.vimrcを使用してvimを起動するには、次のように使用できます(すべて1行に記述)(Antoine Mechelynck氏に感謝)
vim -u NORC -N
--cmd "runtime plugin/netrwPlugin.vim"
--cmd "source scp://HOSTNAME/.vimrc"
:call NetUserPass("userid") この呼び出しはg:netrw_uidを設定し、パスワードが存在しない場合はユーザーに問い合わせます。(関連:
netrw-userpass)
:call NetUserPass("userid","passwd") この呼び出しは、g:netrw_uidとs:netrw_passwdの両方を設定します。ユーザーIDとパスワードは、FTP転送で使用されます。空文字列("")を使用することで、ユーザーIDとパスワードを効果的に削除できます。(関連:
netrw-userpass)
:NetrwSettings このコマンドについては、
netrw-settingsに記載されています。Netrwの設定を表示し、Netrwの動作を変更するために使用されます。
<netrw.vim>スクリプトは、<netrw.vim>のファイル転送動作に影響を与えるオプションとして機能するいくつかの変数を提供します。これらの変数は通常、ユーザーの<.vimrc>ファイルで設定できます。(こちらも参照:
netrw-settings netrw-protocol)
netrw-options
-------------
Netrw Options
-------------
Option Meaning
-------------- -----------------------------------------------
b:netrw_col NetWrite中の現在のカーソル位置を保持します g:netrw_cygwin =1 Windows下でのscpがCygwinからのものと想定します(デフォルト/Windows) =0 Windows下でのscpがWindowsスタイルのパスを受け入れると想定します(デフォルト/それ以外) g:netrw_ftp =0 デフォルトのFTPを使用します(UIDパスワード) g:netrw_ftpmode ="binary"(デフォルト) ="ascii"(任意) g:netrw_ignorenetrc =1(デフォルト)<.netrc>ファイルがあるが使用したくない場合は、この変数を設定します。存在するだけで<.netrc>が無視されます。 b:netrw_lastfile 最新のメソッド/マシン/パスを保持します。 b:netrw_line NetWrite中の現在の行番号を保持します g:netrw_silent =0 通常通り転送されます =1 サイレントに転送されます g:netrw_uid FTPの現在のユーザーIDを保持します。 g:netrw_use_nt_rcp =0 WinNT/2K/XPのrcpを使用しません(デフォルト) =1 WinNT/2K/XPのrcp(バイナリモード)を使用します -----------------------------------------------------------------------
netrw-internal-variables スクリプトは、一時的ではありますが、次の変数を内部的に使用します。
-------------------
Temporary Variables
-------------------
Variable Meaning
-------- ------------------------------------
b:netrw_method rcp/ftp+.netrc/ftpを示すインデックス w:netrw_method (b:netrw_methodと同じ) g:netrw_machine 入力から解析されたマシン名を保持します b:netrw_fname アクセスされているファイル名を保持します
------------------------------------------------------------
Netrwは、いくつかのプロトコルをサポートしています。これらのプロトコルは、以下にリストされている変数を使用して呼び出され、ユーザーによって変更できます。
------------------------
Protocol Control Options
------------------------
Option Type Setting Meaning
--------- -------- -------------- ---------------------------
netrw_ftp 変数 =存在しない "user userid"で設定されたuserid =0 "user userid"で設定されたuserid =1 "userid"で設定されたuserid NetReadFixup 関数 =存在しない 変更なし =存在する FTP経由でファイルが読み取られる際に、NetReadFixup()によってユーザーが自由にファイルを変換できるようにします g:netrw_dav_cmd 変数 ="cadaver" cadaverが実行可能であれば ="curl -o" curlが実行可能であれば g:netrw_fetch_cmd 変数 ="fetch -o" fetchが利用可能であれば g:netrw_ftp_cmd 変数 ="ftp" g:netrw_http_cmd 変数 ="fetch -o" fetchが利用可能であれば ="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 変数 ="/" ホスト名とファイル仕様を区切るために使用されます g:netrw_scp_cmd 変数 ="scp -q" g:netrw_sftp_cmd 変数 ="sftp"
-------------------------------------------------------------------------
g:netrw_..._cmdオプション(
g:netrw_ftp_cmdと
g:netrw_sftp_cmd)は、FTPプロトコルを処理するために使用する外部プログラムを指定します。コマンドラインオプション(パッシブモードの-pなど)を含めることができます。例
let g:netrw_ftp_cmd= "ftp -p"
2つのオプション(
g:netrw_ftpと
netrw-fixup)は、問題のある特定のFTPにも役立ちます。FTPで問題が発生した場合にこれらのオプションをどのように使用するかを理解するには、NetrwがFTP読み取りを行う方法について少し説明します。
FTPの場合、Netrwは通常、一時ファイルに次の形式のいずれかの行を構築します。
IF g:netrw_ftp !exists or is not 1 IF g:netrw_ftp exists and is 1
---------------------------------- ------------------------------
open machine [port] open machine [port] user userid password userid password [g:netrw_ftpmode] password [g:netrw_ftpextracmd] [g:netrw_ftpmode] get filename tempfile [g:netrw_extracmd] get filename tempfile
---------------------------------------------------------------------
次にNetrwは、フィルターを使用して上記の行を実行します。
:%! {g:netrw_ftp_cmd} -i [-n]
ここで、g:netrw_ftp_cmdは通常「ftp」です。-iはftpにインタラクティブにならないように指示し、-nはnetrcを使用しないことを意味し、メソッド#3(<.netrc>なしのftp)に使用されます。
<.netrc>が存在する場合は、ユーザーにuseridとパスワードを問い合わせる必要がないように使用されます。転送されたファイルは一時ファイルに格納されます。一時ファイルは、それを要求したメイン編集セッションウィンドウに読み込まれ、一時ファイルは削除されます。
FTPが「user」コマンドを受け入れず、すぐにuseridを要求する場合は、<.vimrc>に「let netrw_ftp=1」を追加してみてください。
netrw-cadaver 信頼されていないサーバーのSSL証明書ダイアログを処理するには、証明書をダウンロードして/usr/ssl/cert.pemに配置できます。この操作により、サーバーの扱いが「信頼済み」になります。
netrw-fixup netreadfixup 何らかの理由でFTPによって不要な行(AUTHメッセージなど)が生成される場合は、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は、ローカルシステムとリモートホスト上のディレクトリのブラウジングをサポートしています。ブラウジングには、ファイルとディレクトリのリスト表示、ディレクトリへのエントリ、その中のファイルの編集、ファイル/ディレクトリの削除、新しいディレクトリの作成、ファイルとディレクトリの移動(名前変更)、ファイルとディレクトリの複製などが含まれます。ファイルをマークして、システムコマンドを実行できます!Netrwブラウザは、一般的に、リモートディレクトリに対して以前のエクスプローラーのマップとコマンドを実装していますが、詳細(関連するグローバル変数名など)は必然的に異なります。ディレクトリを参照するには、単に「編集」します!
vim /your/directory/
vim .
vim c:\your\directory\
Netrwリモートファイルおよびディレクトリブラウザは、sshとftpの2つのプロトコルを処理します。URLのプロトコルがftpの場合、Netrwはリモートブラウジングにも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でパスワード入力を回避するには、(ftpがサポートしている場合)
netrw-netrcを参照してください。
ブラウザのファイル表示に影響を与えることができることがいくつかあります。
* sキーを押して、ファイル名を名前、時間、またはサイズでソートします。
ディレクトリ:/ 実行可能ファイル:* FIFO:| リンク:@ ソケット:=
(ctrl-]を使用してトピックを選択)〜 ブラウジング入門...............................|netrw-intro-browse| クイックリファレンス:マップ.........................|netrw-quickmap| クイックリファレンス:コマンド.....................|netrw-browse-cmds| 編集の非表示リストの非表示..............................|netrw-ctrl-h| ファイルまたはディレクトリの非表示...................|netrw-a| 接尾辞による非表示/非表示.....................|netrw-mh| ドットファイルの非表示.............................|netrw-gh| リストスタイルリストスタイルの選択(細い/長い/広い/ツリー)....|netrw-i| 関連付けられた設定変数...................|g:netrw_liststyle| リストを実行するために使用されるシェルコマンド.........|g:netrw_list_cmd| クイックファイル情報...............................|netrw-qf| ソート順ソートスタイルの選択(名前/時間/サイズ).........|netrw-s| ソートシーケンスの編集..................|netrw-S| ソートオプション...............................|g:netrw_sort_options| 関連付けられた設定変数...................|g:netrw_sort_sequence| 逆ソート順.........................|netrw-r|
% Netrwのカレントディレクトリで新しいファイルを開きます
netrw-%
netrw-mouse netrw-leftmouse netrw-middlemouse netrw-rightmouse <leftmouse>
(gvimのみ)マウス下の単語を
<cr>
が押されたかのように選択します(つまり、ファイルの編集、ディレクトリの変更)。
<middlemouse>
(gvimのみ)Pと同じです。マウス下の単語を選択します。
netrw-P を参照してください。
<rightmouse>
(gvimのみ)マウス下のファイル/ディレクトリを削除します
<2-leftmouse>
(gvimのみ)以下の条件の場合:* netrwで選択されたファイル内、かつ *
g:netrw_retmap == 1、かつ * netrwがautoloadされる前にユーザーが既に
<2-leftmouse>
マッピングを定義していない場合、左マウスボタンをダブルクリックするとnetrwブラウザウィンドウに戻ります。
g:netrw_retmap を参照してください。
<s-leftmouse>
(gvimのみ)mfのように、ファイルをマークします。シフトキーを押しながら左マウスボタンをドラッグすると、複数のファイルをマークできます。(
netrw-mf を参照)
netrw-quickcom netrw-quickcoms クイックリファレンス:コマンド
netrw-explore-cmds netrw-browse-cmds {{{2 :NetrwClean[!]............................................|netrw-clean| :NetrwSettings............................................|netrw-settings| :Ntree....................................................|netrw-ntree| :Explore[!] [dir] カレントファイルのディレクトリを参照します......|netrw-explore| :Hexplore[!] [dir] 水平分割と参照.............|netrw-explore| :Lexplore[!] [dir] 左側のエクスプローラーの切り替え...................|netrw-explore| :Nexplore[!] [dir] 垂直分割と参照...............|netrw-explore| :Pexplore[!] [dir] 垂直分割と参照...............|netrw-explore| :Rexplore エクスプローラーに戻る.....................|netrw-explore| :Sexplore[!] [dir] 分割とディレクトリの参照 .............|netrw-explore| :Texplore[!] [dir] タブと参照..........................|netrw-explore| :Vexplore[!] [dir] 垂直分割と参照...............|netrw-explore|
"I"キーを押すと、バナーの表示/非表示を切り替えることができます。
現在参照中のディレクトリを簡単に「ブックマーク」することができます。
mb
マークされたファイルやディレクトリがある場合、mbはそれらをブックマークリストに追加します。
netrw-:NetrwMB さらに、:NetrwMBを使用してファイルまたはディレクトリをブックマークすることができます。
:NetrwMB[!] [files/directories]
!なし:ファイル/ディレクトリをNetrwのブックマークシステムに追加します
引数なし、netrwバッファ内:マークされたファイルがある場合:マークされたファイルをブックマークします。それ以外の場合は:カーソル下のファイル/ディレクトリをブックマークします。引数なし、netrwバッファ外:現在開いているファイルをブックマークします。引数あり:各引数を
glob() で展開し、ブックマークします。
!付き:ファイル/ディレクトリをNetrwのブックマークシステムから削除します
:NetrwMBコマンドは、netrwバッファ以外でも使用できます(セッションでnetrwが呼び出された後)。
".netrwbook"ファイルは、netrw(とvim)がアクティブでないときにブックマークを保持します。デフォルトでは、ユーザーの
'runtimepath' の最初のディレクトリに保存されます。
参照は簡単です。カーソルを目的のファイルまたはディレクトリに移動します。<cr>
(Returnキー)を押すと、ファイルまたはディレクトリが選択されます。ディレクトリはそれ自体がリストされ、ファイルは元の読み込み要求で指定されたプロトコルを使用して開かれます。
注意点:リストには4つの形式があります(
netrw-iを参照)。Netrwは、長型と幅広型のリスト形式では、ファイル名とディレクトリ名を2つ以上のスペースで区切っていると想定しています。そのため、ファイル名またはディレクトリ名に2つ以上の連続したスペースが含まれている場合、または末尾にスペースがある場合は、「薄型」形式を使用して選択する必要があります。
デフォルト値が0である
g:netrw_browse_splitオプションを使用して、ファイルの開く処理をデフォルトの代わりに新しいウィンドウまたはタブで行うことができます。オプションが1または2の場合、分割はそれぞれ水平または垂直に行われます。オプションが3に設定されている場合、
<cr>
を押すと、ファイルが新しいタブに表示されます。
GUI(gvim)を使用している場合、<leftmouse>
ボタンを押してファイルを選択できます。さらに、
*
g:netrw_retmap == 1(デフォルト値は0)かつ * netrwで選択されたファイル内、かつ * netrwがロードされる前にユーザーが既に
<2-leftmouse>
マッピングを定義していない場合
左マウスボタンをダブルクリックすると、netrwブラウザウィンドウに戻ります。
Netrwは、特にパスワードの入力が必要なリモート参照の場合、以前に取得したディレクトリ一覧バッファを保持して再利用することで、参照速度の向上を試みています。
g:netrw_fastbrowse変数を使用してこの動作を制御します。低速参照(バッファの再利用なし)、中速参照(リモートディレクトリのみでディレクトリバッファリストの再利用)、高速参照(可能な限りディレクトリバッファリストを再利用)を設定できます。このような再利用の代償として、変更が行われた場合(新しいファイルがディレクトリに追加された場合など)、リストが古くなる可能性があります。ctrl-Lを押すと、いつでもディレクトリ一覧バッファを更新できます(
netrw-ctrl-lを参照)。
ツリー表示スタイルが有効になっている場合(
netrw-i参照)、gvimを使用している場合、
<s-cr>
マッピングを使用して、カーソルがあるディレクトリを閉じる(圧縮する)ことができます。
それ以外の場合、この効果を得るために、独自のキー組み合わせを再マッピングすることができます。
nmap <buffer> <silent> <nowait> YOURKEYCOMBO <Plug>NetrwTreeSqueeze
この行を$HOME/ftplugin/netrw/netrw.vimに入力します。これはnetrwバッファに対してのみ生成する必要があります。
通常、ファイルまたはディレクトリには
<cr>
を使用します。しかし、「o」マッピングを使用すると、新しいディレクトリ一覧またはファイルを表示する新しいウィンドウを開くことができます。水平分割が使用されます。(垂直分割については、
netrw-vを参照)
通常、「o」キーを押すと、新しいウィンドウが水平分割され、新しいウィンドウとカーソルが上部に表示されます。
通常、ファイルまたはディレクトリには<cr>
を使用します。「t」マッピングを使用すると、新しいディレクトリ一覧またはファイルを表示する新しいウィンドウを新しいタブで開くことができます。
新しい一覧をバックグラウンドタブで開きたい場合は、
gTを使用してください。
通常、ファイルまたはディレクトリには
<cr>
を使用します。しかし、「v」マッピングを使用すると、新しいディレクトリ一覧またはファイルを表示する新しいウィンドウを開くことができます。垂直分割が使用されます。(水平分割については、
netrw-oを参照)
通常、「v」キーを押すと、新しいウィンドウが垂直分割され、新しいウィンドウとカーソルが左側に表示されます。
ツリー表示バッファは1つだけです。「v」を既に表示されているサブディレクトリで使用すると画面が分割されますが、同じバッファが2回表示されます。
編集に使用しているgvimとは別に、ブラウジング用のgvimを保持することができます。netrwブラウザでファイル(ディレクトリではない)に対して
<c-r>
マッピングを使用すると、gvimサーバーが使用されます(
g:netrw_servernameを参照)。その後、
<cr>
を使用すると(
netrw-crを参照)、ファイルの編集にそのサーバーが再利用されます。
一覧スタイルの変更(細い、長い、広い、ツリー) netrw-i {{{2
「i」マッピングは、細い、長い、広い、ツリーの表示形式を切り替えます。
細い一覧形式は、ファイルとディレクトリの名前のみを表示します。
長い一覧形式は、リモートディレクトリの場合はssh経由の「ls」コマンドに基づいており、ローカルディレクトリの場合はファイル名、ファイルサイズ(バイト単位)、および最終更新日時を表示します。長い一覧形式では、末尾にスペースが付いたファイル名は認識できません。このようなファイルには、細い一覧形式を使用してください。
広い一覧形式は、ファイル名を区切るために2つ以上の連続したスペースを使用します。この形式を使用する場合、名前の中に2つ以上の連続したスペースが含まれているファイル名、または末尾にスペースが付いたファイル名は認識できません。ただし、細い一覧形式ではこのようなファイルを使用できます。広い一覧形式は最もコンパクトです。
ツリー表示形式は、最上位ディレクトリに続き、ファイルとディレクトリには1つ以上の「|」が付けられ、ディレクトリの深さを示します。ディレクトリ名の上にカーソルを置いて<cr>
キーを押すと、ディレクトリを開いたり閉じたりできます。
優先する一覧スタイルをデフォルトに設定できます。
g:netrw_liststyleを参照してください。たとえば、次の行を.vimrcに追加すると、
let g:netrw_liststyle= 3
ツリースタイルがデフォルトの一覧スタイルになります。
netrwツリー表示の一般的な使用方法の1つは、
vim .
(use i until a tree display shows)
navigate to a file
v (edit as desired in vertically split window)
ctrl-w h (to return to the netrw listing)
P (edit newly selected file in the previous window)
ctrl-w h (to return to the netrw listing)
P (edit newly selected file in the previous window)
...etc...
「gp」を使用すると、カーソル位置にあるファイルの新しい権限を要求されます。現時点では、ローカルファイルでのみ機能します。
ブックマークされたディレクトリにディレクトリを変更するには、
{cnt}
gb
新しいディレクトリ(現在のセッションに対して新しい)に変更するたびに、netrwは最近アクセスしたディレクトリの履歴リストにディレクトリを保存します(
g:netrw_dirhistmaxが0でない場合。デフォルトでは10エントリ保持)。「u」マッピングを使用すると、以前のディレクトリ(上位ディレクトリ)に変更できます。反対の操作については、
netrw-Uを参照してください。
「u」マッピングは、履歴を複数遡るためのカウントも受け付けます。便宜上、qb(
netrw-qbを参照)は、そのカウントで使用できる履歴番号を表示します。
「U」マッピングを使用すると、後のディレクトリ(下位ディレクトリ)に変更できます。このマッピングは「u」マッピングの逆です(
netrw-uを参照)。qbマッピングを使用して、ブックマークと履歴の両方を表示します(
netrw-qbを参照)。
「U」マッピングは、履歴を複数先に進むためのカウントも受け付けます。
ツリー表示の新しいツリー最上位を指定するには、
:Ntree [dirname]
「dirname」がない場合、現在の行が使用され(先頭の深さ情報は省略されます)、「dirname」がある場合、指定されたディレクトリ名が使用されます。
「gn」マッピングは、カーソル下の単語を取得し、それをツリー表示の最上位の変更に使用します。
:NetrwCleanを使用すると、ホームディレクトリからnetrwを簡単に削除できます。より正確には、
'runtimepath'の最初のディレクトリから削除します。
:NetrwClean!を使用すると、netrwは
'runtimepath'のすべてのディレクトリからnetrwの削除を試みます。もちろん、これを行うには、書き込み/削除権限が正しく設定されている必要があります。
コマンドのいずれの形式でも、netrwは最初に削除が実際に希望するものであることを確認します。netrwにファイルの削除権限がない場合、エラーメッセージが表示されます。
html、gif、jpeg、(word/office)docなどのファイルは、特別なハンドラー(つまり、コンピューターのオペレーティングシステムによって提供されるツール)で表示するのが最適です。Netrwでは、次の方法で特別なハンドラーを呼び出すことができます。
* ファイルパスの上にカーソルを置いてgxを押すか、またはnetrwバッファでxを押します。前者は、
g:netrw_nogx変数を定義することで無効にできます。* コマンドラインで`:Open <path>`と入力します。
:Openを参照してください。
特別なハンドラが使用するテキストを選択するには、ビジュアルモードを使用することもできます(
visual-startを参照)。通常、gxはカーソル下のテキストを取得するために近くのURLまたはファイル名をチェックします。
expand()が使用するものを
g:netrw_gx変数で変更できます(オプションには"<cword>"、"<cWORD>"が含まれます)。expand("<cfile>")は
'isfname'の設定に依存することに注意してください。または、ビジュアル選択(
visual-blockを参照)を行い、gxを押して使用するテキストを選択することもできます。
選択関数は、
'filetype'で指定された
<filetype>
を使用して、
Netrw_get_URL_<filetype>
関数を追加することで、各ファイルタイプに合わせて調整できます。この関数は、gxで使用されるURLまたはファイル名を返す必要があります。空の文字列を返す場合は、デフォルトの動作に戻ります。たとえば、MarkdownとHTMLのリンクの特別なハンドラは次のとおりです。
「カーソルの正確な位置に関係なく、隠されたリンクでもgxを動作させる」
function Netrw_get_URL_markdown()
" markdown URL such as [link text](http://ya.ru 'yandex search')
try
let save_view = winsaveview()
if searchpair('\[.\{-}\](', '', ')\zs', 'cbW', '', line('.')) > 0
return matchstr(getline('.')[col('.')-1:],
\ '\[.\{-}\](\zs' .. g:netrw_regex_url .. '\ze\(\s\+.\{-}\)\?)')
endif
finally
call winrestview(save_view)
return ''
endtry
endfunction
function Netrw_get_URL_html()
" HTML URL such as <a href='http://www.python.org'>Python is here</a>
" <a href="http://www.python.org"/>
try
let save_view = winsaveview()
if searchpair('<a\s\+href=', '', '\%(</a>\|/>\)\zs', 'cbW', '', line('.')) > 0
return matchstr(getline('.')[col('.') - 1 : ],
\ 'href=["'.."'"..']\?\zs\S\{-}\ze["'.."'"..']\?/\?>')
endif
finally
call winrestview(save_view)
return ''
endtry
endfunction
ファイルパス以外に、カーソル下のテキストがURLである場合があります。Netrwはデフォルトで次の正規表現を使用して、カーソル下のテキストがURLかどうかを判断します。
:let g:netrw_regex_url = '\%(\%(http\|ftp\|irc\)s\?\|file\)://\S\{-}'
Netrwは次の方法で特別なハンドラを決定します。
* Windowsの場合:explorer.exeが使用されます。* Mac OS Xの場合:openが使用されます。* Linuxの場合:xdg-openが使用されます。
適切なハンドラでパス(またはURL)
<path>
を開くには、次のように入力します。
:Open <path>
シェルにもVimのコマンドラインにも、エスケープは必要ありません。
特定のアプリケーション
<app>
<args>
を起動するには(多くの場合、
<args>
は
<path>
です)。
:Launch <app> <args>.
<args>
は任意の複雑さを持つことができ、特に多くのファイルパスを含むことができるため、エスケープはユーザーに任されています。
g:loaded_netrwPluginを設定してnetrwプラグインを無効にした場合(
netrw-noloadを参照)、次を使用できます。
:call netrw#Launch('<app> <args>')
:call netrw#Open('<path>')
ブックマークを削除するには、次を使用します。
{cnt}mB
マークされたファイルがある場合、mBはそれらをブックマークリストから削除します。
netrw-mfでファイルがマークされていない場合:(ローカルマーク済みファイルリスト)
ファイルとディレクトリの削除は、削除するファイル/ディレクトリにカーソルを移動し、「D」を押すことで行われます。ディレクトリは、正常に削除される前に空である必要があります。ディレクトリがディレクトリへのソフトリンクである場合、netrwはディレクトリを削除するリクエストを2回行います。netrwは削除を行う前に確認を求めます。「V」コマンド(ビジュアル選択)を使用して行範囲を選択し、「D」を押すことができます。
netrw-mfでファイルがマークされている場合:(ローカルマーク済みファイルリスト)
マークされたファイル(および空のディレクトリ)が削除されます。これも、実際に削除される前に確認を求められます。
パターンに一致するファイルを削除するもう1つの方法があります。
* mrを使用します(
netrw-mrを参照)。これにより、パターンを入力するように求められます。これにより、一致するファイルがマークされます。次に、「D」を押します。
空のディレクトリのみを「D」マッピングで削除できることに注意してください。通常のファイルも
delete()で削除されます。
g:netrw_rm_cmd: ssh HOSTNAME rm
g:netrw_rmdir_cmd変数は、ディレクトリの削除をサポートするために使用されます。デフォルト値は次のとおりです。
g:netrw_rmdir_cmdでディレクトリの削除に失敗した場合、netrwはg:netrw_rmf_cmd変数を使用して再度削除を試みます。デフォルト値は次のとおりです。
:[N]Explore[!] [dir]... カレントファイルのディレクトリエクスプローラ
:Explore :[N]Hexplore[!] [dir]... 水平分割とエクスプローラ
:Hexplore:[N]Lexplore[!] [dir]... 左側エクスプローラ切り替え
:Lexplore:[N]Sexplore[!] [dir]... 分割とカレントファイルのディレクトリエクスプローラ
:Sexplore :[N]Vexplore[!] [dir]... 垂直分割とエクスプローラ
:Vexplore:Texplore [dir]... タブとエクスプローラ
:Texplore:Rexplore ... エクスプローラとの間を移動
:Rexplore
netrw-:Explore :Exploreは、カレントファイルのディレクトリ(または指定されている場合はディレクトリ[dir])でローカルディレクトリブラウザを開きます。ファイルが変更されており、
'hidden'が設定されていない場合のみウィンドウが分割されます。それ以外の場合は、ブラウズウィンドウがそのウィンドウを占有します。通常、分割は水平方向に行われます。
netrw-:Rexploreも参照してください。:Explore!は:Exploreに似ていますが、垂直分割を使用します。
netrw-:Lexplore :[N]Lexplore [dir]は、カレントタブの左側に高さいっぱいのエクスプローラウィンドウを切り替えます。[dir]を省略すると、カレントディレクトリにnetrwウィンドウを開きます。:Lexplore [dir]は、コマンドが発行されたウィンドウに関係なく、指定されたディレクトリを左側のブラウザディスプレイに表示します。
デフォルトでは、:Lexploreは初期化されていない
g:netrw_chgwinを2に変更します。そのため、編集は優先的にウィンドウ#2で行われます。
[N]は新しい:Lexploreウィンドウ専用の
g:netrw_winsizeを指定します。つまり、[N] < 0 の場合:Lexploreウィンドウに
N列を使用する [N] = 0 の場合:通常の分割を行う [N] > 0 の場合:カレントウィンドウのN%を新しいウィンドウに使用します。
:[N]Lexplore! [dir]は:Lexploreに似ていますが、高さいっぱいのエクスプローラウィンドウは右側に開き、初期化されていない
g:netrw_chgwinは1に設定されます(例:編集は優先的に左端のウィンドウで行われます)。
netrw-:Sexplore :[N]Sexploreは、ローカルディレクトリブラウザを呼び出す前に常にウィンドウを分割します。Exploreと同様に、分割は通常水平方向に行われます。:[N]Sexplore! [dir]は:Sexploreに似ていますが、分割は垂直方向に行われます。
オプションのパラメータは次のとおりです。
[dir]:デフォルトでは、これらのエクスプローラコマンドはカレントファイルのディレクトリを使用します。ただし、代わりに使用するディレクトリ(パス)を明示的に指定することもできます。つまり、
:Explore /some/path
netrw-:Rexplore :Rexplore このコマンドは他のExploreコマンドとは少し異なり、必ずしもエクスプローラウィンドウを開くとは限りません。
エクスプローラに戻る〜 netrwを使用してファイル編集を行うと(たとえば、netrwブラウザウィンドウでファイル名の上にカーソルがある状態で<cr>
を押したとき)、そのファイルの編集中に発行された:Rexploreは、そのウィンドウの最後のnetrwブラウザディスプレイに表示を戻します。
エクスプローラから戻る〜逆に、ディレクトリを編集しているときに:Rexploreを発行すると、そのウィンドウで最後に編集されたファイルの編集に戻ります。
<2-leftmouse>
マッピング(gvimと協調的な条件下でのみ利用可能)は、:Rexploreと同じ動作をします。
Explore、Sexplore、Hexplore、またはVexplore を以下の4つのパターンのいずれかと組み合わせて使用すると、ローカルファイルシステムの要求を満たすファイルのリストが生成されます。これらの探索パターンは、リモートファイルのブラウジングでは機能しません。
*/filepat カレントディレクトリ内で filepat に一致するファイル **/filepat カレントディレクトリおよびその下のディレクトリ内で filepat に一致するファイル *//pattern カレントディレクトリに含まれるパターンに一致するファイル (vimgrep を使用) **//pattern カレントディレクトリおよびその下のディレクトリに含まれるパターンに一致するファイル (vimgrep を使用)
カーソルはリスト内の最初のファイルに置かれます。
:Nexplore を使用してリスト内の次のファイルに移動したり、
:Pexplore を使用して前のファイルに移動したりできます。Explore はディレクトリを更新し、カーソルを適切な位置に配置します。
プレーンな
:Explore
を入力すると、探索リストがクリアされます。
コンソールまたはGUIで認識可能なシフトアップまたはシフトダウンシーケンスが生成される場合、シフト+下矢印とシフト+上矢印を使用すると便利です。それらはnetrwで次のようにマップされています。
<s-down>
== Nexplore、および <s-up>
== Pexplore。
例として、以下を考えてみましょう。
:Explore */*.c
:Nexplore
:Nexplore
:Pexplore
ステータスラインの右側に、「Match 3 of 20」のようなメッセージが表示されます。
ファイル名の行にカーソルを置いて「qf」を押すと、ファイルのサイズと最終更新時刻が表示されます。現時点では、この機能はローカルファイルでのみ使用できます。
「<ctrl-h>」マッピングを使用すると、
g:netrw_list_hide に含まれるファイル/ディレクトリの非表示リストを変更できる要求画面が表示されます。非表示リストは、コンマで区切られた1つ以上のパターンで構成されます。これらのパターンに一致するファイルやディレクトリは、非表示になります(表示されません)。または、それらのファイルのみが表示されます(
netrw-aを参照)。
「gh」マッピング(
netrw-ghを参照)を使用すると、通常の非表示リストと「.」で始まるファイルまたはディレクトリを非表示にするリストを切り替えることができます。
例として、
let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
これにより、
netrw-ghコマンドの初期設定が有効になります。これは、
\(^\|\s\s\) : 行の先頭が次の文字で始まる場合、または連続する2つのスペースがある場合 \zs : 非表示の一致を開始する \. : ドットで始まる場合 \S\+ : 1つ以上の空白以外の文字が続く場合
「ソート順」が名前の場合、ソート順序(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-X {{{2
実行可能なファイルの上にカーソルがある状態で X を押すと、ファイル名を使用して引数を要求するプロンプトが表示されます。[return]を押すと、netrwは
system() を使用してそのコマンドと引数を呼び出します。結果は
:echomsg によって表示され、
:messages は結果の表示を繰り返します。ANSIエスケープシーケンスは削除されます。
リモートシンボリックリンク(sshまたはftpを介してリストされたもの)は、ファイルにリンクしているかディレクトリにリンクしているかを判断するのが困難なため、問題があります。
ファイルを強制的に処理するには、以下を使用します。
gf
ディレクトリを強制的に処理するには、以下を使用します。
gd
ディレクトリを上に移動するには、「-」を押すか、リスト内の ../ ディレクトリエントリの上にカーソルを置いて <cr>
を押します。
Netrwは、
g:netrw_list_cmd のコマンドを使用して、HOSTNAMEをユーザーが指定したURLで指定されたホストに変更した後に、ディレクトリ一覧操作を実行します。デフォルトでは、netrwはコマンドを次のように提供します。
ssh HOSTNAME ls -FLa
ここで、HOSTNAMEは読み取りの試行によって要求された[user@]hostnameになります。もちろん、ユーザーはこれを任意のコマンドで上書きできます。リモートブラウジングを実装するNetList関数は、ディレクトリが末尾のスラッシュでフラグ付けされていることを想定しています。
Netrwのブラウジング機能では、非表示リストを3つの方法で使用できます。無視する、一致するファイルを非表示にする、一致するファイルのみを表示する。
「a」マッピングを使用すると、3つの非表示モードを切り替えることができます。
g:netrw_list_hide 変数には、コンマで区切られた正規表現に基づくパターン(例:^.*\.obj$,^\.)が格納されており、非表示リストを指定します。(
netrw-ctrl-hも参照)非表示リストを設定するには、
<c-h>
マッピングを使用します。例として、「.」で始まるファイルを非表示にするには、
<c-h>
マッピングを使用して非表示リストを '^\..*' に設定できます(または、let g:netrw_list_hide= '^\..*' を .vimrc に追加できます)。その後、「a」キーを使用して、すべてのファイルを表示、一致するファイルを非表示、または一致するファイルのみを表示できます。
例:\.[ch]$ この非表示リストコマンドは、すべての*.cファイルと*.hファイルを非表示/表示します。
例:\.c$,\.h$ この非表示リストコマンドも、すべての*.cファイルと*.hファイルを非表示/表示します。
「a」マッピングを使用して、目的のモード(通常/非表示/表示)を選択することを忘れないでください!
すべてのファイルまたは非表示でないファイルを表示する場合:マークされたファイルをg:netrw_list_hideリストに追加し、非表示でないファイルのみを表示します。
非表示のファイルのみを表示する場合:マークされたファイルをg:netrw_list_hideリストから削除し、非表示でないファイルのみを表示します。endif
'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 オプションに割り当てるだけです。
Example: let g:netrw_list_hide= netrw_gitignore#Hide()
Git-ignored files are hidden in Netrw.
Example: let g:netrw_list_hide= netrw_gitignore#Hide('my_gitignore_file')
Function can take additional files with git-ignore patterns.
Example: let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
Combining 'netrw_gitignore#Hide' with custom patterns.
特にリモートディレクトリブラウザでは、パスワードを何度も入力するのは面倒です。
Linux/Unixシステムの場合、Rob Flickenger著の書籍「Linux Server Hacks - 100 industrial strength tips & tools」(O'Reilly、ISBN 0-596-00461-3)では、パスワード不要のsshとscpの設定方法と、関連するセキュリティ問題について説明しています。
http://hacks.oreilly.com/pub/h/66 で公開されていましたが、現在は「hackzine」にリダイレクトされているようです。この記事とBen Schmidtからの連絡に基づいて要約を試みます。
1. ローカルマシン(sshクライアント)で公開鍵/秘密鍵ペアを生成します。
ssh-keygen -t rsa
(saving the file in ~/.ssh/id_rsa as prompted)
2. パスフレーズを要求されたら(2回)、<CR>
を押してパスフレーズを省略します。パスフレーズを使用する場合は、ssh-agent も使用して、セッションごとに1回だけパスフレーズを入力する必要があります。パスフレーズを使用しない場合、ローカルコンピューターへのログインまたはキーファイルへのアクセス権限があれば、そのキーがログイン用に承認されているすべてのsshサーバーにアクセスできます。
3. これにより、2つのファイルが作成されます。
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
4. ターゲットマシン(sshサーバー)で
cd
mkdir -p .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メーリングリストのユーザーは、Pageantがパスワードを繰り返し入力する必要がないことを回避するのに役立つと述べています。
Kingston Fungは、パスワードを繰り返し入力する必要がないようにする別の方法について記述しました。
毎回scpのパスワードを入力する必要を避けるため、ドキュメントにはパスワード不要のsshアカウントを設定するハックが記載されています。しかし、それよりも良い方法を見つけました。パスワードを使用して通常のsshアカウントでアクセスすることで、毎回パスワードを入力する必要がなくなります。これはセキュリティと利便性の両面で優れています。ssh公開鍵認証とssh-agentを実装したところ、うまく動作しました!
Sshに関するヒント
"qb"(ブックマークの検索)を押すと、ブックマークされたディレクトリとディレクトリ移動履歴の両方が表示されます。
"d"マップを使用すると、リモート(グローバル変数g:netrw_mkdir_cmdに依存)またはローカル(グローバル変数g:netrw_localmkdirに依存)に新しいディレクトリを作成できます。Netrwは新しいディレクトリの名前の入力を求めます。その時点で<CR>
を押すと、ディレクトリ作成は中止されます。既に存在するローカルディレクトリ(ファイルまたはディレクトリとして)の作成を試みると、検出され、報告され、無視されます。
デフォルトでは、
g:netrw_keepdirは1です。この設定では、カレントディレクトリは参照ディレクトリを追跡しません。(v6のファイルエクスプローラーとの後方互換性のために実施されています)。
g:netrw_keepdirを0に設定すると、netrwはvimのカレントディレクトリを参照ディレクトリに追跡させるようになります。
しかし、g:netrw_keepdirのデフォルト設定が1で、netrwが独自の別個のカレントディレクトリ概念を維持している場合、2つのディレクトリを同じにするには、「cd」マップ(cdと入力)を使用します。このマップは、Vimのカレントディレクトリの概念を参照ディレクトリに設定します。
Netrwは、ファイルをマークするいくつかの方法を提供しています。
* ファイル名の先頭にカーソルを置き、「mf」を押してファイルをマークできます。
* gvimでは、さらに
<s-leftmouse>
を使用してファイルをマークできます。(
netrw-mouseを参照)
* :MFコマンドを使用できます。これは、ファイルのリストを受け取ります(ローカルディレクトリの場合、リストにはワイルドカードを含めることができます—
glob()を参照)
:MF *.c
以下のnetrwマップは、マークされたファイルを使用します。
ファイルのマークを1つずつ外すには、マークする方法と同じ方法を使用します。つまり、マークされたファイルの上にカーソルを置き、「mf」を押します。このプロセスは、gvimで
<s-leftmouse>
を使用していても機能します。「mu」を押すと、すべてのファイルのマークを外すことができます(
netrw-muを参照)。
マークされたファイルは、「netrwMarkFile」ハイライトグループを使用して強調表示されます。これはデフォルトで「Identifier」にリンクされています(
group-nameの下のIdentifierを参照)。ハイライトグループは、次のようなものを`$HOME/.vim/after/syntax/netrw.vim`に追加することで変更できます。
highlight clear netrwMarkFile
hi link netrwMarkFile ..whatever..
`$HOME/.vim/after/syntax/netrw.vim` に追加します。
マウスが有効になっていてvimで機能する場合は、
<s-leftmouse>
を使用して1つ以上のファイルをマークできます。シフトキーを押しながら左マウスボタンをドラッグすることで、複数のファイルをマークできます。(
netrw-mouseを参照)
markfilelist global_markfilelist local_markfilelist マークされたファイルはすべてグローバルマーク済みファイルリストに入力されます。そのようなリストは1つしかありません。さらに、すべてのnetrwバッファには、独自のバッファローカルマーク済みファイルリストもあります。netrwバッファは特定のディレクトリに関連付けられているため、これは各ディレクトリに独自のローカルマーク済みファイルリストがあることを意味します。マーク済みファイルに対して動作するさまざまなコマンドは、マーク済みファイルリストのいずれかを使用します。
既知の問題:ツリーモードを使用している場合(
g:netrw_liststyle)、複数のディレクトリに同じ名前のファイルがある場合、そのようなファイルをマークすると、すべてマークされているかのようにそのようなファイルがすべて強調表示されます。
markfilelistには、選択されたファイルだけが含まれます。この問題は修正されない可能性が高いです。
"mF"コマンドは、現在のバッファ内のすべてのファイルのマークを解除します。特定の、既にマークされているファイルに対してmf(
netrw-mf)を使用することで、そのファイルのみのマークを解除することもできます。
"qL"を使用して、
位置リストをマーク済みファイルリストに変換できます。その後、me(
netrw-me)などのコマンドを使用して編集できます。
"mr"を押してファイルをマークすることもできます。netrwは、「Enter regexp: 」というプロンプトを表示します。次に、`*.c$`などのシェルスタイルの正規表現を入力できます(
glob()を参照)。リモートシステムでは、glob()は機能しないため、netrwは「*」を「.*」に変換し(
regexpを参照)、それに基づいてファイルをマークします。将来、glob()スタイルの式ではなく
regexpを使用できるようにするかもしれません(もう1つのオプション)。
"mv"マップにより、netrwはローカルマーク済みファイルリスト上の各ファイルに対して個別に任意のvimコマンドを実行します。
* 1split * sil! keepalt e file * vimコマンドを実行 * sil! keepalt wq!
「Enter vim command: 」というプロンプトが表示され、使用するvimコマンドを入力するように求められます。コマンドの編集方法の詳細については、
cmdline-windowを参照してください。
"mx"マップがアクティブになると、netrwは、マークされたすべてのファイルに適用する(外部)コマンドをユーザーに要求します。コマンド内のすべての「%」は、順番に各マークされたファイルの名前に置き換えられます。「%」がコマンドにない場合は、コマンドの後にスペースとマークされたファイル名が続きます。
例:(ファイルをマークする)mx コマンドを入力:cat
結果は、一連のシェルコマンドになります:cat 'file1' cat 'file2' ...
'mX'マップがアクティブになると、netrwは、グローバルマーク済みファイルリスト上のすべてのマークされたファイルに適用する(外部)コマンドをユーザーに要求します。「一括」とは、1つのコマンドですべてのファイルに対して一度に実行されることを意味します。
command files
このアプローチは、たとえば、ファイルを選択してtarballを作成する場合に役立ちます。
(mark files)
mX
Enter command: tar cf mynewtarball.tar
この例で実行されるコマンド
tar cf mynewtarball.tar 'file1' 'file2' ...
maを使用すると、マーク済みファイルリストから引数リストにファイル名を変換します。mAを使用すると、引数リストからマーク済みファイルリストにファイル名を変換します。
cbを使用すると、マーク済みファイルリストからバッファリストにファイル名を変換します。cBを使用すると、バッファリストからマーク済みファイルリストにファイル名をコピーします。
マークされたファイルの中に圧縮ファイルがあれば、"mz"コマンドで解凍します。マークされたファイルの中に解凍済みのファイルがあれば、
g:netrw_compressで指定されたコマンド(デフォルトは"gzip")を使用して圧縮します。
正規表現で複数のファイルをマークできることに注意してください(
netrw-mrを参照)。これは、多数のファイルの圧縮と解凍を容易にするのに特に役立ちます。
mtコマンド(
netrw-mt)でターゲットディレクトリを選択します。次に、ディレクトリを変更し、ファイルを選択します(
netrw-mfを参照)。そして"mc"を押します。コピーは現在のウィンドウ(mfを実行したウィンドウ)からターゲットへ実行されます。
netrw-mtでターゲットディレクトリを設定していない場合、netrwはコピー先のディレクトリを問い合わせます。
ディレクトリとその内容(ローカルのみ)をターゲットディレクトリにコピーすることもできます。
vimdiffを使用して、選択したファイル(2つまたは3つ)間の違いを視覚的に確認します。グローバルなマーク済みファイルリストを使用します。
"me"コマンドは、マークされたファイルを
arglistに配置し、編集を開始します。
:Rexploreでエクスプローラウィンドウに戻ることができます。(
:nおよび
:pを使用して、arglist内の次のファイルと前のファイルを編集できます)
"mg"コマンドは、マークされたファイルに
:vimgrepを適用します。コマンドは必要なパターンを要求します。その後、入力できます。
/pattern/[g][j]
! /pattern/[g][j]
pattern
/pattern/jの場合、"mg"は現在のマーク済みファイルリストを、指定されたパターンを持つマーク済みファイルのみに絞り込みます。したがって、使用できます。
mr ...file-pattern...
mg /pattern/j
ファイルパターンを満たし、かつ所望のパターンを含むファイルに限定されたマーク済みファイルリストを作成するために使用できます。
"mh"コマンドは、マークされたファイルの接尾辞を抽出し、非表示リストへの存在を切り替えます。同じ接尾辞を複数回マークすると、各ファイルの接尾辞の存在が切り替わることに注意してください(同じ接尾辞を持つマークされたファイルの数が偶数であれば、選択しなかったことと同じです)。
警告: ファイルの移動はコピーよりも危険です。移動されるファイルは最初にコピーされ、次に削除されます。コピー操作が失敗し、削除が成功した場合、ファイルが失われます。最初に重要でないファイルで試すか、mcとDを使用して自分でコピーしてから削除してください。自己責任で使用してください!
mtコマンド(
netrw-mt)でターゲットディレクトリを選択します。次に、ディレクトリを変更し、ファイルを選択します(
netrw-mfを参照)。そして"mm"を押します。移動は現在のウィンドウ(mfを実行したウィンドウ)からターゲットへ実行されます。
"ms"を使用すると、netrwはマークされたファイルをソース化します(vimの
:sourceコマンドを使用)。
* カーソルがファイル名の上にある場合、netrwウィンドウに現在表示されているディレクトリがコピー/移動先のターゲットとして使用されます。
* また、カーソルがバナー内にある場合、netrwウィンドウに現在表示されているディレクトリがコピー/移動先のターゲットとして使用されます。ただし、ターゲットが既に現在のディレクトリである場合は除きます。その場合、「mf」と入力するとターゲットがクリアされます。
* ただし、カーソルがディレクトリ名の上にある場合、そのディレクトリがコピー/移動先のターゲットとして使用されます。
* :MT [ディレクトリ]コマンドを使用してターゲットを設定できます。
netrw-:MT このコマンドは
<q-args>を使用するため、ディレクトリ名内のスペースはエスケープせずに使用できます。
* マウス対応のvimまたはgvimを使用している場合、<c-leftmouse>
を使用してターゲットを選択できます。
vimセッションでは一度に1つのコピー/移動先のターゲットしか存在しません。つまり、ターゲットはスクリプト変数(
s:varを参照)であり、すべてのnetrwウィンドウ(vimのインスタンス内)で共有されます。
メニューとgvimを使用する場合、netrwは「ターゲット」エントリを提供し、ブックマークと履歴のリストからターゲットを選択できます。
関連トピック:ファイルのマーク......................................|netrw-mf| 正規表現によるファイルのマーク................|netrw-mr| ブックマークを使用したマーク済みファイルのターゲットディレクトリ.....|netrw-Tb| 履歴を使用したマーク済みファイルのターゲットディレクトリ.......|netrw-Th|
を私の<.vimrc>に記述しています。
リモートのファイルセットにタグ付けすると、結果として得られるタグファイルが「取得」されます。つまり、コピーがローカルシステムのディレクトリに転送されます。次に、ローカルになったタグファイルが変更され、ネットワークを介して使用できるようになります。行われた変更は、タグ内のファイル名に関するものです。各ファイル名の前に、それを取得するために使用されたnetrw互換のURLが付けられます。その後、タグへの移動アクションの1つ(
tags)を使用すると、netrwによって目的のファイルが編集され、タグに移動されます。
マークされたファイル:ブックマークを使用したターゲットディレクトリ
netrw-Tb {{{2
マークされたファイルのコピー/移動先のターゲットを設定します。
netrw-qbマッピングを使用すると、ブックマーク(と履歴)のリストが表示されます。[count]Tb(デフォルトのcount:1)を使用して、ブックマークの1つをマーク済みファイルのターゲットにすることができます。
関連トピック:ターゲットへのファイルのコピー............................|netrw-mc| ブックマークと履歴の表示......................|netrw-qb| マーク済みファイルのターゲットディレクトリの指定.........|netrw-mt| 履歴を使用したマーク済みファイルのターゲットディレクトリ.......|netrw-Th| ファイルのマーク......................................|netrw-mf| 正規表現によるファイルのマーク................|netrw-mr| ターゲットへのファイルの移動.............................|netrw-mm|
マークされたファイル:履歴を使用したターゲットディレクトリ
netrw-Th {{{2
マークされたファイルのコピー/移動先のターゲットを設定します。
netrw-qbマッピングを使用すると、履歴(とブックマーク)のリストが表示されます。[count]Th(デフォルトのcount:0、つまり現在のディレクトリ)を使用して、履歴エントリの1つをマーク済みファイルのターゲットにすることができます。
関連トピック:ターゲットへのファイルのコピー............................|netrw-mc| ブックマークと履歴の表示......................|netrw-qb| マーク済みファイルのターゲットディレクトリの指定.........|netrw-mt| ブックマークを使用したマーク済みファイルのターゲットディレクトリ.....|netrw-Tb| ファイルのマーク......................................|netrw-mf| 正規表現によるファイルのマーク................|netrw-mr| ターゲットへのファイルの移動.............................|netrw-mm|
"mu"マッピングは、現在マークされているすべてのファイルをマーク解除します。このコマンドは"mF"とは異なり、後者は現在のディレクトリ内のファイルのみをマーク解除しますが、"mu"はグローバルおよびすべてのバッファローカルのマーク済みファイルをマーク解除します(
netrw-mFを参照)。
<netrw.vim>ブラウザは、変更できる変数の形式で設定を提供します。これらの設定を<.vimrc>に配置することで、ブラウジング設定をカスタマイズできます。(
netrw-settingsも参照)
--- -----------
Var Explanation
--- -----------
g:netrw_altfile CTRL-^を使用して最後に編集したファイルに戻るのが好きな人もいます。このパラメータを1に設定して選択します。他の人は
CTRL-^を使用してnetrwブラウジングバッファに戻るのが好きです。このパラメータを0に設定して選択します。デフォルト:=0
g:netrw_browse_split ブラウズ時に、
<cr>
でファイルを開く方法: =0: 同じウィンドウを再利用 (デフォルト) =1: まずウィンドウを水平分割 =2: まずウィンドウを垂直分割 =3: 新しいタブでファイルを開く =4: "P" と同じ動作 (つまり、前のウィンドウを開く)
g:netrw_preview を使用して水平分割の代わりに垂直分割を行うことができます。 =[servername,tab-number,window-number] このような
List が指定されると、"servername" で指定されたリモートサーバーを使用して編集が行われます。また、指定されたタブ番号とウィンドウ番号を使用して編集が行われます(
clientserver、
netrw-ctrl-rを参照)。このオプションは、
:Lexplore ウィンドウの作成には影響しません。
g:netrw_chgperm Unix/Linux: "chmod PERM FILENAME" Windows: "cacls FILENAME /e /p PERM" ファイルのアクセス権を変更するために使用されます。
g:netrw_clipboard =1 デフォルトでは、netrwはクリップボードの値が変更されないようにしようとします。しかし、一部のユーザーはこれによって速度の問題が発生すると報告しています。そのため、このオプションを0に設定すると、netrwによるクリップボードの保存と復元を禁止できます(復元は必要に応じてのみ行われます)。つまり、通常のnetrw操作によって(意図せずに)クリップボードが変更された場合、以前の状態に復元されません。
g:Netrw_corehandler netrwのブラウザの "x" コマンドで
<core>
ファイルを処理する際に追加で実行する処理を指定できます(
netrw-xを参照)。存在する場合、g:Netrw_corehandlerは1つ以上の関数参照(
Funcrefを参照)を指定します。(大文字のg:Netrw...は関数参照を保持するために必要です)
値 薄い-長い-ツリー 広い =0 u-cul u-cuc u-cul u-cuc =1 u-cul u-cuc cul u-cuc =2 cul u-cuc cul u-cuc =3 cul u-cuc cul cuc =4 cul cuc cul cuc =5 U-cul U-cuc U-cul U-cuc =6 U-cul U-cuc cul U-cuc =7 cul U-cuc cul U-cuc =8 cul U-cuc cul cuc
g:netrw_decompress = { ".gz" : "gunzip" , ".bz2" : "bunzip2" , ".zip" : "unzip" , ".tar" : "tar -xf"} 接尾辞と解凍プログラムのマッピングを行う辞書です。
g:netrw_fastbrowse =0: 低速ディレクトリブラウジング。ディレクトリ一覧を再利用せず、常にディレクトリ一覧を取得します。 =1: 中速ディレクトリブラウジング。リモートディレクトリブラウジング時のみディレクトリ一覧を再利用します。(デフォルト値) =2: 高速ディレクトリブラウジング。ディレクトリが以前に表示されたことがない場合(または
netrw-ctrl-lが使用された場合)のみディレクトリ一覧を取得します。
高速ブラウジングは古いディレクトリ一覧バッファを保持するため、再取得する必要がありません。この機能は、特にリモートブラウジングで重要です。ただし、このようなディレクトリにファイルが追加または削除された場合、古いディレクトリバッファは古くなります。
netrw-ctrl-lを使用して、常にディレクトリ一覧を更新できます。このオプションにより、ユーザーは正確性(最新の一覧)と速度のトレードオフを選択できます。
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_hide "a"マップによって制御されます(
netrw-aを参照) =0 : すべて表示 =1 : 非表示ファイル以外を表示 =2 : 非表示ファイルのみを表示 デフォルト: =1
g:netrw_keepdir =1 (デフォルト) ブラウジングディレクトリから現在のディレクトリを保護します。 =0 現在のディレクトリをブラウジングディレクトリと同じにします。現在のブラウジングディレクトリはb:netrw_curdirに含まれています(
netrw-cdも参照)
g:netrw_list_cmd リモートディレクトリの一覧表示コマンド デフォルト: (sshが実行可能であれば) "ssh HOSTNAME ls -FLa"
g:netrw_liststyle デフォルトのリストスタイルを設定します: = 0: 薄いリスト(ファイルごとに1行) = 1: 長いリスト(ファイルごとに1行、タイムスタンプ情報とファイルサイズ付き) = 2: 広いリスト(複数のファイルが列に表示) = 3: ツリースタイルのリスト
g:netrw_list_hide ファイルを非表示にするカンマ区切りのパターンリスト パターンは正規表現です(
regexpを参照) git-ignoreファイルに対する特別なサポートがあります。ヘルパー関数'netrw_gitignore#Hide()'からの出力を追加して、すべてのgitignoreされたファイルを自動的に非表示にすることができます。詳細は
netrw-gitignoreを参照してください。デフォルト: ""
例
let g:netrw_list_hide= '.*\.swp$'
let g:netrw_list_hide= netrw_gitignore#Hide() .. '.*\.swp$'
g:netrw_localmkdir ="mkdir" Linux/Unix/MacOS/Cygwin =expand("$COMSPEC") Windows ローカルディレクトリを作成するためのコマンドです。
g:netrw_maxfilenamelen 既定値は32です。これは、長いリストを80桁のディスプレイに収めるように選択されています。画面幅が広く、ファイル名またはディレクトリ名が32バイトを超える場合は、このオプションを設定してリストを列形式で維持できます。
g:netrw_mousemaps =1(既定値) ブラウジング中にマウスボタンを有効にします。左マウスボタン:ファイル/ディレクトリの開く、シフト+左マウスボタン:ファイルのマーキング、中央マウスボタン:Pと同じ、右マウスボタン:ファイル/ディレクトリの削除 =0:マウスマップを無効にします。
g:netrw_sizestyle 未定義:実際のバイト数(既定値) ="b":実際のバイト数(既定値) ="h":人間が読みやすい形式(例:5k、4m、3g) 1000を基数とする ="H":人間が読みやすい形式(例:5K、4M、3G) 1024を基数とする 長いリスト(
netrw-i)とクエリファイルマップ(
netrw-qf)は、指定されたスタイルを使用してファイルサイズを表示します。
g:netrw_retmap 存在し、1に設定されている場合:* netrwで選択されたファイル内であり、* 通常モードの
<2-leftmouse>
マッピングが存在しない場合、
<2-leftmouse>
はnetrwブラウザウィンドウに簡単に戻るためのマッピングになります。例:一度クリックしてファイルを選択して開き、ダブルクリックして戻ります。
代わりに、次の方法を選択することもできます。* g:netrw_retmap= 1 を設定し、* nmap <silent>
YourChoice <Plug>
NetrwReturn を使用し、<2-leftmouse>
の代わりに別のマッピングを使用して戻りを呼び出します。
既定値:=0
g:netrw_sort_options :sortを使用してソートが行われます。この変数の値はソートコマンドに追加されます。したがって、例えば、次のように.vimrcに記述することで大文字と小文字を区別しないようにすることができます。
let g:netrw_sort_options="i"
既定値:""
g:netrw_sort_sequence 名前でソートする場合、最初にカンマ区切りのパターンシーケンスでソートします。ファイルタイプを示すための装飾は、パターンで考慮する必要があります。既定値:'[\/]$,,\.bak$,\.o$,\.h$, \.info$,\.swp$,\.obj$'
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を参照)。ただし、次のような行を
hi link netrwCompress Visual
自分の<.vimrc>に入れることで、自分の好みを使用できます。あるいは、そのような仕様を
.vim/after/syntax/netrw.vim.
netrwGrayの強調表示は、netrwが
* netrwGray has not been previously
defined
* the gui is running
例として、私は暗い背景のカラースキームを使用しており、.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_suppress_gx_mesg =1:ブラウザは、通常は不要なメッセージをページに混在させて生成することがあります。ただし、リンクを使用する場合など、それらのメッセージはブラウザが生成するものです。このオプションを0に設定すると、netrwはブラウザのメッセージを抑制しません。
g:netrw_timefmt vimのstrftime()にフォーマット文字列を指定します。既定値である"%c"は、私のstrftime()のマニュアルページのエントリによると「現在のロケールで推奨される日付と時刻の表現」です。しかし、誰もがそれに満足しているわけではありません。いくつかの代替案:"%a %d %b %Y %T"、" %a %Y-%m-%d %I-%M-%S %p" 既定値:"%c"
g:netrw_use_noswf netrwは通常、ブラウザバッファのスワップファイルの書き込みを回避します。しかし、一部のシステムでは、これにより厄介なml_getエラーが発生するようです。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が負の場合、g:netrw_winsizeの絶対値は、新しいウィンドウの行数または列数を指定するために使用されます。g:netrw_winsizeが0の場合、通常の分割が行われます(つまり、
'equalalways'が有効になります)。既定値:50(50%)
g:netrw_xstrlen マルチバイト文字を含む文字列の長さをnetrwがどのように計算するかを制御します。(N Weibull、T Mechelynckによる) =0:Vimの組み込みstrlen()を使用する =1:コードポイントの数(ラテン文字a + アクセント記号は2つのコードポイント)(既定値) =2:スペースコードポイントの数(ラテン文字a + アクセント記号は1つのスペースコードポイント、ハードタブは1つ、幅広と狭いのCJKはそれぞれ1つなど) =3:仮想の長さ(タブを
'tabstop'の間の任意の数としてカウントする、幅広のCJKを1ではなく2としてカウントする、アラビア語のアリフをlamの直前にある場合は0、それ以外の場合は1としてカウントするなど)
この変数は最上位メニューの名前を指定します。既定では"Netrw."です。変更する場合は、.vimrcで行ってください。
Netrwは、ユーザーオプションを保存し、オプションをnetrwのニーズと互換性のあるものにし、その後復元することで、ユーザーオプションを処理するように設計されています。しかし、autochdirオプションは
:set acd
問題があります。Autochdirは、編集するファイルを含むディレクトリにカレントディレクトリを設定します。これは、ディレクトリにも適用されるようです。つまり、autochdirは(「ファイル」自体がディレクトリであっても)「ファイル」を含むディレクトリにカレントディレクトリを設定します。
NetrwSettings.vimプラグインを使用すると、
:NetrwSettings
netrwが設定に使用している多くの変数を含むウィンドウが表示されます。これらの値を変更できます。ファイルを保存すると、その設定が使用されます。各変数の機能に関するヘルプを表示するには、行のいずれかで「?」を押すこともできます。
マーキングされたファイルがない場合
リモートディレクトリを参照している際に、カーソル下のファイルを(ローカルマシンにコピーを取得しますが、編集はしません)取得するには、Oキーを押します。
ファイルがマークされている場合
マークされたファイルが取得されます(つまり、コピーがローカルマシンに転送されますが、編集のために設定されません)。
この操作ではftpとscpのみがサポートされています(ただし、これら2つは参照に使用できるため、問題はありません)。その後、ステータスバーの右側に「filenameを取得中」のようなメッセージが表示されます。転送が完了すると、ステータスラインは復元されます。
Netrwはローカルブラウザを使用してファイルを取得することもできます。Netrwによるディレクトリの表示は、ユーザーの<.vimrc>で
g:netrw_keepdirが0に設定されていない限り、必ずしもVimの「カレントディレクトリ」と同じではありません。ローカルブラウザを使用してファイルを選択し(カーソルをその上に置く)、"O"を押すと、ファイルが「取得」されます。つまり、Vimのカレントディレクトリにコピーされます。
関連トピック:* カレントディレクトリを確認するには、
:pwdを使用します * 現在参照しているディレクトリをカレントディレクトリにするには、
netrw-cdを参照してください * 現在参照しているディレクトリを自動的にカレントディレクトリにするには、
g:netrw_keepdirを参照してください。
netrwのカレントディレクトリに新しいファイルを開くには、「%」を押します。このマッピングは、ユーザーに新しいファイル名を要求します。その名前の空ファイルがnetrwのカレントディレクトリ(つまり、b:netrw_curdir)に配置されます。
プレビューするファイル名の上にカーソルがある状態で"p"キーを使用すると、プレビューウィンドウを使用できます。表示が分割され、ブラウザ(カーソルは残ります)とファイルの両方が表示されます(
:peditを参照)。デフォルトでは、水平分割されます。先に
g:netrw_previewを設定していれば、垂直分割を使用できます。
興味深いNetrwの設定のセットは次のとおりです。
let g:netrw_preview = 1
let g:netrw_liststyle = 3
let g:netrw_winsize = 30
これにより、
1. ファイルのプレビューのデフォルトを垂直分割にする 2. デフォルトのリストスタイルを「ツリー」にする 3. 垂直プレビューウィンドウが開かれた場合、ディレクトリ一覧は使用可能な列の30%のみを使用し、ウィンドウの残りはプレビューウィンドウに使用されます。
"P"を押すと、カーソル下のファイルまたはディレクトリを以前使用した(最後にアクセスした)ウィンドウで編集できます(
CTRL-W_pを参照)。ウィンドウが1つしかない場合は、そのウィンドウが水平分割されます(デフォルト)。
ウィンドウが複数ある場合、以前のウィンドウが選択したファイル/ディレクトリに再利用されます。以前のウィンドウに関連付けられたバッファが変更されており、そのバッファを含むウィンドウが1つしかない場合、最初にバッファを保存するかどうかをユーザーに尋ねられます(はい、いいえ、またはキャンセル)。
ローカルまたはリモートのディレクトリ一覧を更新するには、ctrl-l(<c-l>
)を押すか、一覧の./ディレクトリエントリの上に<cr>
を押します。ローカルディレクトリは「:e .」を使用して更新することもできます。
"r"キーを押すと、通常のソート順と逆順のソート順を切り替えることができます。
ファイルとディレクトリの名前を変更するには、カーソルを移動する(名前を変更する)ファイル/ディレクトリに移動し、「R」を押します。次に、ファイル/ディレクトリの名前を変更する際に使用する名前を要求されます。「V」コマンド(視覚選択)を使用して行の範囲を選択し、「R」を押すと、ファイルごとに名前の変更先を要求されます。
マークされたファイルの名前が変更されます(移動されます)。上記のように、ファイル/ディレクトリの移動先を指定するように要求されます。
名前変更のクエリに「s/frompattern/topattern/」と回答すると、マークされたファイルリストの後続のファイルは、各名前を取り、その置換を適用し、結果に各ファイルの名前を変更することで名前変更されます。例として
mr [query: reply with *.c]
R [query: reply with s/^\(.*\)\.c$/\1.cpp/]
この例では、すべての「*.c」ファイルをマークし、それらを「*.cpp」ファイルに名前変更します。Netrwは、確認なしでローカルファイルを上書きするのを防ぎますが、リモートファイルは防ぎません。
ctrl-X文字は、ファイルの名前変更に特別な意味を持ちます。
<c-x> : a single ctrl-x tells netrw to ignore the portion of the response
lying between the last '/' and the ctrl-x.
<c-x><c-x> : a pair of contiguous ctrl-x's tells netrw to ignore any
portion of the string preceding the double ctrl-x's.
ファイルを移動することは危険な操作であることに注意してください。コピーの方が安全です。これは、リモートファイルの「移動」は実際にはコピー+削除であるためです。コピーが失敗し、削除が成功すると、ファイルを消失する可能性があります。自己責任で使用してください。
シンスタイルを使用している場合、V(
行単位の視覚選択)で選択することで、ファイルとディレクトリのブロックの名前を変更できます。
コマンドラインの編集方法の詳細については、
コマンドラインの編集を参照してください。特に、
<ctrl-f>
(コマンドラインウィンドウの編集を開始)と
<ctrl-c>
(カーソル下のコマンドラインを使用)は、Rコマンドと組み合わせて使用すると便利です。
"s"マッピングを使用すると、名前、時間、または(ファイル)サイズの3つの選択肢の間を循環できます。ディレクトリ一覧は、選択したスタイルを反映するように自動的に更新されます。
"C"マッピング、:NetrwC [win#]コマンド、または
g:netrw_chgwinを選択したウィンドウ番号に設定することで、編集用のnetrwウィンドウを選択できます。ファイルの編集を選択すると(
netrw-cr)、そのウィンドウが使用されます。
* C:それ自体では、
netrw-crによる後続の編集のために、netrwバッファを含む現在のウィンドウを選択します。Cマッピングは、netrwバッファ内でのみ使用できます。
* [count]C:countは、
netrw-crによる後続の編集に使用されるウィンドウ番号として使用されます。
使用
let g:netrw_chgwin= -1
すると、デフォルトの編集動作が復元されます(つまり、後続の編集では現在のウィンドウが使用されます)。
* 現在のウィンドウがnetrwウィンドウの場合、その幅を切り替えます(
g:netrw_wiwとその元の幅の間)。
g:netrw_usetabが存在し、ゼロの場合、または
<c-tab>
に既存のマッピングがある場合、
<c-tab>
はマッピングされません。
<c-tab>
以外のものをマッピングすることもできます(ただし、
g:netrw_usetabを設定しておく必要があります)。
nmap <unique> (whatever) <Plug>NetrwShrink
ユーザーはカスタマイズされたユーザーマッピングを作成できます。
g:Netrw_UserMaps変数を指定して、キーマッピング文字列と関数名のリストのリストを格納します。
[["keymap-sequence","ExampleUserMapFunc"],...]
* マッピングを設定します。
nno <buffer> <silent> KEYMAP-SEQUENCE
:call s:UserMaps(islocal,"ExampleUserMapFunc")
* その関数呼び出しの結果が文字列「refresh」の場合、更新します * 結果の文字列が空でない場合、その文字列が実行されます(:exe result) * 結果がリストの場合、結果のすべての文字列に対して上記2つのアクションが実行されます。
ユーザー関数は1つの引数を渡されます。それは次のようになります。
fun! ExampleUserMapFunc(islocal)
ここで、a:islocalは、ローカルディレクトリシステムコールの場合は1、リモートディレクトリシステムコールの場合は0です。
netrw-call netrw-expose netrw-modify netrw#Expose("varname")を使用して、netrw内部(スクリプトローカル)変数にアクセスします。netrw#Modify("varname",newvalue)を使用して、netrw内部変数を変更します。netrw#Call("funcname"[,args])を使用して、指定された引数でnetrw内部関数を呼び出します。
例:Netrwのマークされたファイルリストのコピーを取得する
let netrwmarkfilelist= netrw#Expose("netrwmarkfilelist")
例:Netrwのマークされたファイルリストの値を変更する
call netrw#Modify("netrwmarkfilelist",[])
例:guのマッピングを介してNetrwのマークされたファイルリストをクリアする
" ExampleUserMap: {{{2
fun! ExampleUserMap(islocal)
call netrw#Modify("netrwmarkfilelist",[])
call netrw#Modify('netrwmarkfilemtch_{bufnr("%")}',"")
let retval= ["refresh"]
return retval
endfun
let g:Netrw_UserMaps= [["gu","ExampleUserMap"]]
(このセクションは、フィードバックを受け取るにつれて拡張される可能性があります)(
netrw-debugも参照してください)
netrw-p1P1. Windowsを使用しており、ftpを使用したネットワーク参照が時間またはサイズでソートされません! -または- リモートシステムはWindowsサーバーです。時間またはサイズでソートされないのはなぜですか?
Windows標準のftpはlsコマンドのサポートが最小限であり(つまり、ソートオプションを受け付けません)、ディレクトリを示す説明文字(「ABC」がディレクトリなら「ABC/」)を与える-Fオプションをサポートしていません。そのためNetrwは「dir」コマンドを使用して、簡略表示と詳細表示の両方のリストを取得します。お使いのftpが完全なlsコマンドをサポートしていると判断した場合は、以下の行を`
`ファイルに追加してください。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をインストールしている場合は、以下の行を`
`ファイルに追加してください。let g:netrw_cygwin= 1
この問題は、リモートシステムがWindowsの場合にも発生します。この場合、様々な`g:netrw_ftp_[time|size]list_cmds`は上記の通りですが、リモートシステムはリスト表示動作を正しく変更しません。
netrw-p2 P2. `rcp://user@host/`(またはftp以外のプロトコル)を試したところ、Netrwがsshを使用しました!それは私の意図したものではありませんでした...
Netrwは、リモートディレクトリの参照にsshとftpの2つの方法を使用します。ftpを明示的に指定しない限り、sshが使用されます。ファイルのダウンロード(ディレクトリ一覧表示のみではない)を行う際には、Netrwは指定されたプロトコルを使用します。
以下の行を`
vimrc`ファイルに追加してください。
let g:netrw_liststyle= 1
お使いのシステムの`strftime()`関数が`"%c"`を受け入れて、「Sun Apr 27 11:49:23 1997」のような日付を出力できますか?出力できない場合は、「man strftime」を実行して、使用するべきオプションを確認し、それを`
vimrc`ファイルに追加してください。
let g:netrw_timefmt= "%X" (where X is the option)
netrw-p5 P5. 現在のディレクトリを参照中に追跡したいです。どのようにすればよいですか?
以下の行を`
vimrc`ファイルに追加してください。
let g:netrw_keepdir= 0
netrw-p6 P6. ファイル名に中国語(またはその他のASCII以外の文字)を使用していますが、Netrw(Explore、Sexplore、Hexploreなど)で表示されません!
(VimメーリングリストでWu Yongwei氏が提供した回答より) 問題が分かりました。コードページが936ではないですね?Vimは、現在のコードページで有効な名前を持つファイルしか開けないようです。これはUnicodeバージョンのWindows APIを使用しない他の多くのアプリケーションでも同様です。これはOS関連の問題です。システムロケールがUTF-8を使用している場合(最新のLinuxディストリビューションなど)、このような問題は発生しません。
(…これもUTF-8の使用を推奨する理由の一つです!)
netrw-p7 P7. 「sshはシステムで実行可能ではありません」というエラーが表示されます。どうすればよいですか?
(Dudley Fox) 私の知っているほとんどの人は、WindowsのsshにPuttyを使用しています。これは無料のssh/telnetアプリケーションです。詳細はこちらをご覧ください。
(Marlin Unruh) このプログラムも私にとってうまく機能します。単一の実行ファイルなので、Windows\System32フォルダにコピーしてショートカットを作成できます。
(Dudley Fox) plinkも検討することをお勧めします。これは、あなたが探しているものと最も似ているように聞こえます。plinkはPuttyスイートのアプリケーションです。
(Vissale Neang) Windows用のOpenSSHを試すことができます。入手方法は次のとおりです。
Cygwinパッケージ全体は必要ありません。
(Antoine Mechelynck) ネイティブWindows環境での作業に必要な個々のUnixライクなプログラムについては、SourceForgeのGnuWin32プロジェクトから取得することをお勧めします。
Windowsの上にUnixライクな仮想マシンを設定するCygwinとは異なり、GnuWin32はWindowsシステムコールを使用してUnixユーティリティを書き直したものであり、そのプログラムはcmd.exeの「Dosボックス」で非常にうまく機能します。
(dave) WinSCPをダウンロードして、サーバーに接続してください。「環境設定」>「エディター」で、gvimをエディターとして設定します。
「追加…」をクリックします。
外部エディターを設定します(必要に応じてパスを調整し、引用符と!を最後に含めます)。`"c:\Program Files\Vim\vim82\gvim.exe" !.!'
下のボックスのファイルタイプが`{asterisk}`.{asterisk}(すべてのファイル)または必要なタイプになっていることを確認します(cec:`{asterisk}`を*に変更します。ヘルプタグシステムがタグと認識してしまうため、このように記述する必要がありました)。
リストボックスの一番上に表示されていることを確認します(クリックして、一番上にない場合は「上へ」をクリックします)。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をインストールしています。おそらく同じ人がパックしたCOPSSHは、Windowsでのsshとして使用するのにさらに優れており、cwRsyncには含まれていない可能性のあるsftpなども含んでいると思います。
(cec) 上記の提案を適切に使用するには、`.vimrc`ファイルで以下のユーザー設定可能な変数を変更する必要があります。
通常、Netrwは一時ディレクトリバッファのスワップファイルの書き込みを回避しようとします。しかし、一部のシステムでは、この試みが`ml_get`エラーを引き起こしているようです。`
`ファイルでg:netrw_use_noswfを0に設定してみてください。let g:netrw_use_noswf= 0
netrw-p9 P9. 「[何か]はディレクトリです」と「Enterキーを押すか、コマンドを入力して続行してください」というプロンプトが繰り返し表示されます...
「[何か]はディレクトリです」というプロンプトは、NetrwではなくVimによって表示され、回避策がないようです。デフォルトの`cmdheight`が1の場合、このメッセージによって「Enterキーを押して…」というプロンプトが表示されます。そのため、
hit-enterを参照してください。また、`
`ファイルで'cmdheight'を2以上に設定することをお勧めします。
netrw-p10 P10. 左側に簡略表示ウィンドウ、右側に編集ウィンドウの2つのウィンドウを表示したいです。どのようにすればよいですか?
おそらく、サイドウィンドウでNetrwを実行したいのでしょう。その場合は、「`:[N]Lexplore`」を使用すると目的が達成できる可能性があります。オプションの「[N]」を使用すると、
:Lexploreウィンドウを開始する列数を指定できます(このパラメーターの動作については
g:netrw_winsizeを参照してください)。
以前の解決策
* 以下の行を`
`ファイルに追加します: `let g:netrw_altv = 1` * カレントディレクトリを編集します: `:e .` * ファイルを選択し、vキーを押します * ウィンドウのサイズを調整します(CTRL-W_<およびCTRL-W_>を参照)。gvimを使用している場合は、マウスで区切りバーをドラッグできます。 * 新しいファイルを作成する場合は、ctrl-w hキーを押してNetrwブラウザに戻り、ファイルを選択してからPキーを押します(CTRL-W_hおよびnetrw-Pを参照)。gvimを使用している場合は、ブラウザウィンドウで``をクリックしてから``をクリックしてファイルを選択できます。
netrw-p11 P11. ディレクトリのソートが正しく実行されていない、ファイル名に不要な文字が表示されている、ワイドリストで項目が適切に整列されていないなど、問題が発生しています。
これはエンコーディングの問題が原因である可能性があります。私は通常UTF-8を使用していますが、実際にはASCII(つまり、32〜126のバイト)のみを使用しています。マルチバイトエンコーディングは、文字ごとに2バイト(またはそれ以上)を使用します。
g:netrw_sepchrおよび/または
g:netrw_xstrlenを変更する必要がある場合があります。
netrw-p12 P12. Windows + Putty + sshユーザーであり、参照しようとすると、ディレクトリに末尾の「/」がないため、Netrwはそれらをサブディレクトリを参照しようとするのではなく、ファイル転送として扱います。どのように修正すればよいですか?
(mikeyao) WindowsでsshとPuttyを介してvimを使用する場合は、pscp/psftpとplinkの併用を試してみてください。pscp/psftpは接続に使用され、plinkはサーバーでコマンドを実行するために使用されます(たとえば、
'ls'を使用してファイルとディレクトリを一覧表示します)。
私が使用している設定は次のとおりです。
" list files, it's the key setting, if you haven't set,
" you will get a blank buffer
let g:netrw_list_cmd = "plink HOSTNAME ls -Fa"
" if you haven't add putty directory in system path, you should
" specify scp/sftp command. For examples:
"let g:netrw_sftp_cmd = "d:\\dev\\putty\\PSFTP.exe"
"let g:netrw_scp_cmd = "d:\\dev\\putty\\PSCP.exe"
netrw-p13 P13. Nwriteとscp/sshスタイルの接続を使用して書き込み速度を向上させたいです。どのようにすればよいですか?(Thomer M. Gil)
sshのControlMasterとControlPath(ssh_configのマニュアルページを参照)を使用して、単一のネットワーク接続で複数のssh接続を共有してみてください。これにより、ファイル書き込みごとに暗号化ハンドシェイクが不要になり、速度が桁違いに向上することがあります。(
http://thomer.com/howtos/netrw_ssh.htmlを参照)(許可を得て掲載)
以下の行を`~/.ssh/config`に追加します。
# you change "*" to the hostname you care about
Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p
次に、ホストへのssh接続を作成し、実行状態のままにします。
ssh -N host.domain.com
これで、VimのNetrwを使用してリモートでファイルを開き、高速性を体感できます。
vim scp://host.domain.com//home/user/.bashrc
netrw-p14 P14. ファイルまたはディレクトリを開く際に、Netrwの通常のシングルクリックではなく、ダブルクリックを使用するにはどうすればよいですか?(Ben Fritz)
まず、以下のコマンドでNetrwのマッピングを無効にします。
let g:netrw_mousemaps= 0
次に、`$HOME/.vim/after/ftplugin/netrw.vim`にNetrwバッファのみのマッピングを作成します。
nmap <buffer> <2-leftmouse> <CR>
`g:netrw_mousemaps`を0に設定すると、`
`だけでなく、すべてのNetrwのマウスマッピングが無効になります。(g:netrw_mousemapsを参照)
netrw-p15 P15. リモートファイル(例:`:e ftp://hostname/path/file`)を編集中に、Windowsでスワップファイルを開けないという
E303メッセージが表示されます。
(romainl) 保護されたディレクトリからVimを起動しているようです。`$HOME`またはその他の書き込み可能なディレクトリからNetrwを起動してください。
netrw-p16 P16. Netrwが独自にバッファを閉じます。問題を再現する手順は何ですか?1. `:Explore`、ディレクトリを参照し、ファイルを開く 2. `:Explore`、別のファイルを開く 3. 手順1で開いたバッファが閉じられます。期待される出力は何ですか?代わりに何が表示されますか?両方のバッファが存在することを期待していますが、最後のバッファのみが存在します。
(Lance) 問題は、`.vimrc`ファイル内の「`set autochdir`」によって発生します。(drchip)
'acd'が設定されていると、この問題を再現できます。「`set autochdir`」が設定されていると、バッファが完全に閉じられているわけではなく、`:ls!`を実行すると表示されます(`:ls`では表示されません)。
netrw-P18 P18. ディレクトリ一覧に番号付けを行うにはどうすればよいですか?
g:netrw_bufsettingsを使用してNetrwのバッファ設定を制御できます。以下の設定を`.vimrc`ファイルに追加してみてください。
let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
相対番号付けを使用する場合は、以下の設定を試してみてください。
let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
netrw-P19 P19. gvimを起動時にディレクトリ一覧を表示させるにはどうすればよいですか? 以下のコードスニペットを`.vimrc`ファイルに追加してみてください。
augroup VimStartup
au!
au VimEnter * if expand("%") == "" && argc() == 0 &&
\ (v:servername =~ 'GVIM\d*' || v:servername == "")
\ | e . | endif
augroup END
必要に応じて`Lexplore`を「`e`」の代わりに使用できます。このスニペットは、クライアントサーバーが有効になっている(つまり、「huge」バージョンのvim)ことを前提としています。
netrw-P20 P20. アクセント文字を含むディレクトリ(またはファイル)を作成しましたが、Netrwではそのディレクトリに入ったり、そのファイルを読んだりできません。
シェルまたはOSが、vim(Netrw)で使用しているものとは異なるエンコーディングを使用している可能性があります。「systemencoding」をサポートするvimへのパッチは、将来この問題に対処する可能性があります。今のところは、Netrwが適切なエンコーディングを使用するようにしてください。たとえば、
au FileType netrw set enc=latin1
netrw-P21 P21. ファイルのコピーまたは移動を試行すると、エラーメッセージが表示されます。
**error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
何が問題ですか?
Netrwは、いくつかのシステムレベルのコマンドを使用して処理を行います(
これらのコマンドの1つ以上について、デフォルトコマンドを調整する必要がある場合があります。.vimrcで適切に設定することで、調整できます。もう1つの困難の要因は、これらのコマンドがvimのローカルディレクトリを使用することです。これは、netrwによって表示されるブラウジングディレクトリとは異なる場合があります(
g:netrw_keepdirを参照)。
ステップ1:発生した問題が、最新の(多くの場合開発中の)netrwのコピーを入手することで既に解決されていないことを確認します。
<netrw.vim>スクリプトは、通常、システム上に次のような形でインストールされています。
/usr/local/share/vim/vim8x/plugin/netrwPlugin.vim
/usr/local/share/vim/vim8x/autoload/netrw.vim
(see output of :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 [some path here]
必要なnetrwコマンドを実行し、問題がまだ存在するかどうかを確認します。この手順では、個人の.vimrc設定、.viminfoファイル、その他のプラグインによる問題を回避します。問題が発生しない場合は、.vimrcのどの設定がnetrwとの競合を引き起こしているか、またはどのプラグインが関与しているかを特定する必要があります。
ステップ3:問題がまだ存在する場合は、netrwからデバッグトレースを取得します。
1. <Decho.vim>スクリプトを入手します。これは、
Decho.vimは「vimball」として提供されています。Decho.vba.gzファイルを編集し、次のようにソースに含めます。
vim Decho.vba.gz
:so %
:q
2. netrwでデバッグトレースを有効にするには、<netrw.vim>ファイルを編集して、次のように入力します。
vim netrw.vim
:DechoOn
:wq
通常の非デバッグ動作に戻すには、<netrw.vim>を再編集して、次のように入力します。
vim netrw.vim
:DechoOff
:wq
このコマンドは<Decho.vim>によって提供され、すべてのDechoデバッグステートメント(Dfunc()、Dret()、Decho()、Dredir())をコメントアウトします。
3. 次にvimを起動し、転送を実行したり、ブラウジングを実行したりして問題を再現してみてください。別々のタブまたはサーバーvimウィンドウで、ファイルの読み書きを試行する際に<netrw.vim>が行った手順に関するメッセージセットが表示されます。
netrw.vimrcファイルを編集して、Dechoプラグインを含めます。
set nocp
so $HOME/.vim/plugin/Decho.vim
so $HOME/.vim/plugin/netrwPlugin.vim
オプションやその他のプラグインとの絡み合いを避けるために、vimは引き続き次のように実行する必要があります。
vim -u netrw.vimrc --noplugins -i NONE [some path here]
。
ファイルを保存するには:Linuxでは、出力は別のリモートサーバーウィンドウに表示されます。そこで、次のようにファイルを保存します。
:w! DBG
クライアントサーバーをサポートしていないvimでは、デバッグ出力は別のタブに表示されます。
:tabnext
:set bt=
:w! DBG
と入力すると役立ちます。ここで、<command>
は次に実行しようとしているコマンドであり、デバッグトレースのどの部分がどのコマンドによるものかを関連付けるのが容易になります。
v172: Sep 02, 2021 * (Bram Moolenaar) Changed "l:go" to "go" * (Bram Moolenaar) no need for "b" in netrw-safe guioptions Nov 15, 2021 * removed netrw_localrm and netrw_localrmdir references Aug 18, 2022 * (Miguel Barro) improving compatibility with powershell v171: Oct 09, 2020 * included code in s:NetrwOptionsSafe() to allow
'bh' to be set to delete when rather than hide when g:netrw_fastbrowse was zero. * Installed
g:netrw_clipboard setting * Installed option bypass for
'guioptions' a/A settings * Changed popup_beval() to popup_atcursor() in netrw#ErrorMsg (lacygoill). Apparently popup_beval doesn't reliably close the popup when the mouse is moved. * VimEnter() now using win_execute to examine buffers for an attempt to open a directory. Avoids issues with popups/terminal from command line. (lacygoill) Jun 28, 2021 * (zeertzjq) provided a patch for use of xmap,xno instead of vmap,vno in netrwPlugin.vim. Avoids entanglement with select mode. Jul 14, 2021 * Fixed problem addressed by tst976; opening a file using tree mode, going up a directory, and opening a file there was opening the file in the wrong directory. Jul 28, 2021 * (Ingo Karkat) provided a patch fixing an E488 error with netrwPlugin.vim (occurred for vim versions < 8.02) v170: Mar 11, 2020 * (reported by Reiner Herrmann) netrw+tree would not hide with the ^\..* pattern correctly. * (Marcin Szamotulski) NetrwOptionRestore did not restore options correctly that had a single quote in the option string. Apr 13, 2020 * implemented error handling via popup windows (see popup_beval()) Apr 30, 2020 * (reported by Manatsu Takahashi) while using Lexplore, a modified file could be overwritten. Sol'n: will not overwrite, but will emit an
E37 (although one cannot add an ! to override) Jun 07, 2020 * (reported by Jo Totland) repeatedly invoking :Lexplore and quitting it left unused hidden buffers. Netrw will now set netrw buffers created by :Lexplore to
'bh'=wipe. v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x (
netrw-x) would throw an error when attempting to open a local directory. v168: Dec 12, 2019 * scp timeout error message not reported, hopefully now fixed (Shane Xb Qian) v167: Nov 29, 2019 * netrw does a save&restore on @* and @+. That causes problems with the clipboard. Now restores occurs only if @* or @+ have been changed. * netrw will change @* or @+ less often. Never if I happen to have caught all the operations that modify the unnamed register (which also writes @*). * Modified hiding behavior so that "s" will not ignore hiding. v166: Nov 06, 2019 * Removed a space from a nmap for "-" * Numerous debugging statement changes v163: Dec 05, 2017 * (Cristi Balan) reported that a setting (
'sel') was left changed * (Holger Mitschke) reported a problem with saving and restoring history. Fixed. * Hopefully I fixed a nasty bug that caused a file rename to wipe out a buffer that it should not have wiped out. * (Holger Mitschke) amended this help file with additional
g:netrw_special_syntax items * Prioritized wget over curl for g:netrw_http_cmd v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors with a patch; these are now fixed. Oct 26, 2016 * I started using mate-terminal and found that x and gx (
netrw-x and
netrw-gx) were no longer working. Fixed (using atril when $DESKTOP_SESSION is "mate"). Nov 04, 2016 * (Martin Vuille) pointed out that @+ was being restored with keepregstar rather than keepregplus. Nov 09, 2016 * Broke apart the command from the options, mostly for Windows. Introduced new netrw settings:
g:netrw_localcopycmdopt g:netrw_localcopydircmdopt g:netrw_localmkdiropt g:netrw_localmovecmdopt Nov 21, 2016 * (mattn) provided a patch for preview; swapped winwidth() with winheight() Nov 22, 2016 * (glacambre) reported that files containing spaces weren't being obtained properly via scp. Fix: apparently using single quotes such as with "file name" wasn't enough; the spaces inside the quotes also had to be escaped (ie. "file\ name"). * Also fixed obtain (
netrw-O) to be able to obtain files with spaces in their names Dec 20, 2016 * (xc1427) Reported that using "I" (
netrw-I) when atop "Hiding" in the banner also caused the active-banner hiding control to occur Jan 03, 2017 * (Enno Nagel) reported that attempting to apply netrw to a directory that was without read permission caused a syntax error. Jan 13, 2017 * (Ingo Karkat) provided a patch which makes using netrw#Call() better. Now returns value of internal routines return, for example. Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to use
:edit instead of
:read. I also changed the routine name to netrw#FileUrlEdit. Jan 16, 2017 * (Sayem) reported a problem where :Lexplore could generate a new listing buffer and window instead of toggling the netrw display. Unfortunately, the directions for eliciting the problem weren't complete, so I may or may not have fixed that issue. Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd". (see
netrw-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-lists; similar to
netrw-qF. Jan 19, 2016 * using - call delete(directoryname,"d") - instead of using g:netrw_localrmdir if v7.4 + patch#1107 is available Jan 28, 2016 * changed to using
winsaveview() and
winrestview() Jan 28, 2016 * s:NetrwTreePath() now does a save and restore of view Feb 08, 2016 * Fixed a tree-listing problem with remote directories v154: Feb 26, 2015 * (Yuri Kanivetsky) reported a situation where a file was not treated properly as a file due to g:netrw_keepdir == 1 Mar 25, 2015 * (requested by Ben Friz) one may now sort by extension Mar 28, 2015 * (requested by Matt Brooks) netrw has a lot of buffer-local mappings; however, some plugins (such as vim-surround) set up conflicting mappings that cause vim to wait. The "<nowait>" modifier has been included with most of netrw's mappings to avoid that delay. Jun 26, 2015 *
netrw-gn mapping implemented * :Ntree NotADir resulted in having the tree listing expand in the error messages window. Fixed. Jun 29, 2015 * Attempting to delete a file remotely caused an error with "keepsol" mentioned; fixed. Jul 08, 2015 * Several changes to keep the
:jumps table correct when working with
g:netrw_fastbrowse set to 2 * wide listing with accented characters fixed (using %-S instead of %-s with a
printf() Jul 13, 2015 * (Daniel Hahler) CheckIfKde() could be true but kfmclient not installed. Changed order in netrw#BrowseX(): checks if kde and kfmclient, then will use xdg-open on a unix system (if xdg-open is executable) Aug 11, 2015 * (McDonnell) tree listing mode wouldn't select a file in a open subdirectory. * (McDonnell) when multiple subdirectories were concurrently open in tree listing mode, a ctrl-L wouldn't refresh properly. * The netrw:target menu showed duplicate entries Oct 13, 2015 * (mattn) provided an exception to handle windows with shellslash set but no shell Oct 23, 2015 * if g:netrw_usetab and
<c-tab>
now used to control whether NetrwShrink is used (see
netrw-c-tab) v153: May 13, 2014 * added another
g:netrw_ffkeep usage {{{2 May 14, 2014 * changed s:PerformListing() so that it always sets ft=netrw for netrw buffers (ie. even when syntax highlighting is off, not available, etc) May 16, 2014 * introduced the
netrw-ctrl-r functionality May 17, 2014 * introduced the
netrw-:NetrwMB functionality * mb and mB (
netrw-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 balloon evaluation (ie. netrw#NetrwBalloonHelp() 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
07/29/09:バナー:|g:netrw_banner|を使用して抑制バナーを抑制できます。この機能は新しく実験的なものであるため、デバッグ中です。09/04/09:「gp」:リモートシステムで動作するようにできるかどうかを確認します。:マークされたファイルで動作するようにできるかどうかを確認します。
Bram MoolenaarによるVimエディター(Bramさん、ありがとうございます!)davサポート:C Campbell fetchサポート:Bram MoolenaarとC Campbell ftpサポート:C Campbell <
[メールアドレス保護]> httpサポート:Bram Moolenaar <
[メールアドレス保護]> rcp rsyncサポート:C Campbell(Erik Warendorphによる提案)scpサポート:raf <
[メールアドレス保護]> sftpサポート:C Campbell
inputsecret()、BufReadCmd、BufWriteCmd:C Campbellが貢献
Jérôme Augé - ftp+.netrcを使用した新しいバッファメソッドも使用Bram Moolenaar - 明らかにvim自体、:eとv:cmdargの使用、fetchなどYasuhiro Matsumoto - undo+0rの問題とその解決策を指摘Erik Warendorph - いくつかの提案(g:netrw_..._cmd変数、rsyncなど)Doug Claar - ftp操作の成功をテストするための修正
モデルライン:{{{1