Windowsで、すべてのドライブ文字を表示するdiredバッファを開くにはどうすればよいですか。その場合C-x d、常にディレクトリを指定する必要がありますが、特定のドライブのルートディレクトリではなく、ドライブ文字レベルから始めたいと思います。
標準ソリューションが存在しない場合、それはありますか(diredへの拡張?)?または主題に関する記事へのリンク?
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"))
)
それをします。
Dired+はあなたが望むものを持っています。
コマンドdiredp-w32-drives
は、Windowsドライブのリスト/メニューを開きます。RETまたはを使用mouse-2して、ドライブの1つでDiredを開きます。ローカルドライブはdiredp-w32-local-drives
、カスタマイズ可能なオプションから提供されます。
ドライブの1つ(例)にアクセスした^ときにDiredを押すとC:\
、すべてのドライブの同じリスト/メニューが表示されます。