作者: Bruce.
日時: 2006/8/8(11:07)
Bruce.です。

機械伯爵 writes:

>  多分、初心者MLのネタの話でしょうけど……
 
うい、むしゅー。

> > インデントのオフセットを変更するのに、.lファイルを直接書き換えては
> > ダメですって(^^;
> 
>  うにゃ? 何ででしょう?

たとえば Pythonでデフォルトエンコーディングなどを設定するのに
sitecustom.py を用意してそこで設定するのではなく、Lib/site.pyを
直接書き換えるようなものだから。

というたとえでわかっていただけますでしょうか?

>  直接書き換えて、コンパイルすれば、巧く動きますけど。
> 
>  初期設定ファイルとかで設定するのが普通なんでしょうか?

とりあえず動くのと、それが推奨されるやり方かどうかは別です。

.lを直接書き換える場合、

  1. バイトコンパイルしなければならない
  2. バージョンアップがあったときに再度同じ書き換えをしなければならない

といった問題があります。

まあ、ほとんど変えない設定であるなら、$XYZZY/site-lisp/siteinite.l 
で設定して、本体を再ダンプしておくというのが筋かと。

>  しかし、.xyzzyファイルに(defvar *py-indent-offset* 4)とか書いても、
> 通らなかった気がするんですが。

defvarは変数の実体を用意して初期値を設定するものですから、
py-mode.l で defvar しておいて同じ名前の変数をさらに .xyzzy で defvar 
しても期待通りには動きません。

だから説得^H^H setq すると書いたんですが。

>  あと、M-xコマンドも、確か失敗しましたけど。

ミニバッファでどんなコマンドを入力しました?
set-variable コマンドを使えば問題なく設定できるはずですが。


ねこにゃんダンス♪