dired はEmacsで使える便利なファイラーです。
diredからファイルを選択してEmacsの外部プログラムから開くパッケージとして dired-open.elがあります。 (dired-hacksの中の一つです。)
Linuxなどでは
(require 'dired-open) (setq dired-open-extensions '(("pdf" . "evince") ("svg" . "inkscape") ("jpg" . "display" )))
などとアプリケーションを個別に登録すると、diredからファイルを選んでRETを押すだけで外部プログラムから開くことができます。
しかし Cygwin だとアプリケーションを個別に登録しても上手く動きません。 Cygwinだとパスの処理が違うせいだと思われます。
Cygwinからファイルに関連付けられたWindow アプリケーションを開くにはcygstartを使う
CygwinからWindowsアプリケーションを開くのに便利なコマンドがあります。それはcygstartです。
例えば、cygstart からhoge.ext というファイルを開くと、Windows上で.extに関連づけられたアプリケーションから開くことができます。
これをdired-openに応用するのです! dired-openはpackageからインストールします(M-x package-install (RET) dired-open)。
以下のように外部プログラムから開きたい拡張子のプログラムをcygstartにするだけです。
(require 'dired-open) (setq dired-open-extensions '(("pdf" . "cygstart") ("svg" . "cygstart") ("jpg" . "cygstart" )))
これで、Cygwin Emacsのdired上からファイルをWindowsアプリケーションで開くことができます。 Windowsがよろしく判断して適切なアプリケーションから開いてくれるのです。
これでWindows上の作業効率向上、間違い無しですよ。Cygwinって結構すごいですね!!