Mac OSX 10.6のAquaemacsでバックスラッシュ(\)がUnicodeの円記号(¥)になる

9月 18, 2010 Computer
(Last Updated On: 2018年8月14日)

Mac上でEmacsを使うと言っても、コードを見るくらいでAquaemacsを使っています。Aquaemacs 2.0以上からはタブも使えてかなり便利です。今は2.1を使っています。PHP、RubyはEclipseやNetBeansを使っています。

Aquaemacsでコーディングはしていなかったので今まで困らなかったのですが、PHP本体のコーディングとビルドをMac上で出来るようにしました。Cのコードは普通はEmacsで書いているので、AquaemacsでCのコードをコーディングしようと思ったら「バックスラッシュ(\)が円記号(¥)になる」現象で困ってしまいました。

普通はOption+¥ で \ (0x5C)が入力できるのですが、AquaemacsではOptionキーがメタキーになっているので入力できないようです。コマンドキーとオプションキーを入れ替えてみましたが

;; command key as meta key
(setq ns-command-modifier ‘meta)
;; option + yen(jis keyboard) => backslash
(setq ns-alternate-modifier ‘option)

これもダメでした。これで動作する環境も在るようですがOSX 10.6ではNGなのかも知れません。結局、

http://sourceforge.jp/projects/macemacsjp/lists/archive/users/2006-June/001125.html

に記載されている

(define-key global-map [?円記号] [?\\])
(define-key global-map [?\C-円記号] [?\C-\\])
(define-key global-map [?\M-円記号] [?\M-\\])
(define-key global-map [?\C-\M-円記号] [?\C-\M-\\])

を~/.eamcsに記入して解決しました。”円記号”の部分をUnicode(UTF-8)の”¥”で置き換えてください。Aquaemacsで書けば勝手にUnicodeの”¥”になるはずです。上手くいかない場合はエンコーディングが違うのかも知れません。~/.emacsに

(set-terminal-coding-system ‘utf-8)
(set-keyboard-coding-system ‘utf-8)
(prefer-coding-system ‘utf-8)

を追加してみてください。UTF-8でファイルを読み書きできるはずです。

Aquaemacsを再起動すれば普通に”¥”キーを押せばASCIIの”\”(0x5C) が入力されるようになります。快適です。

投稿者: yohgaki