ひどくハマったのでメモ。
状況
Windows, Linuxでは日本語キーボードの円マーク(¥)の刻印のキーを打鍵すると、
バックスラッシュ\、ASCII 0x5cが出てきますが、フォントによって円マークだったりバックスラッシュだったりします。
ですが、日本語キーボードのMacBookでは、円マークの刻印のキーを打鍵すると本当の(?) ¥、つまりUTF8 0xC2 0xA5 YEN SIGNが出てきます。
私はこれでHaskell コンパイラが謎のエラーを吐いてしまい、45分間これで苦しみました。
解決方法
MacOS
Option + ¥ で、0x5cのバックスラッシュが入力できます。
Emacs
Cocoa Emacsでは、通常Option + ¥では/を入力できません。
¥に対するキーアサインをいじって、/を入力するようにします。
(define-key global-map [?¥] [?\\]) ;; ¥の代わりにバックスラッシュを入力する
( http://d.hatena.ne.jp/nekotank/20130628/1372411052 より引用)
上記コードをコピペしたときに意図通り動くかどうかは未確認です
念の為、円マークとバックスラッシュはEmacs以外のところでそれぞれ打ち込んでからyankしたほうが安全です。
参考
Mac Emacs backslashでググるとたくさん出てきますが、以下の2サイトが非常に参考になりました。
追記
保存するときにUTF-8にしないと、文字コード変換によって以下のコードの¥がダメになってしまうことがあるみたいです。
(define-key global-map [?¥] [?\\])
なので、上記コードを.emacs.d/init.el等に保存した場合は、C-x RET f utf-8として、バッファのエンコーディングをUTF-8にしたうえで保存するようにしましょう。
C言語のように数値で¥をする方法があればそれがベストなのですが、
とりあえずファイルローカル変数でファイルエンコーディングを指定する方法で回避できそうです。
http://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html
誰かいい方法教えてー