2010-09-06 80 views
3

在windows上,我怎麼打開顯示所有驅動器號的dired緩衝區。當你做C-xd你應該總是提供一個目錄,但我想從驅動器字母級開始,而不是特定驅動器的根目錄。有沒有辦法在dired中列出驅動器號?

如果沒有標準解決方案存在,你有一個(擴展到dired?)?或鏈接到有關這個問題的文章?

回答

2

在dired中,您只能查看目錄,並且由於沒有包含驅動器號的目錄,因此無法看到它們的列表。

要做到這一點,你必須爲dired編寫一個emacs-lisp擴展。

AFAIK有沒有現有的擴展,然而,WMIC一個電話可以給你的驅動器號和卷名,這將是一個很好的起點上的列表。

WMIC命令:

wmic logicaldisk get caption,drivetype,providername,volumename 

從emacs的,口齒不清調用它,得到的結果作爲一個字符串。

(let (sh-output volumes) 
    (setq sh-output (shell-command-to-string "wmic LogicalDisk get Caption,DriveType,ProviderName,VolumeName")) 
) 

會給你卷的列表(的DriveType:3 =硬盤,4 =網絡映射,5 =光)

但是,你不能讓dired承認的緩衝與此輸出,因此您需要創建一個瀏覽Windows卷的主要模式,這將顯示此列表並綁定RET以在當前行中查找驅動器號並執行其根目錄。

如果你只是想列出的驅動器號...

(let (sh-output volumes) 
    (setq sh-output (shell-command-to-string "wmic LogicalDisk get Caption")) 
) 

將這樣做。

+0

我已編輯我的問題,要求對此問題的任何現有解決方案或有關該主題的文章的鏈接。 – 2010-09-07 11:36:49

+0

@Jerome,請嘗試wmic獲取驅動器所需的文本輸出。 – ocodo 2010-09-07 12:36:38

+0

Thx爲wmic命令,我會嘗試編碼,如果我有時間的話...... – 2010-09-07 15:22:24

1

Dired +有你想要的。

命令diredp-w32-drives打開Windows驅動器的列表/菜單。使用RET鼠標-2在其中一個驅動器上打開Dired。本地驅動器來自選項diredp-w32-local-drives,您可以自定義。

如果您在訪問其中一個驅動器(例如C:\)時在Dired中點擊^,那麼您會看到所有驅動器的相同列表/菜單。

相關問題