Pi_netrw

Nvim 的 :help 頁面,由 產生,原始碼來自 這裡,並使用 tree-sitter-vimdoc 解析器。


------------------------------------------------ Netrw 參考手冊 作者:Charles E. Campbell ------------------------------------------------ 作者:Charles E. Campbell <[email protected]> (請先移除 Campbell 電子郵件中的 NOSPAM)
版權:版權 (C) 2017 Charles E. Campbell VIM 授權條款適用於此套件中的檔案,包括 netrw.vim、pi_netrw.txt、netrwFileHandlers.vim、netrwSettings.vim 和 syntax/netrw.vim。如同任何免費軟體,netrw.vim 及其相關檔案以 *現狀* 提供,不提供任何明示或暗示的擔保。不保證適銷性。不保證適用於任何特定用途。使用此插件即表示您同意,在任何情況下,版權持有者均不對因使用此軟體而造成的任何損害負責。使用風險自負!

1. 目錄 netrw-contents {{{1

1. 目錄..............................................|netrw-contents| 2. Netrw 入門...........................................|netrw-start| 3. Netrw 參考..........................................|netrw-ref| 外部應用程式和協定.................................|netrw-externapp| 讀取...............................................|netrw-read| 寫入...............................................|netrw-write| 載入...............................................|netrw-source| 目錄列表...........................................|netrw-dirlist| 變更使用者 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| 標記檔案:任意 Shell 命令........................|netrw-mx| 標記檔案:任意 Shell 命令,整批處理............|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-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. 待辦事項.............................................|netrw-todo| 14. 貢獻者.............................................|netrw-credits|

2. Netrw 入門 netrw-start {{{1

Netrw 讓讀取檔案、寫入檔案、在網路上瀏覽和本機瀏覽變得輕鬆!首先,請確認您已啟用插件,因此您至少需要在您的 <.vimrc> 中加入以下內容:(或參閱 netrw-activate
set nocp                    " 'compatible' is not set
filetype plugin on          " plugins are enabled
(請參閱 'cp':filetype-plugin-on
Netrw 支援使用 URL 「透明」編輯其他機器上的檔案(請參閱 netrw-transparent)。舉例來說,假設您在其他機器上有一個帳戶;如果您可以使用 scp,請嘗試
vim scp://hostname/path/to/file
想讓 ssh/scp 更容易使用嗎?請查看 netrw-ssh-hack
那麼,如果您有 ftp,而不是 ssh/scp 呢?也很容易;請嘗試
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-browse 了解更多!
netrw 支援的不只 scp 和 ftp 協定:請參閱下一節,netrw-externapp,了解如何使用這些外部應用程式與 netrw 和 vim。

防止載入 netrw-noload

如果您想使用插件,但由於某些原因不想使用 netrw,那麼您需要避免載入 netrw 的插件部分和自動載入部分。您可以在 <.vimrc> 中加入以下兩行來執行此操作
:let g:loaded_netrw       = 1
:let g:loaded_netrwPlugin = 1

3. Netrw 參考 netrw-ref {{{1

除了 netrw-start 中提到的 scp 和 ftp 之外,Netrw 還支援數種協定。這些包括 dav、fetch、http... 好吧,直接查看 netrw-externapp 中的清單即可。每個協定都與一個變數相關聯,該變數保存支援該協定的預設命令。

外部應用程式和協定 netrw-externapp {{{2

協定 變數 預設值 -------- ---------------- ------------- dav: g:netrw_dav_cmd = 如果 cadaver 可執行,則為 "cadaver" dav: g:netrw_dav_cmd = 如果 curl 可用,則為 "curl -o" fetch: g:netrw_fetch_cmd = 如果 fetch 可用,則為 "fetch -o" ftp: g:netrw_ftp_cmd = "ftp" http: g:netrw_http_cmd = 如果 elinks 可用,則為 "elinks" http: g:netrw_http_cmd = 如果 links 可用,則為 "links" http: g:netrw_http_cmd = 如果 curl 可用,則為 "curl" http: g:netrw_http_cmd = 如果 wget 可用,則為 "wget" http: g:netrw_http_cmd = 如果 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_xcmdhttp://.. 的選項字串。協定透過此變數指定,且可以獨立覆寫。依預設,http 處理命令的選項引數為
elinks : "-source >"
links  : "-dump >"
curl   : "-L -o"
wget   : "-q -O"
fetch  : "-o"
例如,如果您的系統有 elinks,並且您希望使用嘗試呈現文字的方式來查看頁面,您可能會希望在 .vimrc 中加入
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 "machine:path" 使用 rcp :Nwrite "machine path" 使用 ftp 並搭配 <.netrc> :Nwrite "machine id password path" 使用 ftp :Nwrite "dav://machine[:port]/path" 使用 cadaver :Nwrite "ftp://[user@]machine[[:#]port]/path" 使用 ftp 並搭配 <.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: 不支援!

來源 netrw-source {{{2

可以使用 URL 表示法搭配正常的檔案來源命令,例如:
:so ftp://[user@]machine/path
Netrw 也提供 Nsource 命令
:Nsource ? 顯示說明 :Nsource "dav://machine[:port]/path" 使用 cadaver :Nsource "fetch://[user@]machine/path" 使用 fetch :Nsource "ftp://[user@]machine[[:#]port]/path" 使用 ftp 並搭配 <.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/
對於遠端目錄列表(即使用 scp 或 ftp 的情況),尾部的 "/" 是必要的 (斜線會告訴 netrw 將參數視為要瀏覽的目錄,而不是要下載的檔案)。
Nread 命令也可以用來達成此目的(同樣地,尾部的斜線是必要的)
:Nread [protocol]://[user]@hostname/path/
netrw-login netrw-password

變更使用者 ID 和密碼 netrw-chgup netrw-userpass {{{2

嘗試使用 ftp 時,會提示您輸入使用者 ID 和密碼。這些資訊會儲存在全域變數 g:netrw_uids:netrw_passwd 中;後續使用 ftp 將會重複使用這兩個字串,從而簡化 ftp 的使用。然而,如果您需要使用不同的使用者 ID 和/或密碼,則需要先呼叫 NetUserPass()。若要避免輸入密碼的需求,請檢查您的 ftp 是否支援位於您主目錄中的 <.netrc> 檔案。另請參閱 netrw-passwd(如果您正在使用 ssh/scp 並希望找出如何避免 scp 輸入密碼,請查看 netrw-ssh-hack)。
:NetUserPass [uid [password]] -- 根據需要提示 :call NetUserPass() -- 提示輸入 uid 和密碼 :call NetUserPass("uid") -- 提示輸入密碼 :call NetUserPass("uid","password") -- 設定全域 uid 和密碼
(相關主題:ftp netrw-userpass netrw-start

NETRW 變數和設定 netrw-variables {{{2

(另請參閱:netrw-browser-var:netrw 瀏覽器選項變數 netrw-protocol:檔案傳輸協定選項變數 netrw-settings:其他檔案傳輸選項 netrw-browser-options:這些選項會影響目錄瀏覽)
Netrw 提供了許多變數,讓您可以根據自己的喜好自訂 netrw。其中一種查看方式是透過指令 :NetrwSettings(請參閱 netrw-settings),這會顯示您目前的 netrw 設定。大多數此類設定都在下方、netrw-browser-optionsnetrw-externapp 中說明。
b:netrw_lastfile 最後一個網路讀取/寫入的檔案,會以每個緩衝區為基礎保留(支援純 :Nw)
g:netrw_bufsettings netrw 緩衝區的設定(預設)noma nomod nonu nowrap ro nobl
g:netrw_chgwin 指定後續檔案編輯將發生的視窗編號。(另請參閱 netrw-C)(預設)-1
g:Netrw_funcref 指定在 netrw 編輯檔案時要呼叫的函式(或多個函式)。檔案會先被編輯,然後呼叫函式參考 (Funcref)。此變數也可以保存一個函式參考的 清單。(預設)未定義。(g:Netrw... 中的大寫字母是為了保存函式參考所必需的)
Example: place in .vimrc; affects all file opening
fun! MyFuncRef()
endfun
let g:Netrw_funcref= function("MyFuncRef")
g:Netrw_UserMaps 指定一個函式或 函式清單,可以用於設定使用者指定的對應和功能。請參閱 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> 檔案,但它無法運作,並且您希望忽略它,請按照顯示的方式設定此變數。(Windows + cmd.exe 的預設值)
g:netrw_menu =0 停用 netrw 的選單 =1(預設)啟用 netrw 的選單
g:netrw_nogx 如果此變數存在,則 "gx" 對應將不可用(請參閱 netrw-gx
g:netrw_uid (ftp) 使用者 ID,以每個 vim 工作階段為基礎保留 s:netrw_passwd (ftp) 密碼,以每個 vim 工作階段為基礎保留
g:netrw_preview =0(預設)預覽視窗顯示在水平分割的視窗中 =1 預覽視窗顯示在垂直分割的視窗中。也會以相同方式影響「前一個視窗」(請參閱 netrw-P)。g:netrw_alto 變數可用於提供額外的分割控制:g:netrw_preview g:netrw_alto 結果 0 0 :aboveleft 0 1 :belowright 1 0 :topleft 1 1 :botright 若要控制大小,請參閱 g:netrw_winsize
g:netrw_scpport = "-P":用於設定 scp 連接埠的選項 g:netrw_sshport = "-p":用於設定 ssh 連接埠的選項
g:netrw_sepchr =\0xff =\0x01,適用於 enc == euc-jp(可能也適用於其他,請告訴我)在內部將優先順序代碼與檔案名稱分開。請參閱 netrw-p12
g:netrw_silent =0:傳輸正常完成 =1:傳輸靜默完成
g:netrw_use_errorwindow =2:來自 netrw 的訊息將使用快顯視窗。移動滑鼠並暫停以移除快顯視窗。=1:來自 netrw 的訊息將使用單獨的一行視窗。此視窗可可靠傳遞訊息。=0:(預設)來自 netrw 的訊息將使用 echoerr;訊息似乎不一定會以這種方式顯示,但使用者不需要關閉視窗。
g:netrw_cygwin =1 假設 windows 下的 scp 來自 cygwin。也允許網路瀏覽使用具有時間和大小排序的 ls(windows 的預設值)=0 假設 Windows 的 scp 接受 windows 樣式的路徑。網路瀏覽使用 dir 而不是 ls。如果您正在使用 unix,則會忽略此選項
g:netrw_use_nt_rcp =0 不要使用 WinNT、Win2000 和 WinXP 的 rcp =1 以二進位模式使用 WinNT 的 rcp (預設)

路徑 netrw-path {{{2

大多數協定的檔案路徑通常是相對於使用者目錄的。但是,有些協定可能會使路徑相對於某些相關目錄。
example:  vim scp://user@host/somefile
example:  vim scp://user@host/subdir1/subdir2/somefile
其中 "somefile" 位於 "user" 的主目錄中。如果您希望使用根目錄相關路徑取得檔案,請使用完整路徑
example:  vim scp://user@host//somefile
example:  vim scp://user@host//subdir1/subdir2/somefile

4. 網路導向的檔案傳輸 netrw-xfer {{{1

Vim 下的網路導向檔案傳輸是由使用外掛程式技術的 vim 指令碼 (<netrw.vim>) 所實作。它目前支援使用 rcp、scp、ftp 或 ftp+<.netrc>、scp、fetch、dav/cadaver、rsync 或 sftp 在網路上讀取和寫入。
目前僅支援透過使用 wget 或 fetch 唯讀 http。
<netrw.vim> 是一個標準外掛程式,充當 Vim 和各種檔案傳輸程式之間的黏合劑。它使用自動命令事件(BufReadCmd、FileReadCmd、BufWriteCmd)來攔截使用類似 URL 的檔案名稱的讀/寫。
ex. vim ftp://hostname/path/to/file
冒號前的字元指定要使用的協定;在範例中,它是 ftp。然後 <netrw.vim> 指令碼會制定一個命令或一系列命令(通常是 ftp),並將其發送到外部程式(ftp、scp 等),該程式執行實際的檔案傳輸/協定。檔案會從/寫入臨時檔案(在 Unix/Linux 下,/tmp/...),而 <netrw.vim> 指令碼會清除該檔案。
現在,關於 Jan Minář 的「FTP 使用者名稱和密碼洩漏」:首先,ftp 不是安全的協定。使用者名稱和密碼會「以明文」在網際網路上傳輸;任何窺探工具都可以擷取這些資訊;這不是 netrw 的問題,而是 ftp 的問題。如果您對此感到擔憂,請嘗試改用 scp 或 sftp。
Netrw 會在同一個 vim 工作階段中,並且只要遠端主機名稱保持不變,就會重複使用使用者 ID 和密碼。
Jan 對於 netrw 如何處理 ftp 似乎有些困惑;通常會在一個「ftp 工作階段」中執行多個命令,而他似乎認為 uid/密碼應該只在一個 ftp 工作階段中保留。但是,netrw 會在不同的「ftp 工作階段」中執行每個 ftp 操作;因此,僅記住一個「ftp 工作階段」的 uid/密碼,與根本不記住 uid/密碼是一樣的。IMHO 舉例來說,當您瀏覽遠端目錄時,這會很快變得令人厭煩。
另一方面,感謝 Jan M. 指出 netrw(和 vim 本身)在處理「精心製作」的檔案名稱時所存在的許多漏洞。Bram Moolenaar 編寫了 shellescape()fnameescape() 函式以回應這些問題,而 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"'
(注意:據回報,Windows 7 使用 PuTTY v0.6 的 "-batch" 選項會失效,因此在該系統上最好將其關閉)
關於 PuTTY、pscp、psftp 等更多資訊,請參閱 netrw-p8
FTP 是一個古老的協定,似乎受到許多實作的青睞。不幸的是,某些實作會產生雜訊(也就是說,在檔案末尾添加垃圾資料)。因此,擔心的使用者可能會決定編寫一個 `NetReadFixup()` 函數,以在透過 FTP 讀取後進行清理。某些 Unix 系統(例如 FreeBSD)提供了一個名為 "fetch" 的工具,它使用 FTP 協定,但不會產生雜訊,而且實際上更方便 <netrw.vim> 使用。因此,如果 "fetch" 可用(即為可執行檔),則最好將其用於基於 `ftp://...` 的傳輸。
對於 rcp、scp、sftp 和 http,可以透明地使用面向網路的檔案傳輸;例如:
vim rcp://[user@]machine/path
vim scp://[user@]machine/path
如果您的 FTP 支援 <.netrc>,則如果該檔案中存在所需的主機名稱、使用者 ID 和密碼三元組,也可以透明地使用。但是,您的 FTP 必須能夠自行使用 <.netrc> 檔案。
vim ftp://[user@]machine[[:#]portnumber]/path
Windows 提供一個 FTP (通常是 c:\Windows\System32\ftp.exe),它使用選項 -s:filename (filename 可以並且可能應該是完整路徑),其中包含 FTP 命令,這些命令會在 FTP 啟動時自動執行。您可以使用此功能為一個站點輸入使用者和密碼。
userid
password
netrw-windows-netrc netrw-windows-s 如果 g:netrw_ftp_cmd 包含 -s:[path/]MACHINE,則 (僅在 Windows 電腦上) netrw 會將目前針對 FTP 連線請求的機器名稱替換為 MACHINE。因此,您可以擁有包含 FTP 登入和密碼的多個 machine.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://127.0.0.1/* | file://127.0.0.1/* | | +---------------------------------+----------------------------+------------+ | 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」可以是 machine#port 或 machine:port,如果需要與標準 FTP 連接埠不同的連接埠。
(*4) 對於 http:...,如果 wget 可用,則會使用它。否則,如果 fetch 可用,則會使用它。
`:Nread` 和 `:Nwrite` ex 命令都可以接受多個檔案名稱。
<.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

PASSWORD netrw-passwd

指令碼嘗試使用 Vim 內建函數 inputsecret() 以隱形方式取得 FTP 的密碼。請參閱 netrw-userpass,以瞭解如何在設定密碼後變更密碼。
不幸的是,netrw 似乎沒有辦法將密碼饋送給 scp。因此,透過 scp 的每次傳輸都需要重新輸入密碼。但是,netrw-ssh-hack 可以協助解決此問題。

5. 啟用 netrw-activate {{{1

只要啟用 Vim 的 'nocompatible' 模式,預設即可使用面向網路的檔案傳輸。Netrw 的指令碼檔案位於您系統的 plugin、autoload 和 syntax 目錄中;僅當您啟動 vim 時,才會自動載入 plugin/netrwPlugin.vim 指令碼。autoload/netrw.vim 中的主要指令碼僅在您實際使用 netrw 時才會載入。我建議,您至少在 <.vimrc> 自訂檔案中加入以下內容:
set nocp
if version >= 600
  filetype plugin indent on
endif
透過在 .vimrc 中加入以下幾行,您可以在使用 [g]vim 時不帶任何檔案名稱的情況下立即啟用 netrw,並顯示目前目錄:
" Augroup VimStartup:
augroup VimStartup
  au!
  au VimEnter * if expand("%") == "" | e . | endif
augroup END

6. 透明遠端檔案編輯 netrw-transparent {{{1

每當進行一般檔案讀取或寫入 (透過 :autocmdBufReadCmdBufWriteCmdSourceCmd 事件叫用) 時,就會發生透明檔案傳輸。因此,您可以像讀取、寫入或來源本機檔案一樣輕鬆地跨網路讀取、寫入或來源檔案!
vim ftp://[user@]machine/path
...
:wq
請參閱 netrw-activate,以深入瞭解如何鼓勵您的 vim 使用諸如 netrw 之類的插件。
若要無密碼使用 scp:,請參閱 netrw-ssh-hack

7. Ex 命令 netrw-ex {{{1

支援一般的讀取/寫入命令。還有一些其他可用的命令。通常,您不需要使用 netrw-transparent 中顯示的 Nwrite 或 Nread (也就是說,只需使用
:e URL
:r URL
:w URL
即可,視情況而定) -- 請參閱 netrw-urls。在下面的說明中,`{netfile}` 是遠端檔案的 URL。
:Nwrite :Nw :[range]Nw[rite] 將指定的行寫入 b:netrw_lastfile 中指定的目前檔案。(相關:netrw-nwrite)
:[range]Nw[rite] {netfile} [{netfile}]... 將指定的行寫入 {netfile}
:Nread :Nr :Nr[ead] 將 b:netrw_lastfile 中指定的檔案中的行讀取到目前緩衝區中。(相關:netrw-nread)
:Nr[ead] {netfile} {netfile}... 在目前行後讀取 {netfile}
:Nsource :Ns :Ns[ource] {netfile} 來源 {netfile}。若要使用遠端 .vimrc 啟動 vim,可以使用以下內容 (全部在一行中) (感謝 Antoine Mechelynck):
vim -u NORC -N
 --cmd "runtime plugin/netrwPlugin.vim"
 --cmd "source scp://HOSTNAME/.vimrc"
(相關:netrw-source)
:call NetUserPass() NetUserPass()
如果 g:netrw_uid 和 s:netrw_passwd 不存在,此函數會查詢使用者以取得它們。(相關:netrw-userpass)
:call NetUserPass("userid") 此呼叫會設定 g:netrw_uid,如果密碼不存在,則會查詢使用者以取得它。(相關:netrw-userpass)
:call NetUserPass("userid","passwd") 此呼叫會設定 g:netrw_uid 和 s:netrw_passwd。使用者 ID 和密碼由 FTP 傳輸使用。您可以使用空字串 (即 "") 有效地移除使用者 ID 和密碼。(相關:netrw-userpass)
:NetrwSettings 此命令在 netrw-settings 中說明 -- 用於顯示 netrw 設定並變更 netrw 行為。

8. 變數和選項 netrw-var netrw-settings {{{1

<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 變數 = 不存在 userid 由 "user userid" 設定 =0 userid 由 "user userid" 設定 =1 userid 由 "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 變數 ="/" 用於分隔主機名稱和檔案規格 g:netrw_scp_cmd 變數 ="scp -q" g:netrw_sftp_cmd 變數 ="sftp"
-------------------------------------------------------------------------
g:netrw_..._cmd 選項 (g:netrw_ftp_cmdg:netrw_sftp_cmd) 指定用於處理 ftp 協定的外部程式。它們可以包含命令列選項(例如 -p 用於被動模式)。範例
let g:netrw_ftp_cmd= "ftp -p"
瀏覽功能由 g:netrw_list_cmd 支援;子字串 "HOSTNAME" 將透過替換為當前主機名稱的請求內容來變更。
兩個選項 (g:netrw_ftpnetrw-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 (ftp 無 <.netrc>)
如果 <.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() 函式存在,將會被呼叫,因此您可以自訂讀取流程。
(相關主題:ftp netrw-userpass netrw-start

瀏覽簡介 netrw-intro-browse {{{2

(快速參考:netrw-quickmaps netrw-quickcoms)
Netrw 支援瀏覽本機系統和遠端主機上的目錄;瀏覽包括列出檔案和目錄、進入目錄、編輯其中的檔案、刪除檔案/目錄、建立新目錄、移動(重新命名)檔案和目錄、複製檔案和目錄等等。可以標記檔案並對其執行任何系統命令!Netrw 瀏覽器通常會為遠端目錄實作先前的 explorer 的映射和命令,儘管細節(例如相關的全域變數名稱)必然有所不同。若要瀏覽目錄,只需「編輯」它即可!
vim /your/directory/
vim .
vim c:\your\directory\
Netrw 遠端檔案和目錄瀏覽器處理兩種協定:ssh 和 ftp。如果 URL 中的協定是 ftp,則會導致 netrw 也在其遠端瀏覽中使用 ftp。指定任何其他協定將會導致它用於檔案傳輸;但 ssh 協定將用於執行遠端瀏覽。
若要使用 Netrw 的遠端目錄瀏覽器,只需嘗試讀取帶有尾部斜線的「檔案」,它將被解釋為列出目錄的請求
vim [protocol]://[user@]hostname/path/
其中 [協定] 通常是 scp 或 ftp。例如,嘗試
vim ftp://ftp.home.vim.org/pub/vim/
對於本機目錄,不需要尾部斜線。再次強調,因為很容易錯過:若要瀏覽遠端目錄,URL 必須以斜線結尾!
如果您不想重複輸入密碼來列出使用 ssh 或 scp 的遠端目錄,請參閱 netrw-ssh-hack。若要避免使用 ftp 輸入密碼,請參閱 netrw-netrc (如果您的 ftp 支援)。
您可以執行幾項操作來影響瀏覽器顯示檔案的方式
* 若要變更清單樣式,請按 "i" 鍵 (netrw-i)。目前有四種樣式:thin、long、wide 和 tree。若要使該變更成為「永久性」,請參閱 g:netrw_liststyle
* 若要隱藏檔案(不想再看到那些 xyz~ 檔案?),請參閱 netrw-ctrl-h
* 按 s 依名稱、時間或大小排序檔案。
請參閱 netrw-browse-cmds,瞭解您可以使用 netrw 執行的所有操作!
netrw-getftype netrw-filigree netrw-ftype getftype() 函式用於附加一點裝飾,以指示本機列出的檔案的檔案類型
目錄:/ 可執行檔:* fifo:| 連結:@ sockets:=
裝飾也會影響 g:netrw_sort_sequence

快速說明 netrw-quickhelp {{{2

(使用 ctrl-] 選擇主題)~ 瀏覽簡介................................|netrw-intro-browse| 快速參考:映射..............................|netrw-quickmap| 快速參考:命令............................|netrw-browse-cmds| 隱藏 編輯隱藏清單................................|netrw-ctrl-h| 隱藏檔案或目錄.........................|netrw-a| 依後綴隱藏/顯示.........................|netrw-mh| 隱藏點檔案..............................|netrw-gh| 清單樣式 選擇清單樣式 (thin/long/wide/tree)....|netrw-i| 相關設定變數...........................|g:netrw_liststyle| 用於執行清單的 Shell 命令................|g:netrw_list_cmd| 快速檔案資訊............................|netrw-qf| 排序方式 選擇排序樣式 (名稱/時間/大小).........|netrw-s| 編輯排序序列...........................|netrw-S| 排序選項................................|g:netrw_sort_options| 相關設定變數...........................|g:netrw_sort_sequence| 反向排序順序.............................|netrw-r|
netrw-quickmap netrw-quickmaps 快速參考:映射 netrw-browse-maps {{{2
---                        -----------------                        ----
Map                        Quick Explanation                        Link
---                        -----------------                        ----
<F1> 讓 Netrw 發出說明訊息 <cr> Netrw 將進入目錄或讀取檔案 netrw-cr <del> Netrw 將嘗試移除檔案/目錄 netrw-del <c-h> 編輯檔案隱藏清單 netrw-ctrl-h <c-l> 讓 Netrw 重新整理目錄清單 netrw-ctrl-l <c-r> 使用 gvim 伺服器瀏覽 netrw-ctrl-r <c-tab> 縮小/展開 netrw/explore 視窗 netrw-c-tab - 讓 Netrw 上移一層目錄 netrw-- a 在正常顯示、netrw-a 隱藏 (不顯示符合 g:netrw_list_hide 的檔案) 和顯示 (僅顯示符合 g:netrw_list_hide 的檔案) 之間循環切換 cd 將瀏覽目錄設為目前目錄 netrw-cd C 設定編輯視窗 netrw-C d 建立目錄 netrw-d D 嘗試移除檔案/目錄 netrw-D gb 前往上一個已加入書籤的目錄 netrw-gb gd 強制將項目視為目錄 netrw-gd gf 強制將項目視為檔案 netrw-gf gh 快速隱藏/取消隱藏點檔案 netrw-gh gn 將樹狀結構頂端設為游標下的目錄 netrw-gn gp 變更本地檔案權限 netrw-gp i 在精簡、長、寬和樹狀清單之間循環切換 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 mr 使用 shell 風格的 regexp 標記檔案 netrw-mr mt 目前瀏覽目錄變成標記檔案目標 netrw-mt mT 將 ctags 套用到標記的檔案 netrw-mT mu 取消標記所有標記的檔案 netrw-mu mv 將任意 vim 命令套用到標記的檔案 netrw-mv mx 將任意 shell 命令套用到標記的檔案 netrw-mx mX 將任意 shell 命令以區塊方式套用到標記的檔案|netrw-mX| mz 壓縮/解壓縮標記的檔案 netrw-mz o 在新瀏覽器視窗中開啟游標下的檔案/目錄 netrw-o。使用水平分割。 O 取得游標指定的檔案 netrw-O p 預覽檔案 netrw-p P 在先前使用的視窗中瀏覽 netrw-P qb 列出已加入書籤的目錄和歷史紀錄 netrw-qb qf 顯示檔案資訊 netrw-qf qF 使用快速修正清單標記檔案 netrw-qF qL 使用 位置清單 標記檔案 netrw-qL r 反轉排序順序 netrw-r R 重新命名指定的檔案/目錄 netrw-R s 選擇排序方式:依名稱、時間或檔案大小排序 netrw-s S 指定名稱排序的後綴優先順序 netrw-S t 在新標籤頁中開啟游標下的檔案/目錄|netrw-t| u 變更為最近造訪的目錄 netrw-u U 變更為後續造訪的目錄 netrw-U v 在新瀏覽器視窗中開啟游標下的檔案/目錄 netrw-v。使用垂直分割。 x 使用關聯程式檢視檔案 netrw-x X 透過 system() 執行游標下的檔案名稱 netrw-X
% 在 netrw 目前目錄中開啟新檔案 netrw-%
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 自動載入之前沒有定義 <2-leftmouse> 的對應,則雙擊滑鼠左鍵將返回 netrw 瀏覽器視窗。請參閱 g:netrw_retmap<s-leftmouse> (僅限 gvim) 類似 mf,將標記檔案。拖曳按住 Shift 鍵的滑鼠左鍵將標記多個檔案。(請參閱 netrw-mf)
(若要在瀏覽時停用滑鼠按鈕:g:netrw_mousemaps)
netrw-quickcom netrw-quickcoms 快速參考:命令 netrw-explore-cmds netrw-browse-cmds {{{2 :NetrwClean[!]............................................|netrw-clean| :NetrwSettings............................................|netrw-settings| :Ntree....................................................|netrw-ntree| :Explore[!] [dir] 瀏覽目前檔案的目錄......|netrw-explore| :Hexplore[!] [dir] 水平分割並瀏覽.............|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|

橫幅顯示 netrw-I

可以按 "I" 切換橫幅的顯示。
另請參閱:g:netrw_banner
將目錄加入書籤 netrw-mb netrw-bookmark netrw-bookmarks {{{2
可以使用
mb
.netrwbook
輕鬆將目前瀏覽的目錄「加入書籤」。書籤會以 List 的形式保留在 vim 工作階段之間,並儲存在名為 .netrwbook 的檔案中,該檔案通常儲存在使用者 'runtimepath' 中的第一個目錄;項目會保持排序順序。
如果存在標記的檔案和/或目錄,mb 將會將它們加入書籤清單。
netrw-:NetrwMB
此外,可以使用 :NetrwMB 將檔案或目錄加入書籤。
:NetrwMB[!] [files/directories]
無驚嘆號:將檔案/目錄輸入 Netrw 的書籤系統
無引數且在 netrw 緩衝區中:如果存在標記的檔案:將標記的檔案加入書籤,否則:將游標下的檔案/目錄加入書籤 無引數且不在 netrw 緩衝區中:將目前開啟的檔案加入書籤 有引數:glob() 每個引數並將它們加入書籤
有驚嘆號:從 Netrw 的書籤系統中刪除檔案/目錄
:NetrwMB 命令可在 netrw 緩衝區之外使用 (一旦在工作階段中叫用 netrw)。
檔案 ".netrwbook" 在 netrw (和 vim) 未啟用時保留書籤。預設情況下,它儲存在使用者 'runtimepath' 中的第一個目錄。
相關主題:netrw-gb 如何返回 (前往) 書籤 netrw-mB 如何刪除書籤 netrw-qb 如何列出書籤 g:netrw_home 控制 .netrwbook 的儲存位置

瀏覽 netrw-enter netrw-cr {{{2

瀏覽很簡單:將游標移動到感興趣的檔案或目錄上。按下 <cr> (返回鍵) 將會選取該檔案或目錄。目錄本身會被列出,而檔案會使用原始讀取要求中提供的協定開啟。
注意事項:有四種清單格式 (請參閱 netrw-i)。對於長和寬清單格式,Netrw 假設兩個或多個空格會分隔檔案名稱和目錄名稱。因此,如果您的檔案名稱或目錄名稱中嵌入了兩個或多個連續空格,或有任何尾隨空格,則您需要使用「精簡」格式來選取它。
預設值為零的 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-s-cr
壓縮目前樹狀清單目錄~
當啟用樹狀列表樣式(請參閱 netrw-i)且使用 gvim 時,可以使用 <s-cr> 映射來擠壓(關閉)目前游標所在的目錄。
否則,您可以重新映射您選擇的按鍵組合來達到此效果。
nmap <buffer> <silent> <nowait> YOURKEYCOMBO  <Plug>NetrwTreeSqueeze
將此行放入 $HOME/ftplugin/netrw/netrw.vim;它需要僅為 netrw 緩衝區產生。
使用水平分割視窗瀏覽 netrw-o netrw-horiz {{{2
通常,使用 <cr> 進入檔案或目錄。但是,「o」映射允許您開啟一個新視窗來容納新的目錄列表或檔案。會使用水平分割。(對於垂直分割,請參閱 netrw-v
通常,o 鍵會水平分割視窗,新視窗和游標會在上方。
相關設定變數:g:netrw_alto g:netrw_winsize
相關主題:netrw-ctrl-r netrw-o netrw-p netrw-P netrw-t netrw-v 相關設定變數:g:netrw_alto 控制上方/下方分割 g:netrw_winsize 控制初始大小
使用新分頁瀏覽 netrw-t {{{2
通常,使用 <cr> 進入檔案或目錄。「t」映射允許您開啟一個新視窗,在新分頁中容納新的目錄列表或檔案。
如果您想讓新的列表在背景分頁中開啟,請使用 gT
相關主題:netrw-ctrl-r netrw-o netrw-p netrw-P netrw-t netrw-v 相關設定變數:g:netrw_winsize 控制初始大小
使用垂直分割視窗瀏覽 netrw-v {{{2
通常,使用 <cr> 進入檔案或目錄。但是,「v」映射允許您開啟一個新視窗來容納新的目錄列表或檔案。會使用垂直分割。(對於水平分割,請參閱 netrw-o
通常,v 鍵會垂直分割視窗,新視窗和游標會在左側。
只有一個樹狀列表緩衝區;在顯示的子目錄上使用「v」會分割螢幕,但會顯示相同的緩衝區兩次。
相關主題:netrw-ctrl-r netrw-o netrw-p netrw-P netrw-t netrw-v 相關設定變數:g:netrw_altv 控制右側/左側分割 g:netrw_winsize 控制初始大小
使用 GVIM 伺服器瀏覽 netrw-ctrl-r {{{2
您可以將瀏覽 gvim 與用於編輯的 gvim 分開。在 netrw 瀏覽器中的檔案(不是目錄)上使用 <c-r> 映射,它將使用 gvim 伺服器(請參閱 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> 如何開啟檔案

變更列表樣式(精簡、長、寬、樹狀) netrw-i {{{2

「i」映射會在精簡、長、寬和樹狀列表格式之間循環。
精簡列表格式僅提供檔案和目錄的名稱。
長列表基於遠端目錄透過 ssh 的「ls」命令,或顯示本機目錄的檔案名稱、檔案大小(以位元組為單位)以及上次修改的時間和日期。使用長列表格式時,netrw 無法識別帶有尾隨空格的檔案名稱。請對此類檔案使用精簡列表格式。
寬列表格式使用兩個或更多個連續空格來劃分檔案名稱;當使用該格式時,netrw 將無法識別或使用名稱中嵌入兩個或更多個連續空格或任何尾隨空格的檔案名稱。但是,精簡列表格式可用於此類檔案。寬列表格式是最精簡的。
樹狀列表格式會有一個頂層目錄,後接一個或多個「|」開頭的檔案和目錄,表示目錄深度。您可以在目錄名稱上按 <cr> 鍵來開啟和關閉目錄。
您可以將慣用的列表樣式設為預設值;請參閱 g:netrw_liststyle。例如,將以下行放入您的 .vimrc 中,
let g:netrw_liststyle= 3
樹狀樣式將成為您的預設列表樣式。
使用 netrw 樹狀顯示的一種典型方式是
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...

變更檔案權限 netrw-gp {{{2

「gp」會要求您輸入游標下檔案的新權限。目前,這僅適用於本機檔案。
相關設定變數:g:netrw_chgperm
變更為已加入書籤的目錄 netrw-gb {{{2
若要將目錄變更回已加入書籤的目錄,請使用
{cnt}gb
任何計數都可用於參考任何書籤。請注意,netrw-qb 會同時顯示書籤和歷史記錄;若要前往儲存在歷史記錄中的位置,請參閱 netrw-unetrw-U
相關主題:netrw-mB 如何刪除書籤 netrw-mb 如何建立書籤 netrw-qb 如何列出書籤
變更為前一個目錄 netrw-u netrw-updir {{{2
每次您變更到新的目錄(目前工作階段的新目錄)時,netrw 都會將該目錄儲存在最近瀏覽過的目錄歷史記錄清單中(除非 g:netrw_dirhistmax 為零;預設情況下,它會保留十個項目)。使用「u」映射,您可以變更為較早的目錄(前一個目錄)。若要執行相反的操作,請參閱 netrw-U
「u」映射也接受計數,以在歷史記錄中回溯多個位置。為方便起見,qb(請參閱 netrw-qb)會列出可用於該計數的歷史記錄編號。
.netrwhist
請參閱 g:netrw_dirhistmax,了解如何控制歷史記錄堆疊位置的數量。當 netrw (和 vim) 未啟用時,檔案 ".netrwhist" 會保留歷史記錄。依預設,它儲存在使用者 'runtimepath' 的第一個目錄中。
相關主題:netrw-U 變更為後一個目錄 g:netrw_home 控制 .netrwhist 的儲存位置
變更為後一個目錄 netrw-U netrw-downdir {{{2
使用「U」映射,您可以變更為較後的目錄(後一個目錄)。此映射與「u」映射相反。(請參閱 netrw-u) 使用 qb 映射來列出書籤和歷史記錄。(請參閱 netrw-qb
「U」映射也接受計數,以在歷史記錄中前進多個位置。
請參閱 g:netrw_dirhistmax,了解如何控制歷史記錄堆疊位置的數量。

變更樹狀頂層 netrw-ntree :Ntree netrw-gn {{{2

您可以使用以下方式指定樹狀列表的新樹狀頂層
:Ntree [dirname]
沒有「dirname」,則會使用目前的行(並省略任何開頭的深度資訊)。使用「dirname」,則會使用指定的目錄名稱。
「gn」映射會擷取游標下的單字,並將其用於變更樹狀列表的頂層。

NETRW 清除 netrw-clean :NetrwClean {{{2

使用 :NetrwClean,您可以輕鬆地從您的主目錄中移除 netrw;更精確地說,是從您的 'runtimepath' 的第一個目錄中移除。
使用 :NetrwClean!,netrw 會嘗試從您的 'runtimepath' 上的所有目錄中移除 netrw。當然,您必須具有正確的寫入/刪除權限才能執行此操作。
使用任何形式的命令,netrw 都會先要求確認您確實要執行移除操作。如果 netrw 沒有權限移除檔案,則會發出錯誤訊息。
自訂使用特殊處理常式的瀏覽 netrw-x netrw-handler {{{2
某些檔案(例如 html、gif、jpeg、(word/office) doc 等檔案)最好使用特殊處理常式(即您的電腦作業系統提供的工具)檢視。Netrw 允許您透過以下方式叫用此類特殊處理常式
* 將游標放在檔案路徑上時按下 gx,或在 netrw 緩衝區中按下 x;您可以透過定義 g:netrw_nogx 變數來停用前者 * 當在命令列中時,輸入 :Open <path>,請參閱下方的 :Open
您也可以使用視覺模式(請參閱 visual-start)來選取特殊處理常式將使用的文字。通常,gx 會檢查附近的 URL 或檔案名稱,以擷取游標下的文字;您可以透過 g:netrw_gx 變數(選項包括 "<cword>"、"<cWORD>")來變更 expand() 的使用方式。請注意,expand("<cfile>") 取決於 'isfname' 設定。或者,您可以選取要讓 gx 使用的文字,方法是進行視覺選取(請參閱 visual-block),然後按下 gx。
可以透過新增函式 Netrw_get_URL_<filetype> 來針對每個檔案類型調整選取函式,其中 <filetype>'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\{-}'
相關設定變數:g:netrw_gx 控制 gx 如何選取游標下的文字、g:netrw_nogx 防止編輯時的 gx 對應、g:netrw_suppress_gx_mesg 控制 gx 對瀏覽器訊息的抑制。

開啟檔案與啟動應用程式 netrw-gx :Open :Launch {{{2

Netrw 依下列方法決定使用哪個特殊處理器:
* 如果 g:netrw_browsex_viewer 存在,則會使用它來嘗試檢視檔案。如果您希望使用的檢視器不支援處理遠端 URL 目錄,請將 g:netrw_browsex_support_remote 設定為 0。 * 否則
* 對於 Windows:使用 explorer.exe * 對於 Mac OS X:使用 open * 對於 Linux:使用 xdg-open。
若要使用適當的處理器開啟路徑(或 URL)<path>,請輸入
:Open <path>
不需要跳脫字元,無論是對 shell 還是 Vim 的命令列。
若要啟動特定的應用程式 <app> <args>,通常 <args><path>
:Launch <app> <args>.
由於 <args> 可以任意複雜,特別是包含許多檔案路徑,因此跳脫字元留給使用者處理。
如果您透過設定 g:loaded_netrwPlugin 停用了 netrw 外掛程式(請參閱 netrw-noload),則可以使用
:call netrw#Launch('<app> <args>')
:call netrw#Open('<path>')
netrw-curdir

刪除書籤 netrw-mB {{{2

若要刪除書籤,請使用
{cnt}mB
如果有標記的檔案,則 mB 會將它們從書籤清單中移除。
或者,可以使用 :NetrwMB!(請參閱 netrw-:NetrwMB)。
:NetrwMB! [files/directories]
相關主題:netrw-gb 如何返回(前往)書籤、netrw-mb 如何建立書籤、netrw-qb 如何列出書籤。

刪除檔案或目錄 netrw-delete netrw-D netrw-del {{{2

如果檔案尚未使用 netrw-mf 標記:(本機標記的檔案清單)
刪除/移除檔案和目錄需要將游標移動到要刪除的檔案/目錄,然後按下「D」。目錄必須先為空才能成功移除。如果目錄是目錄的軟連結,則 netrw 會發出兩個請求來移除目錄,然後才會成功。Netrw 在執行移除前會要求確認。您可以使用「V」命令(視覺選取)選取一系列的行,然後按下「D」。
如果檔案已使用 netrw-mf 標記:(本機標記的檔案清單)
標記的檔案(和空目錄)將會被刪除;同樣地,您會被要求確認刪除才會實際執行。
另一種方法是刪除符合模式的檔案。
* 使用 :MF 模式(請參閱 netrw-:MF);然後按下「D」。
* 使用 mr(請參閱 netrw-mr),它會提示您輸入模式。這會將符合的檔案標記。然後,按下「D」。
請注意,只能使用「D」對應刪除空目錄。常規檔案也使用 delete() 刪除。
g:netrw_rm_cmdg:netrw_rmf_cmdg:netrw_rmdir_cmd 變數用於控制嘗試移除遠端檔案和目錄。g:netrw_rm_cmd 用於檔案,其預設值為
g:netrw_rm_cmd: ssh HOSTNAME rm
g:netrw_rmdir_cmd 變數用於支援移除目錄。其預設值為
g:netrw_rmdir_cmd: ssh HOSTNAME rmdir
如果使用 g:netrw_rmdir_cmd 移除目錄失敗,netrw 將會再次嘗試使用 g:netrw_rmf_cmd 變數移除目錄。其預設值為
g:netrw_rmf_cmd: ssh HOSTNAME rm -f
相關主題:netrw-d 相關設定變數:g:netrw_rm_cmd g:netrw_ssh_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
與 :Explore **/pattern 搭配使用:(另請參閱 netrw-starstar):Nexplore............. 前往下一個符合的檔案 :Nexplore
:Pexplore............. 前往上一個符合的檔案 :Pexplore
netrw-:Explore
:Explore 會在目前檔案的目錄(如果指定了 [dir],則會在 [dir] 目錄)上開啟本機目錄瀏覽器。只有在檔案已修改且未設定 'hidden' 時,視窗才會分割,否則瀏覽視窗將會接管該視窗。分割通常是水平進行。另請參閱:netrw-:Rexplore :Explore! 與 :Explore 類似,但會使用垂直分割。
netrw-:Hexplore
:Hexplore [dir] 會使用 :belowright 水平分割執行 :Explore。 :Hexplore! [dir] 會使用 :aboveleft 水平分割執行 :Explore。
netrw-:Lexplore
:[N]Lexplore [dir] 會在目前標籤的左側切換一個全高度的瀏覽器視窗。如果省略 [dir],它會在目前目錄上開啟 netrw 視窗;無論從哪個視窗發出命令,:Lexplore [dir] 都會顯示左側瀏覽器顯示中指定的目錄。
預設情況下,:Lexplore 會將未初始化的 g:netrw_chgwin 變更為 2;因此,編輯會優先在視窗 #2 中進行。
[N] 指定一個僅用於新 :Lexplore 視窗的 g:netrw_winsize。這表示,如果 [N] < 0:如果 [N] = 0:使用 N 列做為 Lexplore 視窗,則進行正常分割,如果 [N] > 0:則使用目前視窗的 N% 做為新視窗
喜歡這種方法的人通常也喜歡樹狀樣式的顯示;請參閱 g:netrw_liststyle
:[N]Lexplore! [dir] 與 :Lexplore 類似,但全高度瀏覽器視窗會開啟在右側,而未初始化的 g:netrw_chgwin 會設定為 1(例如,編輯會優先在最左側的視窗中進行)。
netrw-:Sexplore
:[N]Sexplore 會在叫用本機目錄瀏覽器之前總是先分割視窗。與 Explore 一樣,分割通常是水平進行。:[N]Sexplore! [dir] 與 :Sexplore 類似,但分割會垂直進行。
netrw-:Texplore
:Texplore [dir] 會在產生瀏覽器視窗之前執行 :tabnew
netrw-:Vexplore
:[N]Vexplore [dir] 會使用 :leftabove 垂直分割執行 :Explore。 :[N]Vexplore! [dir] 會使用 :rightbelow 垂直分割執行 :Explore。
選用參數為
[N]:此參數會覆寫 g:netrw_winsize,以指定新瀏覽器視窗應有的列和/或欄數量。否則,如果使用者已指定 g:netrw_winsize 變數,則會使用它來控制新瀏覽器視窗應有的列和/或欄數量。
[dir]:預設情況下,這些瀏覽器命令會使用目前檔案的目錄。但是,您可以明確提供要使用的目錄(路徑);即。
:Explore /some/path
netrw-:Rexplore
:Rexplore 此命令與其他 Explore 命令略有不同,因為它不一定會開啟瀏覽器視窗。
返回瀏覽器~當您使用 netrw 編輯檔案時(例如,當游標位於 netrw 瀏覽器視窗中的檔案名稱上方時按下 <cr> 時),在編輯該檔案時發出的 :Rexplore 會將顯示返回到該視窗中最後一個 netrw 瀏覽器顯示。
離開瀏覽器~相反地,當您編輯目錄時,發出 :Rexplore 會返回到編輯該視窗中最後編輯的檔案。
<2-leftmouse> 對應(僅在 gvim 和協作條款下可用)與 :Rexplore 的作用相同。
當 Explore、Sexplore、Hexplore 或 Vexplore 與以下四種模式之一一起使用時,Explore 會產生一個符合本機檔案系統請求的檔案列表。這些探索模式不適用於遠端檔案瀏覽。
*/filepat 目前目錄下符合 filepat 的檔案 **/filepat 目前目錄或其子目錄下符合檔案模式的檔案 *//pattern 目前目錄下包含模式的檔案(使用 vimgrep) **//pattern 目前目錄或其子目錄下包含模式的檔案(使用 vimgrep)
游標會放在列表中的第一個檔案上。然後,您可以透過 :Nexplore 繼續前往該列表中的後續檔案,或使用 :Pexplore 前往列表中的前一個檔案。Explore 將更新目錄並將游標放置在適當的位置。
單獨使用
:Explore
將會清除探索列表。
如果您的主控台或圖形介面產生可辨識的上移或下移序列,您可能會覺得使用 shift-downarrow 和 shift-uparrow 很方便。它們在 netrw 中對應如下:
<s-down> == Nexplore,以及 <s-up> == Pexplore。
舉例來說,考慮
:Explore */*.c
:Nexplore
:Nexplore
:Pexplore
狀態列會在狀態列的右側顯示類似「符合 3 個中的 20 個」的訊息。

顯示檔案資訊 netrw-qf {{{2

當游標位於檔案名稱上方時,按下 "qf" 會顯示檔案的大小和上次修改的時間戳記。目前此功能僅適用於本機檔案。

編輯檔案或目錄隱藏列表 netrw-ctrl-h netrw-edithide {{{2

"<ctrl-h>" 對應會顯示一個請求器,允許使用者變更包含在 g:netrw_list_hide 中的檔案/目錄隱藏列表。隱藏列表由一個或多個以逗號分隔的模式組成。符合這些模式的檔案和/或目錄將被隱藏(即不顯示)或僅顯示(請參閱 netrw-a)。
"gh" 對應(請參閱 netrw-gh)會在常用的隱藏列表和隱藏以「.」開頭的檔案或目錄之間快速切換。
舉例來說,
let g:netrw_list_hide= '\(^\|\s\s\)\zs\.\S\+'
實際上,這使得 netrw-gh 命令的效果成為初始設定。它的意思是
\(^\|\s\s\):如果該行以以下內容開頭,-或- 遇到兩個連續的空格 \zs:現在開始隱藏匹配 \.:如果它現在以點開頭 \S\+:並且後面跟著一個或多個非空白字元
相關設定變數:g:netrw_hide g:netrw_list_hide 相關主題:netrw-a netrw-gh netrw-mh
當「排序方式」是名稱時,您可以透過排序順序(g:netrw_sort_sequence)指定優先順序。排序順序通常依副檔名排列名稱列表的優先順序,儘管可以使用任何模式。模式以逗號分隔。預設排序順序為(全部在一行)
對於 Unix
'[\/]$,\<core\%(\.\d\+\)\=,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,
\.info$,\.swp$,\.bak$,\~$'
否則
'[\/]$,\.[a-np-z]$,\.h$,\.c$,\.cpp$,*,\.o$,\.obj$,\.info$,
\.swp$,\.bak$,\~$'
單獨的 * 是所有其他模式未涵蓋的檔案名稱的最終位置。您可以透過修改 g:netrw_sort_sequence 變數(手動或在您的 <.vimrc> 中)或使用 "S" 對應來變更排序順序。
相關主題:netrw-s netrw-S 相關設定變數:g:netrw_sort_sequence g:netrw_sort_options

透過 system() 執行游標下的檔案 netrw-X {{{2

當游標位於可執行檔上方時按下 X 會彈出一個提示,使用檔案名稱詢問任何引數。按下 [return] 後,netrw 會使用該命令和引數呼叫 system()。結果將由 :echomsg 顯示,因此 :messages 會重複顯示結果。Ansi 跳脫序列將被移除。
請參閱 cmdline-window 以取得更多有關如何編輯引數的說明。
強制將檔案視為檔案或目錄 netrw-gd netrw-gf {{{2
遠端符號連結(即透過 ssh 或 ftp 列出的連結)的問題在於很難判斷它們是連結到檔案還是目錄。
若要強制將其視為檔案:請使用
gf
若要強制將其視為目錄:請使用
gd

向上移動 netrw-- {{{2

若要向上移動一個目錄,請按下 "-" 或當游標位於列表中的 ../ 目錄項目時按下 <cr>
在將 HOSTNAME 變更為使用者提供的 URL 指定的主機後,Netrw 將使用 g:netrw_list_cmd 中的命令來執行目錄列表操作。依預設,netrw 提供的命令為
ssh HOSTNAME ls -FLa
其中 HOSTNAME 會變成讀取嘗試所要求的 [user@]hostname。當然,使用者可以使用任何偏好的命令覆寫此命令。實作遠端瀏覽的 NetList 函數預期目錄會以尾隨斜線標記。

隱藏檔案或目錄 netrw-a netrw-hiding {{{2

Netrw 的瀏覽功能允許您透過三種方式之一使用隱藏列表:忽略它、隱藏符合的檔案,以及僅顯示符合的檔案。
如果沒有透過 netrw-mf 標記任何檔案
"a" 對應允許使用者循環瀏覽三種隱藏模式。
g:netrw_list_hide 變數保存一個以逗號分隔的模式列表,這些模式基於正規表示式(例如 ^.*\.obj$,^\.)指定隱藏列表。(另請參閱 netrw-ctrl-h)若要設定隱藏列表,請使用 <c-h> 對應。舉例來說,若要隱藏以「.」開頭的檔案,可以使用 <c-h> 對應將隱藏列表設定為 '^\..*'(或者可以在 <.vimrc> 中放入 let g:netrw_list_hide= '^\..*')。然後可以使用 "a" 鍵來顯示所有檔案、隱藏符合的檔案,或僅顯示符合的檔案。
範例:\.[ch]$ 這個隱藏列表命令將隱藏/顯示所有 *.c 和 *.h 檔案。
範例:\.c$,\.h$ 這個隱藏列表命令也將隱藏/顯示所有 *.c 和 *.h 檔案。
別忘了使用 "a" 對應來選取您想要的模式(正常/隱藏/顯示)!
如果已使用 netrw-mf 標記檔案,則此命令將
如果顯示所有檔案或非隱藏檔案:透過將標記的檔案附加到其中並僅顯示非隱藏檔案來修改 g:netrw_list_hide 列表。
否則,如果僅顯示隱藏檔案:透過從中移除標記的檔案並僅顯示非隱藏檔案來修改 g:netrw_list_hide 列表。endif
netrw-gh netrw-hide 作為一個快速快捷方式,您可以按下
gh
在隱藏以句點(點)開頭的檔案與不隱藏它們之間切換。
相關設定變數:g:netrw_list_hide g:netrw_hide 相關主題:netrw-a netrw-ctrl-h netrw-mh
netrw-gitignore
Netrw 提供了一個輔助函數 'netrw_gitignore#Hide()',當與 g:netrw_list_hide 一起使用時,會自動隱藏所有 git 忽略的檔案。
'netrw_gitignore#Hide' 會在以下檔案中搜尋模式
'./.gitignore'
'./.git/info/exclude'
global gitignore file: `git config --global core.excludesfile`
system gitignore file: `git config --system core.excludesfile`
不存在的檔案會被忽略。Git-ignore 模式取自現有檔案,並轉換為隱藏檔案的模式。例如,如果您的 '.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.

改善瀏覽 netrw-listhack netrw-ssh-hack {{{2

特別是使用遠端目錄瀏覽器時,不斷輸入密碼非常繁瑣。
對於 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 上找到,但顯然該位址現在被重新導向到某些「駭客雜誌」。我將嘗試根據該文章和 Ben Schmidt 的通訊進行摘要
1. 在本機電腦(ssh 用戶端)上產生公鑰/私鑰對
ssh-keygen -t rsa
(saving the file in ~/.ssh/id_rsa as prompted)
2. 當要求輸入密碼時,直接按下 <CR>(兩次)表示不輸入密碼。如果您使用密碼,您還需要使用 ssh-agent,以便每個工作階段僅需輸入一次密碼。如果您不使用密碼,只需登入本機電腦或以任何方式取得金鑰檔案的存取權,即可存取任何已授權該金鑰登入的 ssh 伺服器。
3. 這會建立兩個檔案
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
4. 在目標機器(ssh 伺服器)上
cd
mkdir -p .ssh
chmod 0700 .ssh
5. 在您的本機電腦(ssh 用戶端)上:(一行)
ssh {serverhostname}
  cat '>>' '~/.ssh/authorized_keys2' < ~/.ssh/id_rsa.pub
或對於 OpenSSH,(一行)
ssh {serverhostname}
  cat '>>' '~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub
您可以使用以下命令進行測試
ssh {serverhostname}
這樣您應該就能登入伺服器機器,而無需再輸入任何內容。
如果您決定使用密碼,請執行
ssh-agent $SHELL
ssh-add
ssh {serverhostname}
當您使用 ssh-add 時,系統會提示您輸入金鑰密碼,但在隨後使用 ssh 時則不會。若要搭配 vim 使用,您可以使用
ssh-agent vim
然後,下次在 vim 中時,使用
:!ssh-add
或者,您可以將 ssh-agent 應用於您計劃在其中執行 vim 的終端機中
ssh-agent xterm &
並在需要時執行 ssh-add。
對於 Windows,vim 郵件列表上的使用者提到 Pageant 有助於避免不斷輸入密碼的需求。
Kingston Fung 寫了關於另一種避免不斷輸入密碼的方法
為了避免每次都輸入 scp 的密碼,您可以在文件中提供一個技巧來設置無需密碼的 ssh 帳戶。我找到了一個更好的方法:我可以使用一個常規的 ssh 帳戶,該帳戶使用密碼來存取資料,而無需每次都輸入密碼。這對安全性和便利性都有好處。我嘗試了 ssh 公開金鑰授權 + ssh-agent,實施後,它確實有效!
Ssh 提示
Thomer Gil 提供了一個關於如何加速 netrw+ssh 的提示:http://thomer.com/howtos/netrw_ssh.html
Alex Young 提供了幾個關於加速 ssh 的提示:http://usevim.com/2012/03/16/editing-remote-files/

列出書籤和歷史記錄 netrw-qb netrw-listbookmark {{{2

按下 "qb"(查詢書籤)將會列出已加入書籤的目錄和目錄瀏覽歷史記錄。
相關主題:netrw-gb 如何返回(前往)書籤 netrw-mb 如何建立書籤 netrw-mB 如何刪除書籤 netrw-u 透過歷史堆疊變更為先前的目錄 netrw-U 透過歷史堆疊變更為後續的目錄
建立新目錄 netrw-d {{{2
透過 "d" 對應,可以遠端(取決於全域變數 g:netrw_mkdir_cmd)或本地(取決於全域變數 g:netrw_localmkdir)建立新目錄。Netrw 將會發出請求以取得新目錄的名稱。在該點輸入一個空的 <CR> 將會中止建立目錄。嘗試建立已存在的本地目錄(作為檔案或目錄)將會被偵測到、報告,並忽略。

使瀏覽目錄成為目前目錄 netrw-cd {{{2

預設情況下,g:netrw_keepdir 為 1。此設定表示目前目錄不會追蹤瀏覽目錄。(為了與 v6 的檔案瀏覽器向後相容而完成)。
將 g:netrw_keepdir 設定為 0 會告知 netrw 使 vim 的目前目錄追蹤 netrw 的瀏覽目錄。
然而,鑒於 g:netrw_keepdir 的預設設定為 1,其中 netrw 維護其自身獨立的目前目錄概念,為了使這兩個目錄相同,請使用 "cd" 對應(輸入 cd)。該對應將會把 Vim 的目前目錄概念設定為 netrw 的目前瀏覽目錄。
netrw-cd:此對應的名稱從 "c" 變更為 cd(請參閱 netrw-cd)。此變更是為了允許 netrw-cbnetrw-cB 對應。
相關設定變數:g:netrw_keepdir

標記檔案 netrw-:MF netrw-mf {{{2

(另請參閱 netrw-mr
Netrw 提供了幾種標記檔案的方法
* 您可以在游標位於檔案名稱上方時,按下 "mf" 來標記檔案。
* 使用 gvim 時,此外您可以使用 <s-leftmouse> 來標記檔案。(請參閱 netrw-mouse
* 您可以使用 :MF 命令,該命令會採用檔案清單(對於本地目錄,該清單可能包含萬用字元 -- 請參閱 glob()
:MF *.c
(請注意 :MF 使用 <f-args> 來在空格處斷行)
* 使用引數列表標記檔案 (netrw-mA)
* 基於位置列表標記檔案 (netrw-qL)
* 基於快速修復列表標記檔案 (netrw-qF) (快速修復錯誤列表)
以下 netrw 對應使用已標記的檔案
netrw-a 隱藏已標記的檔案/目錄 netrw-D 刪除已標記的檔案/目錄 netrw-ma 將已標記的檔案名稱移至 引數列表 netrw-mA引數列表 檔案名稱移至已標記的檔案清單 netrw-mb 將已標記的檔案附加至書籤 netrw-mB 從書籤中刪除已標記的檔案 netrw-mc 將已標記的檔案複製到目標 netrw-md 將 vimdiff 應用於已標記的檔案 netrw-me 編輯已標記的檔案 netrw-mF 取消標記已標記的檔案 netrw-mg 將 vimgrep 應用於已標記的檔案 netrw-mm 將已標記的檔案移動到目標 netrw-ms Netrw 將會載入已標記的檔案 netrw-mt 設定 netrw-mmnetrw-mc 的目標 netrw-mT 使用已標記的檔案產生標籤 netrw-mv 將 vim 命令應用於已標記的檔案 netrw-mx 將 shell 命令應用於已標記的檔案 netrw-mX 將 shell 命令以整體方式應用於已標記的檔案 netrw-mz 壓縮/解壓縮已標記的檔案 netrw-O 取得已標記的檔案 netrw-R 重新命名已標記的檔案
您可以透過標記檔案相同的方式一次取消標記一個檔案;也就是說,將游標放置在已標記的檔案上方,然後按下 "mf"。此過程也適用於使用 gvim 的 <s-leftmouse>。您可以按下 "mu" 來取消標記所有檔案(請參閱 netrw-mu)。
已標記的檔案會使用 "netrwMarkFile" 醒目提示群組來醒目提示,該群組預設會連結到 "Identifier"(請參閱 群組名稱下的 Identifier)。您可以透過將類似以下的內容放置來變更醒目提示群組
highlight clear netrwMarkFile
hi link netrwMarkFile ..whatever..
放入 $HOME/.vim/after/syntax/netrw.vim 中。
如果滑鼠已啟用且可與您的 vim 一起運作,您可以使用 <s-leftmouse> 來標記一個或多個檔案。您可以透過拖曳 Shift+滑鼠左鍵來標記多個檔案。(請參閱 netrw-mouse
markfilelist global_markfilelist local_markfilelist 所有已標記的檔案都會輸入到全域已標記檔案清單中;只有一個這樣的清單。此外,每個 netrw 緩衝區也有其自己的緩衝區本機已標記檔案清單;由於 netrw 緩衝區與特定目錄相關聯,這表示每個目錄都有其自己的本機已標記檔案清單。對已標記檔案進行操作的各種命令會使用其中一個已標記檔案清單。
已知問題:如果使用者使用樹狀模式(g:netrw_liststyle)且多個目錄具有相同名稱的檔案,則標記此類檔案將會導致所有此類檔案都被醒目提示,如同它們都被標記一樣。markfilelist,然而,只會將選取的檔案包含在其中。此問題不太可能被修復。

取消標記檔案 netrw-mF {{{2

(另請參閱 netrw-mfnetrw-mu
"mF" 命令將會取消標記目前緩衝區中的所有檔案。您也可以在特定的、已標記的檔案上使用 mf (netrw-mf) 來僅取消標記該檔案。

依據位置列表標記檔案 netrw-qL {{{2

(另請參閱 netrw-mf
您可以使用 "qL" 將位置列表轉換為已標記檔案清單。然後,您可以繼續使用 me (netrw-me) 等命令來編輯它們。

依據快速修復列表標記檔案 netrw-qF {{{2

(另請參閱 netrw-mf
您可以使用 "qF" 將快速修復錯誤列表轉換為已標記檔案清單。然後,您可以繼續使用 me (netrw-me) 等命令來編輯它們。快速修復錯誤列表是例如透過呼叫 :vimgrep 來產生的。

依據正規表示式標記檔案 netrw-mr {{{2

(另請參閱 netrw-mf
您也可以透過按下 "mr" 來標記檔案;netrw 接著會發出提示,「輸入正規表示式:」。然後您可以輸入 shell 樣式的正規表示式,例如 *.c$ (請參閱 glob())。對於遠端系統,glob() 無法運作 -- 因此 netrw 會將 "*" 轉換為 ".*"(請參閱 regexp)並根據它標記檔案。將來,我可能會使其可以使用 regexp,而不是 glob() 樣式的運算式(另一個選項)。
請參閱 cmdline-window 以取得更多關於如何編輯正規表示式的指示。
已標記的檔案、任意 Vim 命令 netrw-mv {{{2 (請參閱 netrw-mfnetrw-mr 以了解如何標記檔案)(使用本機已標記檔案清單)
"mv" 對應會導致 netrw 在本機已標記檔案清單中的每個檔案上個別執行任意 vim 命令
* 1split * sil! keepalt e file * 執行 vim 命令 * sil! keepalt wq!
系統會發出提示「Enter vim command: 」,以引導您輸入想要使用的 vim 命令。有關如何編輯命令的更多資訊,請參閱 cmdline-window
已標記檔案,任意 Shell 命令 netrw-mx {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用本機已標記檔案清單)
啟用 "mx" 對應後,netrw 會詢問使用者要套用至所有已標記檔案的(外部)命令。命令中的所有 "%" 都會依序替換為每個已標記檔案的名稱。如果命令中沒有 "%",則會在命令後方加上一個空格和已標記的檔案名稱。
範例:(標記檔案) mx 輸入命令:cat
結果會是一系列的 Shell 命令:cat 'file1' cat 'file2' ...
已標記檔案,任意 Shell 命令,成批 netrw-mX {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
啟用 'mX' 對應後,netrw 會詢問使用者要套用至全域已標記檔案清單上所有已標記檔案的(外部)命令。「成批」表示將一次對所有檔案執行一個命令。
command files
此方法很有用,例如,選取檔案並製作 tarball。
(mark files)
mX
Enter command: tar cf mynewtarball.tar
此範例將執行的命令
tar cf mynewtarball.tar 'file1' 'file2' ...
已標記檔案:引數清單 netrw-ma netrw-mA (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
使用 ma,可將檔案名稱從已標記檔案清單移動到引數清單。使用 mA,可將檔案名稱從引數清單移動到已標記檔案清單。
已標記檔案:緩衝區清單 netrw-cb netrw-cB (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
使用 cb,可將檔案名稱從已標記檔案清單移動到緩衝區清單。使用 cB,可將檔案名稱從緩衝區清單複製到已標記檔案清單。
已標記檔案:壓縮和解壓縮 netrw-mz {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用本機已標記檔案清單)
如果有任何已標記的檔案被壓縮,則 "mz" 將會解壓縮它們。如果有任何已標記的檔案被解壓縮,則 "mz" 將使用 g:netrw_compress 指定的命令來壓縮它們;預設情況下,它是 "gzip"。
對於解壓縮,netrw 使用一個後綴和其關聯的解壓縮工具的 Dictionary;請參閱 g:netrw_decompress
請記住,可以使用正規表示式標記多個檔案(請參閱 netrw-mr);這對於促進壓縮和解壓縮大量檔案特別有用。
已標記檔案:複製 netrw-mc {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
使用 mt (netrw-mt) 選取目標目錄。然後變更目錄,選取檔案(請參閱 netrw-mf),並按下 "mc"。複製操作會從目前的視窗(執行 mf 的地方)複製到目標。
如果沒有使用 netrw-mt 設定目標目錄,則 netrw 會詢問您要複製到的目錄。
也可以將目錄及其內容(僅限本機)複製到目標目錄。
已標記檔案:Diff netrw-md {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
使用 vimdiff 來視覺化選取檔案之間的差異(可以選取兩個或三個檔案)。使用全域已標記檔案清單。
已標記檔案:編輯 netrw-me {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
"me" 命令會將已標記的檔案放置在 arglist 中,並開始編輯它們。可以使用 :Rexplore 返回到瀏覽器視窗。(使用 :n:p 來編輯 arglist 中的下一個和上一個檔案)
已標記檔案:Grep netrw-mg {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
"mg" 命令會將 :vimgrep 套用至已標記的檔案。該命令會詢問請求的模式;然後可以輸入
/pattern/[g][j]
! /pattern/[g][j]
pattern
使用 /pattern/,編輯將從 vimgrep 設定的 quickfix 清單中的第一個項目開始(請參閱 :copen:cnext:cprevious:cclose)。正在使用 :vimgrep 命令,因此若不使用 'g',則每一行只會新增到 quickfix 清單一次;使用 'g',則會包含每個符合項。
使用 /pattern/j,"mg" 會將目前的已標記檔案清單縮減為僅包含也具有指定模式的已標記檔案。因此,可以使用
mr ...file-pattern...
mg /pattern/j
來取得滿足檔案模式且也僅限於包含某些所需模式的檔案的已標記檔案清單。
已標記檔案:依後綴隱藏和取消隱藏 netrw-mh {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用本機已標記檔案清單)
"mh" 命令會擷取已標記檔案的後綴,並切換其在隱藏清單上的存在。請注意,以這種方式多次標記相同的後綴,將會導致每個檔案的後綴存在被切換(因此,具有相同後綴的已標記檔案數量為偶數,就等於根本沒有選取它們一樣)。
相關主題:netrw-a g:netrw_list_hide
已標記檔案:移動 netrw-mm {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
警告:移動檔案比複製檔案更危險。要移動的檔案會先複製,然後刪除;如果複製操作失敗且刪除操作成功,則您將遺失該檔案。請先使用不重要的檔案嘗試,或者使用 mc 和 D 自己執行複製,然後刪除。使用風險自負!
使用 mt (netrw-mt) 選取目標目錄。然後變更目錄,選取檔案(請參閱 netrw-mf),並按下 "mm"。移動操作會從目前的視窗(執行 mf 的地方)移動到目標。
已標記檔案:執行 netrw-ms {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用本機已標記檔案清單)
使用 "ms",netrw 將執行已標記的檔案(使用 vim 的 :source 命令)
已標記檔案:設定目標目錄 netrw-mt {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案)
設定已標記檔案的複製/移動目標(請參閱 netrw-mcnetrw-mm
* 如果游標位於檔案名稱之上,則 netrw 視窗目前顯示的目錄將用作複製/移動目標。
* 此外,如果游標位於標題中,則 netrw 視窗目前顯示的目錄將用作複製/移動目標。除非目標已經是目前的目錄。在這種情況下,輸入 "mf" 會清除目標。
* 但是,如果游標位於目錄名稱之上,則該目錄將用作複製/移動目標
* 可以使用 :MT [directory] 命令設定目標 netrw-:MT。此命令使用 <q-args>,因此目錄名稱中的空格允許使用,而無需跳脫。
* 若使用啟用滑鼠的 vim 或 gvim,可以使用 <c-leftmouse> 來選取目標
在一個 vim 會期中,一次只會有一個複製/移動目標;也就是說,目標是一個腳本變數(請參閱 s:var),並在(vim 的執行個體中)所有 netrw 視窗之間共享。
當使用選單和 gvim 時,netrw 會提供一個「目標」項目,可讓您從書籤和歷史清單中選取目標。
相關主題:標記檔案......................................|netrw-mf| 使用正規表示式標記檔案................|netrw-mr| 已標記檔案:使用書籤的目標目錄.....|netrw-Tb| 已標記檔案:使用歷史記錄的目標目錄.......|netrw-Th|
已標記檔案:標籤 netrw-mT {{{2 (請參閱 netrw-mfnetrw-mr 了解如何標記檔案) (使用全域已標記檔案清單)
「mT」映射會將 g:netrw_ctags(預設為「ctags」)中的命令應用於已標記的檔案。對於遠端瀏覽,為了建立標籤檔,netrw 會使用 ssh(請參閱 g:netrw_ssh_cmd),因此 ssh 必須可用於遠端系統上才能運作。對於您的本機系統,請參閱 ctags 以了解如何取得版本。我自己使用 hdrtags,目前可在 http://www.drchip.org/astronaut/src/index.html 取得,並且在
let g:netrw_ctags= "hdrtag"
我的 <.vimrc> 中有設定。
當標記一組遠端檔案時,產生的標籤檔會被「取得」;也就是說,會將副本傳輸到本機系統的目錄中。然後會修改現在本機的標籤檔,以便可以透過網路使用它。修改的內容與標籤中的檔案名稱有關;每個檔案名稱前面都會加上用於取得該檔案的 netrw 相容 URL。當後續使用其中一個前往標籤的動作(tags)時,netrw 將使用 URL 來編輯所需的檔案並前往標籤。
相關設定變數: g:netrw_ctags g:netrw_ssh_cmd
已標記的檔案:使用書籤的目標目錄 netrw-Tb {{{2
設定已標記的檔案複製/移動目標。
netrw-qb 映射會提供您書籤(和歷史記錄)的清單。可以使用 [count]Tb(預設計數:1)選擇其中一個書籤作為已標記的檔案目標。
相關主題: 複製檔案到目標............................|netrw-mc| 列出書籤和歷史記錄......................|netrw-qb| 已標記的檔案:設定目標目錄................|netrw-mt| 已標記的檔案:使用歷史記錄的目標目錄......|netrw-Th| 標記檔案......................................|netrw-mf| 使用正規表示式標記檔案....................|netrw-mr| 移動檔案到目標.............................|netrw-mm|
已標記的檔案:使用歷史記錄的目標目錄 netrw-Th {{{2
設定已標記的檔案複製/移動目標。
netrw-qb 映射會提供您歷史記錄(和書籤)的清單。可以使用 [count]Th(預設計數:0;即目前目錄)選擇其中一個歷史記錄項目作為已標記的檔案目標。
相關主題: 複製檔案到目標............................|netrw-mc| 列出書籤和歷史記錄......................|netrw-qb| 已標記的檔案:設定目標目錄................|netrw-mt| 已標記的檔案:使用書籤的目標目錄..........|netrw-Tb| 標記檔案......................................|netrw-mf| 使用正規表示式標記檔案....................|netrw-mr| 移動檔案到目標.............................|netrw-mm|
已標記的檔案:取消標記 netrw-mu {{{2 (請參閱 netrw-mf, netrw-mF)
「mu」映射會取消標記所有目前已標記的檔案。此命令與「mF」不同,因為後者僅取消標記目前目錄中的檔案,而「mu」會取消標記全域和所有緩衝區本機已標記的檔案。(請參閱 netrw-mF
(如果您對 netrw 檔案傳輸設定感興趣,請參閱 netrw-optionsnetrw-protocol
<netrw.vim> 瀏覽器以您可以修改的變數形式提供設定;透過將這些設定放置在您的 <.vimrc> 中,您可以自訂您的瀏覽偏好。(另請參閱:netrw-settings
---                                -----------
Var                                Explanation
---                                -----------
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」(即開啟上一個視窗) 請注意,可以使用 g:netrw_preview 來取得垂直分割,而非水平分割。=[伺服器名稱,標籤頁號碼,視窗號碼] 給定一個類似這樣的 List,將使用由「伺服器名稱」命名的遠端伺服器進行編輯。它也會使用指定的標籤頁和視窗號碼來執行編輯(請參閱 clientserver, netrw-ctrl-r)此選項不會影響 :Lexplore 視窗的產生。
g:netrw_browsex_viewer 指定使用者偏好的檢視器
"kfmclient exec"
"gnome-open"
g:netrw_browsex_support_remote 指定指定的檢視器是否支援遠端 URL。(請參閱 netrw-handler)。
g:netrw_chgperm Unix/Linux:「chmod PERM FILENAME」Windows:「cacls FILENAME /e /p PERM」用於變更檔案的存取權限。
g:netrw_clipboard =1 預設情況下,netrw 會嘗試確保剪貼簿的值保持不變。但是,有些使用者回報說,他們使用此設定時遇到速度問題;因此,此選項設定為零時,可讓這些使用者防止 netrw 儲存和還原剪貼簿(後者僅在需要時執行)。這表示如果剪貼簿在正常的 netrw 操作中(不經意地)變更,它將不會還原到先前的狀態。
g:netrw_compress ="gzip" 將使用此命令壓縮已標記的檔案
g:Netrw_corehandler 允許使用者指定透過 netrw 瀏覽器的「x」命令處理 <core> 檔案時要執行的其他操作(請參閱 netrw-x)。如果存在,g:Netrw_corehandler 會指定一個或多個函式參考(請參閱 Funcref)。(必須使用大寫的 g:Netrw...,因為它保留著函式參考)
g:netrw_ctags ="ctags" 用於建立標籤的預設外部程式
g:netrw_cursor = 2(預設值)此選項控制 netrw 使用 'cursorline' (cul) 和 'cursorcolumn' (cuc) 設定
數值 細-長-樹 寬 =0 u-cul u-cuc u-cul u-cuc =1 u-cul u-cuc cul u-cuc =2 cul u-cuc cul u-cuc =3 cul u-cuc cul cuc =4 cul cuc cul cuc =5 U-cul U-cuc U-cul U-cuc =6 U-cul U-cuc cul U-cuc =7 cul U-cuc cul U-cuc =8 cul U-cuc cul cuc
其中 u-cul:使用使用者 'cursorline' 的初始設定 u-cuc:使用使用者 'cursorcolumn' 的初始設定 U-cul:使用使用者 'cursorline' 的目前設定 U-cuc:使用使用者 'cursorcolumn' 的目前設定 cul:將在本機設定 'cursorline' cuc:將在本機設定 'cursorcolumn'
「初始設定」表示當 netrw 上次看到 g:netrw_cursor >= 5 時或當 netrw 最初執行時生效的 'cuc''cul' 設定值。
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 的動態判斷,這會影響本機檔案長清單。
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()。預設值:stdpath("data") (請參閱 stdpath())
g:netrw_keepdir =1 (預設值):保持目前目錄不受瀏覽目錄影響。=0:保持目前目錄與瀏覽目錄相同。目前的瀏覽目錄包含在 b:netrw_curdir 中 (另請參閱 netrw-cd)
g:netrw_keepj ="keepj" (預設值):netrw 會嘗試保持 :jumps 表格不受影響。="":netrw 將不使用 :keepjumps,僅在儲存/還原位置時例外。
g:netrw_list_cmd 列出遠端目錄的指令。預設值:(如果 ssh 可執行) "ssh HOSTNAME ls -FLa"
g:netrw_list_cmd_options 如果此變數存在,其內容會附加到 g:netrw_list_cmd。例如,使用 "2>/dev/null" 以移除 Unix 系統上的橫幅訊息。
g:netrw_liststyle 設定預設的列表樣式:= 0:簡潔列表(每行一個檔案)= 1:長列表(每行一個檔案,包含時間戳記資訊和檔案大小)= 2:寬列表(多個檔案以欄顯示)= 3:樹狀列表
g:netrw_list_hide 用於隱藏檔案的逗號分隔模式列表。模式為正規表示式 (請參閱 regexp)。針對 git-ignore 檔案有一些特殊支援:您可以新增來自輔助函數 '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_maxfilenamelen 預設值為 32,選擇此值是為了讓長列表適合 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 進位 長列表 (netrw-i) 和查詢檔案映射 (netrw-qf) 將會使用指定的樣式顯示檔案大小。
g:netrw_usetab 如果此變數存在且不為零,則會啟用支援縮小/展開 Lexplore 或 netrw 視窗的 <tab> 映射。(請參閱 netrw-c-tab
g:netrw_remote_mkdir 透過 ftp 建立遠端目錄的指令(另請參閱 g:netrw_mkdir_cmd)預設值:"mkdir"
g:netrw_retmap 如果此變數存在且設定為 1,則:* 如果在 netrw 選取的檔案中,且 * 不存在一般模式的 <2-leftmouse> 映射,則會映射 <2-leftmouse> 以便輕鬆返回 netrw 瀏覽器視窗。範例:按一下以選取並開啟檔案,按兩下以返回。
請注意,您可以選擇:* 讓 g:netrw_retmap= 1,且 * nmap <silent> YourChoice <Plug>NetrwReturn 並使用另一個映射而不是 <2-leftmouse> 來呼叫返回。
您也可以使用 :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 在依名稱排序時,首先依逗號分隔的模式順序排序。請注意,您模式中應該考慮用於指示檔案類型的任何附加修飾。預設值:'[\/]$,,\.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),但您可以將以下程式碼行加入
hi link netrwCompress Visual
到您的 <.vimrc> 中以使用您自己的偏好設定。或者,您可以將此類規格加入
.vim/after/syntax/netrw.vim.
當以下情況發生時,netrw 會設定 netrwGray 強調顯示
* 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_ssh_cmd 您可以指定一個可執行指令,以取代 ssh 來執行遠端動作,例如列出、檔案移除等。預設值:ssh
g:netrw_suppress_gx_mesg =1:瀏覽器有時會產生通常不希望與頁面混在一起的訊息。然而,當使用連結時,例如,那些訊息是瀏覽器產生的。透過將此選項設定為 0,netrw 將不會抑制瀏覽器訊息。
g:netrw_tmpfile_escape =' &;' escape() 會套用至所有暫存檔案以跳脫這些字元。
g:netrw_timefmt 指定 vim strftime() 的格式字串。預設值 "%c" 是「目前地區設定的偏好日期和時間表示法」,根據我 strftime() 的 manpage 條目;然而,並非所有人都對此感到滿意。一些替代方案:「%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 為零,則會進行正常分割 (即,'equalalways' 將會生效,例如)。預設值:50(表示 50%)
g:netrw_wiw =1 指定在縮小 netrw/Lexplore 視窗時使用的最小視窗寬度 (請參閱 netrw-c-tab)。
g:netrw_xstrlen 控制 netrw 如何計算字串長度,包括多位元組字元的字串長度。(感謝 N Weibull、T Mechelynck) =0:使用 Vim 的內建 strlen() =1:碼點數 (拉丁字母 a + 組合符號變音符號為兩個碼點) (預設值) =2:間隔碼點數 (拉丁字母 a + 組合符號變音符號為一個間隔碼點;硬式 Tab 鍵是一個;寬和窄的 CJK 各為一個;等等) =3:虛擬長度 (將 Tab 鍵計算為 1 到 'tabstop' 之間的任何值,寬 CJK 計算為 2 而不是 1,阿拉伯字母 alif 在緊接在 lam 之後時計算為零,否則為 1,等等)
g:NetrwTopLvlMenu 此變數指定頂層選單名稱;預設值為「Netrw.」。如果您想要變更此名稱,請在您的 .vimrc 中執行此操作。

NETRW 瀏覽與選項不相容性 netrw-incompatible {{{2

Netrw 的設計宗旨是透過儲存使用者選項、將選項設定為與 netrw 需求相容的內容,然後再還原這些選項來處理使用者選項。但是,autochdir 選項
:set acd
是有問題的。Autochdir 會將目前目錄設定為包含您編輯檔案的目錄;這顯然也適用於目錄。換句話說,autochdir 會將目前目錄設定為包含「檔案」的目錄(即使該「檔案」本身是目錄)。

NETRW 設定視窗 netrw-settings-window {{{2

使用 NetrwSettings.vim 外掛程式,
:NetrwSettings
將會彈出一個視窗,其中包含 netrw 用於其設定的許多變數。您可以變更它們的任何值;當您儲存檔案時,將會使用其中的設定。您也可以在任何行上按下「?」來取得有關每個變數功能的說明。

取得檔案 netrw-obtain netrw-O {{{2

如果沒有標記的檔案
在瀏覽遠端目錄時,您可以按下 O 鍵來取得游標下的檔案(即在您的本機上取得複本,但不會編輯它)。
如果有標記的檔案
將會取得標記的檔案(即將複本傳輸到您的本機,但不會設定為編輯)。
此操作僅支援 ftp 和 scp(但是由於這兩個都可以用於瀏覽,因此應該不是問題)。狀態列的右側將會顯示類似「正在取得 filename」的訊息。傳輸完成後,將會還原狀態列。
Netrw 也可以使用本機瀏覽器「取得」檔案。Netrw 的目錄顯示不一定與 Vim 的「目前目錄」相同,除非在使用者的 <.vimrc> 中將 g:netrw_keepdir 設定為 0。可以使用本機瀏覽器選取檔案(將游標放在檔案上),然後按下「O」將會「取得」該檔案;即將其複製到 Vim 的目前目錄。
相關主題:* 若要查看目前目錄是什麼,請使用 :pwd * 若要將目前瀏覽的目錄設為目前目錄,請參閱 netrw-cd * 若要自動將目前瀏覽的目錄設為目前目錄,請參閱 g:netrw_keepdir
netrw-newfile netrw-createfile 在 NETRW 的目前目錄中開啟新檔案 netrw-% {{{2
若要在 netrw 的目前目錄中開啟新檔案,請按下「%」。此映射會詢問使用者新的檔案名稱;將會在 netrw 的目前目錄中放置一個該名稱的空白檔案(即 b:netrw_curdir)。
如果正在使用 Lexplore (netrw-:Lexplore),則新檔案將會在 g:netrw_chgwin 視窗中產生。
相關主題:netrw-d

預覽視窗 netrw-p netrw-preview {{{2

當游標位於要預覽的所需檔案名稱之上時,可以使用「p」鍵來使用預覽視窗。然後將會分割顯示,以同時顯示瀏覽器(游標將會保留在此處)和檔案(請參閱 :pedit)。預設情況下,分割將會水平進行;如果事先設定了 g:netrw_preview,則可以使用垂直分割。
一組有趣的 netrw 設定是
let g:netrw_preview   = 1
let g:netrw_liststyle = 3
let g:netrw_winsize   = 30
這些設定將會
1. 將垂直分割設為預覽檔案的預設值 2. 將預設清單樣式設為「樹狀」 3. 開啟垂直預覽視窗時,目錄清單將僅使用可用欄的 30%;視窗的其餘部分則用於預覽視窗。
相關說明:如果您喜歡這個想法,您可能也會發現 :Lexplore (netrw-:Lexplore) 或 g:netrw_chgwin 很有趣

上一個視窗 netrw-P netrw-prvwin {{{2

若要在先前使用的(上次存取的)視窗中編輯游標下的檔案或目錄(請參閱 :he CTRL-W_p),請按下「P」。如果只有一個視窗,則預設情況下會水平分割該視窗。
如果有超過一個視窗,則先前視窗將會重新用於選取的檔案/目錄。如果先前視窗的相關聯緩衝區已修改,並且只有一個視窗具有該緩衝區,則將會詢問使用者是否要先儲存緩衝區(是、否或取消)。
相關動作 netrw-cr netrw-o netrw-t netrw-v 相關設定變數:g:netrw_alto 控制上方/下方分割 g:netrw_altv 控制右方/左方分割 g:netrw_preview 控制水平與垂直分割 g:netrw_winsize 控制初始大小
另請參閱:g:netrw_chgwin netrw-p

重新整理清單 netrw-refresh netrw-ctrl-l netrw-ctrl_l {{{2

若要重新整理本機或遠端目錄清單,請按下 ctrl-l (<c-l>) 或當游標位於清單中的 ./ 目錄項目上方時,按下 <cr>。也可以使用 ":e ." 來重新整理本機目錄。

反轉排序順序 netrw-r netrw-reverse {{{2

可以按下「r」鍵來切換正常和反向排序順序。
相關主題:netrw-s 相關設定變數:g:netrw_sort_direction

重新命名檔案或目錄 netrw-move netrw-rename netrw-R {{{2

如果沒有標記的檔案:(請參閱 netrw-mf
重新命名檔案和目錄的步驟是將游標移動到要移動(重新命名)的檔案/目錄,然後按下「R」。然後將會詢問您要將檔案/目錄重新命名為什麼。您可以使用「V」命令(視覺選取)來選取一系列的行,然後按下「R」;將會針對每個檔案詢問您要將其重新命名為什麼。
如果有標記的檔案:(請參閱 netrw-mf
將會重新命名(移動)標記的檔案。將會像上方一樣詢問您,以指定要將檔案/目錄移動到何處。
如果使用「s/frompattern/topattern/」來回答重新命名查詢,則標記檔案清單上的後續檔案將會透過取得每個名稱、套用該取代,並將每個檔案重新命名為結果來重新命名。例如
mr  [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.
警告
請注意,移動檔案是一項危險的操作;複製更安全。這是因為遠端檔案的「移動」實際上是複製 + 刪除 - 如果複製失敗且刪除成功,則可能會遺失檔案。請自行承擔風險使用。
g:netrw_rename_cmd 變數用於實作遠端重新命名。預設值為
ssh HOSTNAME mv
當使用精簡樣式時,可以使用 V (linewise-visual) 來選取一組檔案和目錄,以重新命名它們。
請參閱 cmdline-editing 以取得更多有關如何編輯命令列的資訊;特別是,您會發現 <ctrl-f>(啟動命令列視窗編輯)和 <ctrl-c>(使用游標下的命令列)與 R 命令結合使用很有用。

選取排序樣式 netrw-s netrw-sort {{{2

可以依名稱、時間或(檔案)大小選取排序樣式。「s」映射允許在三種選擇之間循環;目錄清單將會自動重新整理,以反映選取的樣式。
相關主題:netrw-r netrw-S 相關設定變數:g:netrw_sort_by g:netrw_sort_sequence

設定編輯視窗 netrw-editwindow netrw-C netrw-:NetrwC {{{2

可以使用「C」映射、使用 :NetrwC [win#] 命令,或將 g:netrw_chgwin 設定為選取的視窗編號,來選取 netrw 視窗以進行編輯。後續選取要編輯的檔案 (netrw-cr) 將會使用該視窗。
* C:本身會選取目前持有 netrw 緩衝區的視窗,以供後續透過 netrw-cr 進行編輯。C 映射僅在 netrw 緩衝區中可用。
* [count]C:此計數將用作視窗編號,以便後續透過 netrw-cr 進行編輯。
* :NetrwC 會將 g:netrw_chgwin 設定為目前視窗
* :NetrwC win# 會將 g:netrw_chgwin 設定為指定的視窗編號
使用
let g:netrw_chgwin= -1
將還原預設的編輯行為(即,後續編輯將使用目前視窗)。
相關主題:netrw-cr g:netrw_browse_split 相關設定變數:g:netrw_chgwin
收縮或擴展 NETRW 或 LEXPLORE 視窗 netrw-c-tab {{{2
只有在 g:netrw_usetab 存在且為非零值時,<c-tab> 鍵才會切換 netrw 或 :Lexplore 視窗的寬度(當然,前提是您的終端機支援區分 <c-tab> 和普通的 <tab>)。
* 如果目前的視窗是 netrw 視窗,則切換其寬度(在 g:netrw_wiw 和其原始寬度之間)。
* 否則,如果目前標籤頁中有 :Lexplore 視窗,則切換其寬度
* 否則,顯示 :Lexplore 視窗
如果 g:netrw_usetab 存在且為零,或者如果 <c-tab> 有預先存在的映射,則 <c-tab> 將不會被映射。也可以映射其他按鍵而不是 <c-tab>:(但您仍然需要設定 g:netrw_usetab)。
nmap <unique> (whatever)        <Plug>NetrwShrink
相關主題::Lexplore 相關設定變數:g:netrw_usetab

使用者指定的映射 netrw-usermaps {{{1

使用者可以建立自訂的映射。指定一個變數 g:Netrw_UserMaps,以儲存鍵盤映射字串和函式名稱的 List 列表。
[["keymap-sequence","ExampleUserMapFunc"],...]
當 netrw 為 netrw 緩衝區設定映射時,如果 g:Netrw_UserMaps 存在,則會呼叫內部函式 netrw#UserMaps(islocal)。此函式會遍歷 g:Netrw_UserMaps 列表中的所有條目
* 設定映射
nno <buffer> <silent> KEYMAP-SEQUENCE
:call s:UserMaps(islocal,"ExampleUserMapFunc")
* 如果該函式呼叫的結果是字串 "refresh",則刷新 * 如果結果字串不是 "",則會執行該字串 ( :exe result ) * 如果結果是 List,則會對結果 List 中的每個字串執行上述兩個動作。
使用者函式會傳遞一個引數;它類似於
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"]]
10. 問題與修正 netrw-problems {{{1
(此章節可能會隨著我收到回饋而增加)(另請參閱 netrw-debugnetrw-p1
P1. 我使用 Windows,而我使用 ftp 的網路瀏覽不會依照 {{{2 時間或大小排序!- 或者 - 遠端系統是 Windows 伺服器;為什麼我沒有依照時間或大小排序?
Windows 的 ftp 對 ls 的支援最少(即,它不接受排序選項)。它不支援 -F,該選項會提供一個說明字元(ABC/ 代表「ABC 是一個目錄」)。然後 Netrw 會使用 "dir" 來取得其精簡和詳細的清單。如果您認為您的 ftp 支援完整的 ls,請將下列內容放入您的 <.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_cmds 如上所示,但遠端系統不會正確修改其清單行為。
netrw-p2
P2. 我嘗試了 rcp://user@host/ (或 ftp 以外的協定),而 netrw {{{2 使用了 ssh!這不是我要求的...
Netrw 有兩種瀏覽遠端目錄的方法:ssh 和 ftp。除非您明確指定 ftp,否則會使用 ssh。當需要下載檔案時(不僅僅是目錄清單),netrw 會使用指定的協定來執行此操作。
netrw-p3
P3. 我希望預設使用詳細清單。{{{2
將下列陳述式放入您的 vimrc
let g:netrw_liststyle= 1
請查看 netrw-browser-var,以瞭解您可以設定的更多自訂項目。
netrw-p4
P4. 我在本機瀏覽時,時間顯示很奇怪。{{{2
您的系統的 strftime() 是否接受 "%c" 來產生類似 "Sun Apr 27 11:49:23 1997" 的日期?如果沒有,請執行 "man strftime" 並找出應該使用的選項。然後將其放入您的 vimrc
let g:netrw_timefmt= "%X"  (where X is the option)
netrw-p5
P5. 我希望我的目前目錄追蹤我的瀏覽。{{{2 我該怎麼做?
將下列程式碼行放入您的 vimrc
let g:netrw_keepdir= 0
netrw-p6
P6. 我在我的檔案名稱中使用中文(或其他非 ASCII)字元,{{{2 而且 netrw (Explore, Sexplore, Hexplore 等) 沒有顯示它們!
(取自 Wu Yongwei 在 vim 郵件列表上提供的答案)我現在明白了問題所在。您的程式碼頁不是 936,對嗎?Vim 似乎只能開啟在目前程式碼頁中有效的名稱的檔案,就像許多其他不使用 Windows API Unicode 版本的應用程式一樣。這是一個與作業系統相關的問題。當系統地區設定使用 UTF-8 時,您不應該遇到這些問題,例如現代 Linux 發行版。
(...這是推薦人們使用 utf-8 的另一個原因!)
netrw-p7
P7. 我收到「ssh 在您的系統上不是可執行檔」的訊息 - 我該 {{{2 怎麼辦?
(Dudley Fox)我認識的大多數人使用 putty 進行 windows ssh。它是一個免費的 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} 變更為 *;我必須這樣寫,否則 helptags 系統會認為它是一個標籤)
請確保它位於清單方塊的頂端(如果不是,請按一下它,然後按一下「向上」)。如果使用 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,並且可能包含 sftp 等,我懷疑 cwRsync 沒有,儘管它可能會包含
(cec)若要正確使用上述建議,您需要在 .vimrc 中修改下列使用者可設定的變數
第一個 (g:netrw_ssh_cmd) 是最重要的;預設情況下,其他大多數都會使用 g:netrw_ssh_cmd 中的字串。
netrw-p8 netrw-ml_get P8. 我正在瀏覽、變更目錄,然後砰!出現 ml_get 錯誤,{{{2 而我必須關閉 vim。有任何方法可以解決這個問題嗎?
通常,netrw 會嘗試避免為其臨時目錄緩衝區寫入交換檔。但是,在某些系統上,此嘗試似乎導致出現 ml_get 錯誤。請嘗試在您的 <.vimrc> 中將 g:netrw_use_noswf 設定為 0。
let g:netrw_use_noswf= 0
netrw-p9
P9. 我不斷收到「[某物] 是目錄」和 {{{2「按 ENTER 或輸入指令繼續」提示...
「[某物] 是目錄」提示是由 Vim 而非 netrw 發出的,而且似乎沒有任何方法可以解決它。加上預設的 cmdheight 為 1,此訊息會導致「按 ENTER...」提示。因此:請閱讀 hit-enter;我也建議您在您的 <.vimrc> 檔案中將您的 'cmdheight' 設定為 2(或更大)。
netrw-p10
P10. 我想要兩個視窗;左邊一個窄視窗,右邊一個我的 {{{2 編輯視窗。我該如何實現這一點?
您可能希望 netrw 在側邊視窗中執行。如果是這樣,您可能會發現 ":[N]Lexplore" 符合您的需求。可選的 "[N]" 允許您選擇您希望 :Lexplore 視窗開始的欄數(請參閱 g:netrw_winsize 以瞭解此參數的工作方式)。
先前的解決方案
* 在你的 <.vimrc> 中加入以下這行: `let g:netrw_altv = 1` * 編輯目前目錄:`:e .` * 選擇一些檔案,按下 `v` * 隨意調整視窗大小(請參考 CTRL-W_<CTRL-W_>)。如果你使用 gvim,可以用滑鼠拖曳分隔線。 * 當你需要開啟新檔案時,使用 `ctrl-w h` 回到 netrw 瀏覽器,選擇一個檔案,然後按下 `P` (請參考 CTRL-W_hnetrw-P)。如果你使用 gvim,可以在瀏覽器視窗中按下 <滑鼠左鍵>,然後按下 <滑鼠中鍵> 來選擇檔案。
netrw-p11
P11. 我的目錄排序不正確,或是在檔案名稱列表中出現了不想要的字元 {{{2,或是寬列表中的項目沒有正確對齊,...
這可能是編碼問題造成的。我個人通常使用 utf-8,但實際上只使用 ascii (即位元組 32-126)。多位元組編碼每個字元使用兩個(或更多)位元組。你可能需要變更 g:netrw_sepchr 和/或 g:netrw_xstrlen
netrw-p12
P12. 我是 Windows + putty + ssh 使用者,當我嘗試 {{{2 瀏覽時,目錄缺少結尾的 "/",導致 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 {{{2 樣式的連線來加速寫入。該怎麼做?(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 通常的單擊 {{{2 來開啟檔案或目錄?(Ben Fritz)
首先,使用以下命令停用 netrw 的映射:
let g:netrw_mousemaps= 0
然後在 $HOME/.vim/after/ftplugin/netrw.vim 中建立僅限 netrw 緩衝區的映射:
nmap <buffer> <2-leftmouse> <CR>
請注意,將 g:netrw_mousemaps 設定為零會關閉 netrw 的所有滑鼠映射,而不僅僅是 <滑鼠左鍵> 的映射。(請參閱 g:netrw_mousemaps)
netrw-p15
P15. 當編輯遠端檔案時(例如:`:e ftp://hostname/path/file`),{{{2 在 Windows 下我收到一個 E303 訊息,抱怨無法開啟交換檔案。
(romainl) 看起來你是在受保護的目錄中啟動 Vim。從你的 $HOME 或其他可寫入的目錄啟動 netrw。
netrw-p16
P16. Netrw 自己關閉了緩衝區。{{{2 重現問題的步驟是什麼? 1. `:Explore`,導覽目錄,開啟檔案 2. `:Explore`,開啟另一個檔案 3. 步驟 1 中開啟的緩衝區將會被關閉。 o 預期的輸出是什麼?你看到的是什麼?我預期兩個緩衝區都存在,但只有最後一個存在。
(Lance) 問題是由 .vimrc 中的 "set autochdir" 引起的。(drchip) 我可以透過設定 'acd' 來重現這個問題。看起來緩衝區並非完全關閉;":ls!" 會顯示它們(雖然 ":ls" 不會)。
netrw-P17
P17. 如何在本機編輯只能透過 {{{2 另一個可透過 ssh 存取的伺服器取得的檔案?請參閱 http://stackoverflow.com/questions/12469645/ "使用 Vim 遠端編輯 ServerB 上只能從 ServerA 存取的檔案"
netrw-P18
P18. 如何在目錄列表中取得編號? {{{2 使用 g:netrw_bufsettings,你可以控制 netrw 的緩衝區設定;嘗試將以下內容放入你的 .vimrc 中:
let g:netrw_bufsettings="noma nomod nu nobl nowrap ro nornu"
如果你想要使用相對編號,請嘗試:
let g:netrw_bufsettings="noma nomod nonu nobl nowrap ro rnu"
netrw-P19
P19. 我該如何讓 gvim 啟動時顯示目錄列表?{{{2 嘗試將以下程式碼片段放入你的 .vimrc 中:
augroup VimStartup
  au!
  au VimEnter * if expand("%") == "" && argc() == 0 &&
  \ (v:servername =~ 'GVIM\d*' || v:servername == "")
  \ | e . | endif
augroup END
如果你願意,可以使用 `Lexplore` 來代替 "e"。這個程式碼片段假設你已啟用用戶端伺服器 (即 "huge" vim 版本)。
netrw-P20
P20. 我建立了一個帶有重音符號的目錄(或檔案),{{{2 但 netrw 不讓我進入該目錄/讀取該檔案
可能是 shell 或作業系統使用的編碼與你的 vim (netrw) 使用的編碼不同。未來針對 vim 支援 "systemencoding" 的修補程式可能會解決這個問題;現在,只需讓 netrw 使用正確的編碼即可。例如:
au FileType netrw set enc=latin1
netrw-P21
P21. 當我嘗試複製或移動檔案時,收到錯誤訊息:{{{2
**error** (netrw) tried using g:netrw_localcopycmd<cp>; it doesn't work!
哪裡出錯了?
Netrw 使用數個系統層級的命令來執行操作(請參閱
你可能需要調整其中一個或多個命令的預設命令,方法是在你的 .vimrc 中正確設定它們。另一個困難的來源是,這些命令使用 vim 的本機目錄,這可能與 netrw 顯示的瀏覽目錄不同(請參閱 g:netrw_keepdir)。

11. Netrw 本身的除錯 netrw-debug {{{1

步驟 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 並嘗試透過執行傳輸或執行一些瀏覽來引發問題。應該會出現一組訊息,說明 <netrw.vim> 在嘗試透過網路讀取/寫入你的檔案時所採取的步驟,並顯示在另一個標籤頁或伺服器 vim 視窗中。
變更 netrw.vimrc 檔案以包含 Decho 外掛程式:
set nocp
so $HOME/.vim/plugin/Decho.vim
so $HOME/.vim/plugin/netrwPlugin.vim
你應該繼續使用以下命令執行 vim:
vim -u netrw.vimrc --noplugins -i NONE [some path here]
以避免與選項和其他外掛程式糾纏。
若要儲存檔案:在 linux 下,輸出將會在另一個遠端伺服器視窗中;在其中,只需使用以下命令儲存檔案:
:w! DBG
在不支援客戶端/伺服器的 vim 下,你的除錯輸出將會顯示在另一個標籤頁中。
:tabnext
:set bt=
:w! DBG
此外,如果你輸入以下命令會很有幫助:
:Dsep <command>
其中 <command> 是你接下來要輸入的命令,這樣更容易將除錯追蹤的哪個部分與哪個命令相關聯。
請將該資訊連同你使用的作業系統和你使用的 vim 版本(請參閱 :version)寄給 <netrw.vim> 的維護者(首先移除嵌入的 NOSPAM)。
[email protected]

12. 歷史 netrw-history {{{1

v172: Sep 02, 2021 * (Bram Moolenaar) Changed "l:go" to "go" * (Bram Moolenaar) no need for "b" in netrw-safe guioptions Nov 15, 2021 * removed netrw_localrm and netrw_localrmdir references Aug 18, 2022 * (Miguel Barro) improving compatibility with powershell v171: Oct 09, 2020 * included code in s:NetrwOptionsSafe() to allow 'bh' to be set to delete when rather than hide when g:netrw_fastbrowse was zero. * Installed g:netrw_clipboard setting * Installed option bypass for 'guioptions' a/A settings * Changed popup_beval() to popup_atcursor() in netrw#ErrorMsg (lacygoill). Apparently popup_beval doesn't reliably close the popup when the mouse is moved. * VimEnter() now using win_execute to examine buffers for an attempt to open a directory. Avoids issues with popups/terminal from command line. (lacygoill) Jun 28, 2021 * (zeertzjq) provided a patch for use of xmap,xno instead of vmap,vno in netrwPlugin.vim. Avoids entanglement with select mode. Jul 14, 2021 * Fixed problem addressed by tst976; opening a file using tree mode, going up a directory, and opening a file there was opening the file in the wrong directory. Jul 28, 2021 * (Ingo Karkat) provided a patch fixing an E488 error with netrwPlugin.vim (occurred for vim versions < 8.02) v170: Mar 11, 2020 * (reported by Reiner Herrmann) netrw+tree would not hide with the ^\..* pattern correctly. * (Marcin Szamotulski) NetrwOptionRestore did not restore options correctly that had a single quote in the option string. Apr 13, 2020 * implemented error handling via popup windows (see popup_beval()) Apr 30, 2020 * (reported by Manatsu Takahashi) while using Lexplore, a modified file could be overwritten. Sol'n: will not overwrite, but will emit an E37 (although one cannot add an ! to override) Jun 07, 2020 * (reported by Jo Totland) repeatedly invoking :Lexplore and quitting it left unused hidden buffers. Netrw will now set netrw buffers created by :Lexplore to 'bh'=wipe. v169: Dec 20, 2019 * (reported by amkarthik) that netrw's x (netrw-x) would throw an error when attempting to open a local directory. v168: Dec 12, 2019 * scp timeout error message not reported, hopefully now fixed (Shane Xb Qian) v167: Nov 29, 2019 * netrw does a save&restore on @* and @+. That causes problems with the clipboard. Now restores occurs only if @* or @+ have been changed. * netrw will change @* or @+ less often. Never if I happen to have caught all the operations that modify the unnamed register (which also writes @*). * Modified hiding behavior so that "s" will not ignore hiding. v166: Nov 06, 2019 * Removed a space from a nmap for "-" * Numerous debugging statement changes v163: Dec 05, 2017 * (Cristi Balan) reported that a setting ('sel') was left changed * (Holger Mitschke) reported a problem with saving and restoring history. Fixed. * Hopefully I fixed a nasty bug that caused a file rename to wipe out a buffer that it should not have wiped out. * (Holger Mitschke) amended this help file with additional g:netrw_special_syntax items * Prioritized wget over curl for g:netrw_http_cmd v162: Sep 19, 2016 * (haya14busa) pointed out two syntax errors with a patch; these are now fixed. Oct 26, 2016 * I started using mate-terminal and found that x and gx (netrw-x and netrw-gx) were no longer working. Fixed (using atril when $DESKTOP_SESSION is "mate"). Nov 04, 2016 * (Martin Vuille) pointed out that @+ was being restored with keepregstar rather than keepregplus. Nov 09, 2016 * Broke apart the command from the options, mostly for Windows. Introduced new netrw settings: g:netrw_localcopycmdopt g:netrw_localcopydircmdopt g:netrw_localmkdiropt g:netrw_localmovecmdopt Nov 21, 2016 * (mattn) provided a patch for preview; swapped winwidth() with winheight() Nov 22, 2016 * (glacambre) reported that files containing spaces weren't being obtained properly via scp. Fix: apparently using single quotes such as with "file name" wasn't enough; the spaces inside the quotes also had to be escaped (ie. "file\ name"). * Also fixed obtain (netrw-O) to be able to obtain files with spaces in their names Dec 20, 2016 * (xc1427) Reported that using "I" (netrw-I) when atop "Hiding" in the banner also caused the active-banner hiding control to occur Jan 03, 2017 * (Enno Nagel) reported that attempting to apply netrw to a directory that was without read permission caused a syntax error. Jan 13, 2017 * (Ingo Karkat) provided a patch which makes using netrw#Call() better. Now returns value of internal routines return, for example. Jan 13, 2017 * (Ingo Karkat) changed netrw#FileUrlRead to use :edit instead of :read. I also changed the routine name to netrw#FileUrlEdit. Jan 16, 2017 * (Sayem) reported a problem where :Lexplore could generate a new listing buffer and window instead of toggling the netrw display. Unfortunately, the directions for eliciting the problem weren't complete, so I may or may not have fixed that issue. Feb 06, 2017 * Implemented cb and cB. Changed "c" to "cd". (see netrw-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

13. 待辦事項 netrw-todo {{{1

07/29/09 : banner :|g:netrw_banner| 可用於抑制抑制橫幅。此功能是新的且為實驗性,因此正在除錯中。09/04/09 : "gp" : 查看是否可以使其適用於遠端系統。: 查看是否可以與標記的檔案一起使用。

14. 感謝名單 netrw-credits {{{1

Bram Moolenaar 的 Vim 編輯器 (感謝,Bram!) C Campbell 的 dav 支援 Bram Moolenaar 和 C Campbell 的 fetch 支援 C Campbell <[email protected]> 的 ftp 支援 Bram Moolenaar <[email protected]> 的 http 支援 C Campbell 的 rcp rsync 支援 (由 Erik Warendorph 建議) raf <[email protected]> 的 scp 支援 C Campbell 的 sftp 支援
C Campbell 貢獻的 inputsecret()、BufReadCmd、BufWriteCmd
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

主選單
命令索引
快速參考