有没有办法在dired中列出驱动器号?

时间:2010-09-06 15:33:53

标签: windows emacs dired

在Windows上,如何打开显示所有驱动器号的dired缓冲区。当您执行 C-x d 时,您应该始终提供一个目录,但我想从驱动器号级别开始,而不是从特定驱动器的根目录开始。

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

2 个答案:

答案 0 :(得分: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 =网络映射,5 =光学。)

但是,您不能直接识别具有此输出的缓冲区,因此您需要创建一个主要模式来浏览Windows卷,这将显示此列表并将 RET 绑定到找到当前行上的驱动器号并在它的根目录下执行操作。

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

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

会这样做。

答案 1 :(得分:1)

Dired + 有你想要的。

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

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

相关问题