Help us understand the problem. What is going on with this article?

[Emacs] MacOSでEmacsを使うときは、バックスラッシュにご注意

More than 5 years have passed since last update.

ひどくハマったのでメモ。

状況

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

誰かいい方法教えてー

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした