Emacs で LilyPond を使う (2) - Point and Click

 LilyPond で作成した PDF には、クリックするとソースファイルの該当場所を開く機能がついている。このため、PDF に特別な URL textedit://(file-path):line:column へのリンクが埋め込まれている。拙作 LilyRunner には、このリンクを処理する機能があるので、これを使って Emacs で LilyPond ソースファイルを開くようにしてみた。

 まず、Emacs 側の設定として、~/.emacs.d/init.el に以下の内容を追加する。

;; Run emacs server if not yet running (require 'server) (unless (server-running-p) (server-start))

 次に LilyRunner をインストールし、Preference を開いて、"Script to respond to click on PDF" のテキストボックスに次の内容を書き込む。(Emacs.app は /Applications に置いてあるとする)

#!/bin/sh # $1 = file, $2 = line, $3 = column /Applications/Emacs.app/Contents/MacOS/bin/emacsclient --no-wait +$2:$3 "$1" osascript -e 'tell application "Emacs" to activate'

 準備はこれだけでよい。まず Emacs を立ち上げておいて、LilyPond で作った PDF をプレビューで開き、リンクがあるところ(カーソルが指さしマークになるところ)でクリックすると、Emacs でそのファイルが開かれ、該当箇所にカーソルが移動する。すでにファイルが開かれている場合は、そのバッファが前面に出てくる。

 試してみた。こりゃ便利だわ。バッファにマークがついているとリージョン選択状態になってしまうが、まあご愛嬌ということで。

(2011/11/18 作成)