ファイルローカル変数が便利

Emacs だとあるファイルに対して局所的に変数の値を設定することができる.
それがかなり便利.
ファイルローカル変数の設定は, ファイルの先頭1行と末尾でまとめての2つの形式で行える.



ファイル先頭に自分がよくやるのが文字コードの設定.

# -*- Coding: iso-2022-7bit -*-

ファイルの先頭にこんな風に書いてあげれば,
ここに書いてあげたことがすぐに適用されて, 文字コードが JIS になる.
必要なのは, -*- -*- で括ってあげること.
Coding は, 文字コードの指定.
1行目で Coding: iso-2022-7bit の行が -*- でちゃんと括られていれば,
それが C言語のような /* */ の形式でコメントアウトされてても問題なく動作してくれる.


モードも定義してあげるなら, こんな感じ.

# -*- Coding: iso-2022-7bit; mode: text; mode: auto-fill -*-

ちょっと見づらい.


ファイル末尾でも, 同様に設定ができる.
こっちの方が綺麗でいいかも.

Local Variables:
skk-kutouten-type: jp
fill-column: 120
End:

Local Variables: と End: の間に設定したい変数とその値を : で区切って書いてあげる.
skk-kutouten-type なんかがよくやる.
skk-kutouten-type は, 句読点にどのような形式を使うかを設定するための変数.
いつも「. /, 」のタイプを使ってるけど, 「。/、」のタイプをこのファイルでは使いたいなんて時に書いたりする.
ここでは, jp にして「。/、」のタイプにしてる.
同様に, fill-column の値を 120 にして, 120文字まで来たら改行するようにしている.
ちなみにこの値を設定しても, auto-fill-mode がオンじゃないと自動改行はされない.
折り返しする文字数をこのファイルでは変えたいな, なんて時によく設定してあげる.


これにモードの定義も書くならこんな感じ.

Local Variables:
mode: text
mode: auto-fill
skk-kutouten-type: jp
fill-column: 120
End:

text-mode でかつ, auto-fill-mode に設定.
末尾にまとめちゃった方が綺麗だけど, 文字コードの設定は行頭で書くようにしてる.
とくにたいした理由はないんだけどね.



超参考になるところ.

更新時刻

2007年, 11月17日, 2:38