ひどくハマったのでメモ。
状況
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
誰かいい方法教えてー