Archive

xyzzyをちょこちょこ改造

テキストエディタxyzzyをUSBメモリーで使用できるよう少しずつ改造しています。

xyzzyとはフリー/シェアで公開されているエディタの中でもトップクラスの高性能なエディタです。詳しくはXyzzy Wikiの中にあるintroを見てみましょう。

機能

xyzzyに以下の機能を追加して再ビルドするものです。

  • Homeディレクトリの自動設定。以下の順に検索
    • $xyzzy/home
    • $DRIVE/xyzzyhome
    • $DRIVE/home
    • $xyzzy
  • xyzzy.iniを$XYZZY/usrに保存(ユーザ名やOS名でフォルダ分けしない)
  • ダンプファイルxyzzy.imageとしてシステムのTempフォルダへ保存/読込
  • unlha32.dllなど各種アーカイバDLLがシステムフォルダや$XYZZY内に存在しない場合は$XYZZY/libも検索
  • putenv関数の追加(詳しくは「パッチ更新の履歴」参照)

ダウンロード

xyzzy-0.2.235-2009092301.patch を適用した xyzzy.exe、xyzzyenv.exe、xyzzycli.exe です。ダウンロード解凍後、本体のものと置き換えてください。

その他、個人的な設定など

以下はおまけですが私は.xyzzyの位置をusrディクレトリ直下に固定しています。USBメモリーなどから直接使用する際にHOMEディレクトリやXYZZYHOMEの設定と関係無く.xyzzyファイルを読み込むためです。なお、estartup.lcが存在する場合(というか普通は存在するはず)はestartup.lを編集後バイトコンパイルしなければいけません。

--- xyzzy/lisp/estartup.l   2003-06-29 01:07:14.000000000 +0900
+++ xyzzy-merged/lisp/estartup.l   2006-04-08 11:17:10.000000000 +0900
@@ -147,11 +147,12 @@
       (ignore-errors (load-history-file-compat)))
     (unless no-init-file
       (trap-errors
        (let ((*loading-user-initial-file* t))
          (load (namestring (if (file-system-supports-long-file-name-p "~/")
-                               "~/.xyzzy" "~/_xyzzy"))
+             (merge-pathnames "usr/.xyzzy" (si:system-root))
+             (merge-pathnames "usr/_xyzzy" (si:system-root))))
                :if-does-not-exist nil :verbose nil :print nil)))
       (unless *inhibit-history-load*
        (ignore-errors (load-history-file))))
     (ignore-errors (keep-compatibility))
     (ignore-errors (init-app-menus))

Special Thanks

  • Xyzzy Wikiの佐野さん
  • Xyzzy Wikiのみなさん
  • そしてエディタxyzzyを提供してくださっている亀井さん

更新の履歴

2009/09/23

xyzzy-0.2.235-2009092301.patch.txt

2008/09/21

xyzzy-0.2.235-2008092101.patch.txt

  • putenv関数を追加
    
    ;; .xyzzyとかで(si:putenv VARIABLE) を使用してみる
    ;; $xyzzy/binを環境変数PATHに追加(有効なのはxyzzy.exeからのプロセスだけです)
    (in-package "editor")
    (setq *bin-path* (merge-pathnames "bin" (si:system-root)))
    (in-package "user")
    (setq *bin-path* (merge-pathnames "bin" (si:system-root)))
    (si:putenv  (concat "PATH=" (map-slash-to-backslash *bin-path*) ";" (si:getenv "PATH")));
    

2008/09/15

xyzzy-0.2.235-2008091502.patch.txt

  • USBメモリーで使用できるようパッチを追加
    • Homeディレクトリの自動設定。以下の順に検索
      • $xyzzy/home
      • $DRIVE/xyzzyhome
      • $DRIVE/home
      • $xyzzy
    • xyzzy.iniを$XYZZY/usrに保存(ユーザ名やOS名でフォルダ分けしない)
    • ダンプファイルxyzzy.imageとしてシステムのTempフォルダへ保存/読込
    • unlha32.dllなど各種アーカイバDLLがシステムフォルダや$XYZZY内に存在しない場合は$XYZZY/libも検索

2008/09/15

xyzzy-0.2.235-2008091501.patch.txt

  • VC9用のpatchを作成