~/.netinst/config.l
$xyzzy/site-init 以下とか $xyzzy/lisp 以下とかがぐちゃぐちゃになってきたんできれーにしようと xyzzy ダウンロードして設定し直そうとしてたのだけど、とりあえず NetInstaller 入れて XyzzyWiki の http://xyzzy.s53.xrea.com/wiki/index.php?tips%2F%A5%CD%A5%C3%A5%C8%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%E9%A4%CEsite%A4%F2%CC%B5%CD%FD%A4%E4%A4%EA%BA%C7%BF%B7%A4%CB をやろうとしたら上手くいかなかった。
やったこと
まず NetInstaller をインストール。ni フォルダをそのまま $xyzzy/site-lisp/ に置いて、siteinit.l で require とかする。んで ~/.netinst\config.l を作って件の lisp コードをコピペ。でダンプファイル消して再起動とか。
で、どうなった
NetInstaller 開いて *NetInstaller site* バッファで N 押すと「書き込み禁止バッファです」と怒られる。
なにが起きたか
describe-key-briefly で N を確認したら self-insert-command になってる。つまりたぶん ~/.netinst/config.l が読まれてない。
そもそもどこで ~/.netinst/config.l を読んでるのかわからんかったから $xyzzy/site-init/ni/setup.l の user::netinstaller から追ってみたら $xyzzy/site-init/ni/defs.l#47-48 で
(defvar *base-directory* (merge-pathnames ".netinst" (si:system-root)))
とゆーのを見つけた。(si:system-root)?
つまり ~/.netinst/config.l とゆーのは $xyzzy/.netinst/config.l とゆーことであって、%HOME%/.netinst/config.l*1 とか作っても無駄?後から ni::*base-directory* を書き換えてなかったりしたらそーだよね。
;;; *scratch* とかで ni::*base-directory* => "M:/bin/xyzzy-0.2.2.235/.netinst"
そうみたい。
どうしよう
- 初期化ファイルで ni::*base-direcotry* を (user-homedir-pathname) 使って書き換える。
- 大人しく $xyzzy/.netinst/config.l を使う
- $xyzzy/site-lisp/ni/defs.l を書き換えてしまう
- NetInstaller の .netinst/config.l じゃなくて初期化ファイルでやる
変な影響が少ないのは 2. か 4. だろーか。2. でいーや。
さっき作った %HOME%\.netinst\config.l を $XYZZY/.netinst/ にコピーしてダンプファイル消して xyzzy 再起動したらちゃんと動いた。めでたしめでたし。