作者: 機械伯爵
日時: 2006/8/8(17:11)
 なかなか難しいんですなぁ、の機械です。

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

 えっと、日本語対応してなかった時代は、PyJUGのパッケージ
はそんな感じの対応してたような気がするんですが(笑)

 ちなみに私は、Lib/site.pyを書き換えた前科がありますが、その場合、
スクリプトの可搬性が低くなるので止めました(持ってった先で動かない、
あるいは、持ってった先で再設定する必要がある)

 んでも、エディタでは問題無いかしらんと思うのですが……

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

 そーですね。

> .lを直接書き換える場合、
> 
>   1. バイトコンパイルしなければならない
>   2. バージョンアップがあったときに再度同じ書き換えをしなければならない
> 
> といった問題があります。

 実質上の手間はたいした事はありませんが、そういうのを
何度も行うのは、確かに綺麗な方法ではありませんね。

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

 とりあえず.xyzzyで設定してみて、動けばsiteinite.lに落としてみます。

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

 ああ、基本を知らんとそーいう間違いをする(汗)

※Pythonでは代入も設定も=だけですので……
 
> だから説得^H^H setq すると書いたんですが。

 setq……? あ、setfと同じでしたっけ(Lispの教科書にはsetf
が書いてあります)

> >  あと、M-xコマンドも、確か失敗しましたけど。
> 
> ミニバッファでどんなコマンドを入力しました?
> set-variable コマンドを使えば問題なく設定できるはずですが。

 defvar式をつっこみました……動くわけないですね、ハイ。

 ご教授ありがとうございました(これからもよろしく☆)

※巧く動いたら修正版をMLにアップしときます。

 /機械伯爵/