それは突然起こった。。。

HDが吹っ飛んだとか,モニタがいったとか,
そんな感じのことではありませんが。
ただ,Emacs Lisp Intro 用のファイルが文字化けを起こして,
日本語の部分を読めなくなっただけです。
universal-coding-system-argument,つまり,
C-X RET c utf8-unix C-x C-f elisp-intro.el しても,
だめぽ。
nkf --guess しても,BINARY といわれるしまつ(涙)


結局,日本語で書かれている部分は,日記用のテキストファイルから,
ほとんど復旧できたのでいいんですよ。
問題は「そのとき何が起こったのか?」ということです。


モードラインの1番左には,「-1」という見慣れぬ物が表示されている。
んで,日本語の部分は,こんなんになってる。

;; 楷▽¬楷▽・楷▽・楷▽≫楷▽▽楷▽▽楷▽♭楷▽∈楷▽√楷▽∀?
;; widen 楷▽・楷▽・楷▽▽楷▽・楷▽¬楷▽・楷■▽(buffer-substring-no-properties 1 60)


原因をつかめぬままにしておくのは,いささか気持ちが悪いが,
とりあえず,予防策として,magic comment なるものを知りました。

-*- coding: utf-8-unix; -*-

をファイルの先頭に書いておけば,暴君Emacs 様が,
それを,そのファイルのコーディングに適用してくれなさるそうな。
(Emacs の Info の Recognize Coding を参照。
あー,英語の Info を整備する必要があるなぁ。)


で,さっそく,elisp-intro.el ファイルの先頭に以下の用に prepend。

;; -*- coding: utf-8-unix; -*-

そういえば,prepend って辞書引いても載ってなかったな。
いわゆるあっち方面の jargon か?
いや,Emacs Lisp Intro 読んでて,でてきてたので。
意味は,append の counterpart で,
「先頭に追加する」っちゅうような意味だと理解しています。

ちょっこす逸れましたが,
これで,C-x RET f sjis-dos とかして,自動保存されるのを待ってみると,
きちんと utf-8-unix で保存されるのを確認できます。きゃっきゃっ。


先頭のコメントアウトは,そのファイルの種類に合わせて,
コメントアウト用のものを使用すればいいんだと思います。
シェルスクリプトなら,
# -*- coding: utf-8-unix; -*-
とか。
テキストファイルなら,そのまま先頭に prepend。

まとめ

バックアップは大事。
今回は,件のファイルを開いてから,一度もセッションを終了していなかったので,

;; バージョニングをするかどうか
(setq version-control t)
;; バージョニングする数は,3つ
(setq kept-new-versions 3)

しておいても,だめだったのかな?
というか,本質はバックアップじゃない気がする。(オイ

あー,また,いらんこと思い出した。
「オイ」って日本語であるじゃないですか。
これ,ほとんど同じ意味(注意を引いたり,つっこんだりする際に使用)で,
英語(たぶんイギリス英語だけ,んで特に女性が使う?)にあるんすよ。
スペルもそのまんまで,「oi」。
生で聞いたことはないけど,イギリス英語を喋る女性が言っているのを,
映像で聞きました。(oi

あー,なんだっけ,そうそう,今日は暑いね〜。(oi