読者です 読者をやめる 読者になる 読者になる

ウェブサービスを作っています。

iTerm で Command キーを Meta キーに割り当てて、Emacs を普通に使う

iTerm Mac Emacs

Tiger までは .zshrc とかに

alias emacs="/Applications/Emacs.app/Contents/MacOS/Emacs"

と書いておけば、ターミナルから emacs コマンドで Carbon Emacs を呼び出すことができていました。
ところが Leopard からはなぜか、Carbon Emacs が起動と同時に無限ループに突入してしまいます。
で、直し方よくわからないし、Leopard になって、デフォルトの Emacs も文字化けしなくなったので、ターミナル上で 普通に Emacs を使おうと考えました。


追記(2008/10/24 14:19):

alias emacs='open -a /Applications/Emacs.app'

で、ターミナルから Carbon Emacs を開くことができます。
コメント欄で dooking さんに教えていただきました。ありがとうございます。


ところで、Mac で Emacs を使うのなら Command キーが Meta キーになっていないと話にならないと思うのですが、どのターミナルソフトも通常は設定できなくなっています。
ゆえに、すばらしい方々が Command キーを Meta キーにする工夫をなさっています。


で、まずは Apple 社製の標準ターミナルで試してみました。
こちらを入れて試す。
あっさり成功です。おめでとうございます。
しかし、何なんでしょう。日本語の入力がうまくいきません。
亀の速度で入力してあげれば大丈夫なのですが、高速で打ち込むと、たまに未確定文字列が消えてしまいます。
非常にストレスがたまります。
さらに、Ctrl+/ で undo できません。
これではストレスがたまります。


そこで次に、iTerm にパッチを当てる方法で試してみました。
おー、いいじゃないですか。
日本語を高速で打ち込んでも大丈夫です。
さらに、Ctrl+/ で undo できます。
しかし、1 つだけ問題が。3 キー入力が 2 キー入力に誤認されるみたいです。
具体的には M->, M-<, M-% みたいな Shift キーの要るやつがうまくいきません。
仕方ないので 3 キー入力を 2 キーで代用させるよう .emacs に追加します。

;; iTerm 対策
(define-key global-map "\M-," 'beginning-of-buffer)
(define-key global-map "\M-." 'end-of-buffer)
(define-key global-map "\M-5" 'query-replace)


Shift キーを押しながらでも問題はありません。
これで、何とか使えるようになった気がします...。
しばらくこれで試してみたいと思います。