Есть ли способ перечислить буквы дисков в Dired? - PullRequest
3 голосов
/ 06 сентября 2010

На окнах, как я могу открыть буфер Dired, показывая все буквы диска.Когда вы делаете Cx d , вы всегда должны указывать каталог, но я хочу начать с уровня букв диска вместо корневого каталога конкретного диска.

Если стандартного решения не существует, есть ли у вас (расширение на dired?)?или ссылки на статьи по теме?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2010

В dired вы можете просматривать только каталоги, и поскольку не существует ни одного каталога, содержащего ваши буквы дисков, вы не сможете увидеть их список.

Для этого вам нужно написать расширение emacs-lisp для dired.

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 , чтобы найти букву диска на текущей строке и делай dired на его корне.

Если вы просто хотите, чтобы в списке были буквы дисков ...

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

Сделаем это.

1 голос
/ 21 августа 2011

Dired + имеет то, что вы хотите.

Команда diredp-w32-drives открывает список / меню дисков Windows.Используйте RET или mouse-2 , чтобы открыть Dired на одном из дисков.Локальные диски поступают из опции diredp-w32-local-drives, которую вы можете настроить.

Если вы нажали ^ в Dired при посещении одного из ваших дисков (например, C:\), то вы получитеодин и тот же список / меню всех дисков.

...