在Windows上,如何打开显示所有驱动器号的dired缓冲区。当您执行 C-x d 时,您应该始终提供一个目录,但我想从驱动器号级别开始,而不是从特定驱动器的根目录开始。
如果不存在标准解决方案,您是否有一个(指向?的扩展名?)?或链接到有关该主题的文章?
答案 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:\
),那么您将进入所有驱动器的相同列表/菜单。