Emacs で正規表現を書いていたところ、なぜかエスケープシーケンスがちっとも効かない。
/(.+)[¥s]+(.+)/ # 実際はすべて半角
こんなシンプルな抽出なのにちっとも機能しない。どういうことだと色々悩んでいたところに、1つの疑惑が。
「ひょっとすると円とバックスラッシュは別コードで示される文字なのでは。」
別所(ターミナル)ではそのまま表示されているバックスラッシュをコピーして Emacs に持ってきたところ、しっかりと画面上にはバックスラッシュが掲載される。そのまま正規表現に利用すると見事マッチ。
で、改めて調べたところ、Mac の日本語キーボードでは以下のような入力になるとのこと。
- 円は「¥」キー
- バックスラッシュは Option +「¥」
Windows, Linux で今まで当たり前のように使っていた「エスケープ等に利用するためのバックスラッシュ」は円とイコールの扱いだったし、キー入力も¥キー1つでOKだった。それが Mac ではこの違い。そして何が驚いたって、これが Mac ユーザには「バックスラッシュは Option +¥ で入力すべき文字」ということが当然のことだったという。
「じゃあ円(¥)は何に使うの?」と聞くと、「少なくともコードには必要ない」ということだったので、既に導入済みのキーボードカスタマイズソフト KeyRemap4MacBook で¥キーでバックスラッシュが入力されるように変更したのでした。Windows の窓使いの憂鬱並に、既にマストソフトウェアです。