2010-09-06 82 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中点击^,那么您会看到所有驱动器的相同列表/菜单。

相关问题