2010年2月22日月曜日

cocoa emacs のインストール(その2)

インラインパッチ が新しくなっていたので、cocoa emacs を再インストールした。

インストール

インストールは、 MacEmacs JP Project サイトにある、
「IMEパッチ適用 Emacs 23.1.92 では...」
の所に書いてあるコマンドを、そのまま実行するだけで完了。

.emacs.el も、 今までと同じ内容 で問題なく動作した。

使ってみて

漢字変換中に C-iC-o を使った時のカーソル変化が、 前のバージョンよりもわかりやすくなり、日本語の入力がとても使いやすくなった。

ただ、do-applescript がおかしな動作をする。
僕の環境が悪いのかもしれないが、
(do-applescript "display dialog \"Hello\"")
を実行すると、何故かemacsが、
Fatal error (10) Emacs[3125:10b] 
   *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 
   'Permission denied', port = 0x3803, 
    name = 'org.gnu.Emacs.ServiceProvider'
Abort trap
というエラーメッセージを吐いて、落ちてしまうのだ。

この現象が起きるのは、default-input-method が MacOSX の場合に限るようなので、とりあえずの回避策として、 do-applescriptを、以下の用に再定義してみた。
(when (string-match "23\\.1\\.92" emacs-version)
  (defun do-applescript (script)
    (let ((default-input-method "japanese"))
      (ns-do-applescript script))))
ns-do-applescriptが動く時だけ、 input-method を japanese に変更しただけだが、 これでなんとか動くようになる。
もともと、do-applescript は、 ns-do-applescript のエイリアスなので、再定義しても大丈夫だろう。