emacs の文字コード

[戻る]

私は Linux では emacs 20.7, Windows では mulewin を使っています. 本当は統一したいんですけど, Linux で mule をコンパイルするのは 面倒くさいし, Meadow は遅いし, でほっといてます.

まぁ普段はほとんど操作性が一緒なので気にならないのですが, 文字コードや改行コードの切り替えの命令が違うのが困ります. 文字コードや改行コードの切り替えは Windows の方が機会が多いので, 手が

M-x set-file-coding-system
と覚えているのですが, Linux (emacs 20.7) ではこのコマンドがありません.

まぁ不便と思いつつも nkf やら C-m を消す perl スクリプトやらを使って ごまかしていたんですが, 先日 emacs では

M-x set-buffer-file-coding-system
もしくは
C-c RET f
で出来ることが分かりました.

とは言え, 上述のように手が覚えてますから切り替えて使うのはめんどうです. そういうわけで以下のようなフレーズを .emacs に書いて emacs でも set-file-coding-system で出来るようにしちゃいました.

(defun set-file-coding-system ()
  "aliased to set-buffer-file-coding-system"
  (interactive)
  (call-interactively 'set-buffer-file-coding-system)
)

話は変わりますが, emacs では改行コードが自動認識され, 行末に ^M が付いているのに気づかず, スクリプトとかが動かないで悩む時が時々あります.

モード行の中で, 文字コードを表す文字の次の文字(もしくは文字列)が その情報だということに最近気づきました.

LFCR+LF
emacs 20.7:(DOS)
mule.:

Nemacs から数えて, 干支が一回り以上使っていたのに... 奥が深いエディタです.


2005.10