3

在 Windows 上,我怎么能打开一个显示所有驱动器号的 dired 缓冲区。当你这样做时,C-x d你应该总是提供一个目录,但我想从驱动器号级别而不是特定驱动器的根目录开始。

如果不存在标准解决方案,您是否有一个(对 dired 的扩展?)?或有关该主题的文章的链接?

4

2 回答 2

2

在 dired 中,您只能查看目录,并且由于不存在包含您的驱动器号的目录,因此您看不到它们的列表。

为此,您必须为 dired 编写一个 emacs-lisp 扩展。

AFAIK 没有现有的扩展,但是,调用wmic可以为您提供驱动器号和卷名的列表,这将是一个很好的起点。

wmic命令:

wmic logicaldisk get caption,drivetype,providername,volumename

从 emacs-lisp 调用它并将结果作为字符串获取。

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

将为您提供卷列表(DriveType:3 = HDD,4 = Network Mapping,5 = Optical。)

但是,您无法通过此输出识别缓冲区,因此您需要创建一个用于浏览 Windows 卷的主要模式,该模式将显示此列表并绑定RET以查找当前行上的驱动器号并执行根深蒂固。

如果您只想列出驱动器号...

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

会这样做。

于 2010-09-06T21:48:47.537 回答
2

Dired+有你想要的。

命令diredp-w32-drives打开 Windows 驱动器的列表/菜单。使用RETmouse-2在其中一个驱动器上打开 Dired。本地驱动器来自 option diredp-w32-local-drives,您可以对其进行自定义。

如果您^在访问您的一个驱动器(例如)时点击 Dired C:\,那么您将进入所有驱动器的相同列表/菜单。

于 2011-08-21T00:02:25.520 回答