3

Windowsで、すべてのドライブ文字を表示するdiredバッファを開くにはどうすればよいですか。その場合C-x d、常にディレクトリを指定する必要がありますが、特定のドライブのルートディレクトリではなく、ドライブ文字レベルから始めたいと思います。

標準ソリューションが存在しない場合、それはありますか(diredへの拡張?)?または主題に関する記事へのリンク?

4

2 に答える 2

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"))
)

それをします。

于 2010-09-06T21:48:47.537 に答える
2

Dired+はあなたが望むものを持っています。

コマンドdiredp-w32-drivesは、Windowsドライブのリスト/メニューを開きます。RETまたはを使用mouse-2して、ドライブの1つでDiredを開きます。ローカルドライブはdiredp-w32-local-drives、カスタマイズ可能なオプションから提供されます。

ドライブの1つ(例)にアクセスした^ときにDiredを押すとC:\、すべてのドライブの同じリスト/メニューが表示されます。

于 2011-08-21T00:02:25.520 に答える