エクスプローラーから右クリックで Cygwin の emacsclient にファイルを送る

Windows のエクスプローラーからファイルを Cygwin の Emacs で開きたい時は、cyg-emacsclient が便利です。

emacsclient はファイルを既に起動中のEmacsで開くものです。 CygwinのEmacsを使う場合は、WindowsのパスとCygwinのパスが異なるため、そのままでは動きません。

そこでパスを変換してemacsclientに渡してくれるwrapper的なものが必要です。それがcyg-emacsclientです。

cyg-emacsclient のインストール

ソースはhttps://github.com/otsuka512/cyg-emacsclientからダウンロードします。

インストールは簡単です:

make
make install

これで Cygwinの /binにインストールされます。

エクスプローラーの右クリックの「送る」で使えるように、cyg-emacsclientのショートカットをC:\Users\USER_NAME\AppData\Roaming\Microsoft\Windows\SendTo にコピーしておきます。これで、任意のファイルを右クリックメニューからEmacsに送ることが出来ます。

なお、cygwinのemacsclientのパスは/bin/emacsclientに決め打ちです。

自分でbuildした場合は/binにシンボリックリンクを作るか、本体を/binにコピーするなどが必要です。

Emacs側の設定

emacsclientを使うにはEmacs側でserverの設定をしておく必要があります。以下の設定を~/.emacs.d/init.elに書いておきます:

(require 'server)
(unless (server-running-p)
  (server-start))

emacsclientからEmacs本体を自動起動するやり方もあるようですが、ぼくはやっていません。