ことえりの設定で ¥ じゃなく \ が出るようにしているのに Emacs で C-\ を入れたつもりが "C-¥ is not defined" と怒られた。
そもそも option を Meta に取られるからアクセント付きのéとかüとかが出せなくてどうしようというところから Emacs の変換機能を使おうと思ったんだけど, 普段使ってないからそんなことになっているとはつゆ知らず。
(global-set-key [?\C-¥] 'toggle-input-method) とか .emacs に書いておくことにした。
[?\C-¥] なんて書き方初めてした。
と、ここまではついったに書いたんだけど、どうしてアクセント付きの文字を急に入力したくなったかというと、色々な文字を混ぜたテストメールを書きたかったから。
その理由を書くのも長い物語になりそうだが、頑張ってみよう。
まず時々、英語の文書を入力することがある。
すると最後にスペルチェックを掛けておきたくなる。
Emacs では ispell-buffer とかいうやつ。
で、こいつがロケールを見るのね。
一応メッセージとかは日本語がいいかなあと思っているので ja_JP にしてあるわけだけど、明らかに今は英語を選んで欲しい場面。
それだけなら -*- ispell-dictionary: "en" -*- とファイルに埋めておけば何とかなるといえば何とかなる。
が、振り返ってみると Emacs に対してロケールを指定して嬉しいことは何一つ無い。
言語環境すら設定する意味無いんじゃない?
そこで .emacs の (set-language-environment "Japanese") も消してみた。
意外な影響として Wanderlust で送ろうとしていた日本語のメールが charset=UTF-8, quoted-printable で送られそうになった。
そこで数ヶ月前ヨーロッパの人にメールを送ったが届かず、少しいじっている間に送ったその次のメールは届いた、という件を思い出した。
その人は名前にアクセントが入っており、メール本文自体は英語なんだけど、名前を書いたことで us-ascii の範囲からは外れた。
メールの文字コードは何になっていたのだろう?
ISO-8859-1 か -15 だよね、違うの?
さて、話が繋がった。
(set-language-environment "Japanese") で日本語に設定してあると、アクセント記号のある文字の混じった英文メールが Wanderlust によって ISO-2022-JP-2 扱いになる。
このせいでスパムフィルターに食われたという想像は多分正しかろう。
こんな文字コードは誰も望んでいない。
つぎに (set-language-environment nil) として言語環境をデフォルトにする。
つまり英語。
そうすると今度は UTF-8 だ。
もしかしたら (prefer-coding-system 'utf-8) の影響かもしれない。
できればここで ISO-8859-1 とかに収まっていればいい訳なのだが。
そのために必要なことは、たとえばこの 2005年のメール に書かれているが、(setq default-mime-charset-for-write 'iso-8859-1) だ。
さて、だいたい必要な道具は揃っているような気はするが、デフォルトを ISO-2022-JP にして、そこにアクセント付きアルファベットが入ってきたら UTF-8、もし日本語無しでアクセント付きアルファベットが混じる英文は ISO-8859-15、さらにアクセント無しなら US-ASCII みたいな取り合わせを自動的に実現する方法はあるんだろうか。
Thunderbird なら簡単だよとかでもいいので、誰か教えて。
|