Cygwin Emacs の dired で選択したファイルをWindows アプリケーションから開くには

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って結構すごいですね!!