Есть ли способ перечислить буквы дисков в Dired?

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

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

2 ответа

Решение

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

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

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

Сделаем это.

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

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

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

Другие вопросы по тегам