Source of Nothingness

* Menu

About | Profile | まとめ | オリジナル | xyzzy | あんてな | | buzz

* Scrapbook : ゑBLOG: Subversion

http://yebisuya.dip.jp/yeblog/archives/a000496.html

* 適当すぎる

(ReadMore...)

* Scrapbook : Proxomitronproxy の使用/非使用を自動切換え

http://s2works.homeunix.net/note/proxomitron.html

* Scrapbook : log::dual : シューティングゲームの歴史 (Histoire Du Shooting Game)

http://harmless.exblog.jp/4429439/

* Scrapbook : 交差点の真中で

http://sagittarius.dip.jp/~toshi/

星野君のWebアプリほのぼの改造計画のイラスト

* xyzzy lisp : clone-buffer

とりあえずこんなところか。
主だったところはsession.lから。
outline-tree2をバッファバーの代わりにしつつ、rename-bufferを良く使う人向け。
もしくは*compilation*バッファとかでうっかりそのまま編集して、undoができず残念な思いをする人向け。
(defun clone-buffer (buffer-name &optional (buffer (selected-buffer)))
  (interactive "sClone Buffer: ")
  (let ((major buffer-mode)
        (minor (mapcan #'(lambda (mode)
                           (let ((var (and (consp mode) (car mode))))
                             (and (symbolp var)
                                  (boundp var)
                                  (symbol-value var)
                                  (list var))))
                       *minor-mode-alist*))
        (locals (mapcar #'(lambda (var)
                            (and (symbolp var)
                                 (local-variable-p var)
                                 (cons var (symbol-value var))))
                        *buffer-info-variable-list*))
        (point (point)))
    (set-buffer (create-new-buffer buffer-name))
    (insert-buffer buffer)
    (funcall major)
    (mapc #'(lambda (f) (and (fboundp f) (funcall f))) minor)
    (mapc #'(lambda (x)
              (when (and (car x) (symbolp (car x)))
                (make-local-variable (car x))
                (set (car x) (cdr x))))
          locals)
    (goto-char point)))

メモ:
undo情報をそっくり写せるとうれしいかも。
(ReadMore...)

* Scrapbook : Going My Way: Firefox 2.0から対応するサイトごとの検索エンジンのAuto Discovery

http://kengo.preston-net.com/archives/002873.shtml

* Scrapbook : ASIMO | ASIMOギャラリー

http://www.honda.co.jp/ASIMO/gallery/

* Scrapbook : coLinux - Bobchin's Wiki

http://bobchin.ddo.jp/wiki/index.php?coLinux

* Scrapbook : rein 2.0 RC 3 (Weblog)

http://northwood.sakura.ne.jp/blog/2006/10/rein_20_rc_3.html

Firefoxのtheme「rein」の在り処。

* xyzzy lisp : insert-include

てきとー
(defun insert-include (file &optional cwd)
  (interactive "lHeader: " :default0 (merge-pathnames "*.h"))
  (unless cwd
    (if (get-buffer-file-name)
        (setq cwd (directory-namestring (get-buffer-file-name)))
      (return-from insert-include nil)))
  (if (consp file)
      (dolist (f file)
        (insert-include f cwd))
    (insert (format nil "~%#include \"~A\"" (substitute-string file (regexp-quote cwd) "" :case-fold t)))))

* xyzzy : モバイルxyzzyの件

ヒストリ変数でパスを指定する場合でのみ問題ということであれば.xyzzy.historyの出力をどうにかすればいいのでは?と思い、書いてみる。
未テストなので注意。
帰ってからテストします。
(ReadMore...)

* xyzzy lisp : 候補の絞込みをするpopup-list

http://xyzzy.s53.xrea.com/wiki/index.php?%BC%C1%CC%E4%C8%A2%2F173
上のページにいくつかありますが元のpopup-listと引数が異なっていて置き換えにくいので書き直し。正規表現を使っていなかった佐野さんのがベース。

(defun popup-list-loop (list callback &optional point with-insert)
  (let ((str "") (matched list) matched1 selected input)
    (loop
      (if with-insert (insert str))
      (popup-list matched (lambda (x) (setq selected x)) point) ; #\ESC
      (refresh-screen)
      (while (not (or selected (setq input (read-char-no-hang *keyboard*))))
        (do-events))
      (if with-insert (delete-region (- (point) (length str)) (point)))
      (cond (selected
             (funcall callback selected)
             (if (eql input #\SPC) (unread-char input))
             (return t))
;           ((eql input #\ESC) (return nil))
            ((eql input #\C-h) (unless (zerop (length str)) (setq str (substring str 0 -1))))
            ((graphic-char-p input) (setq str (format nil "~A~C" str input)))
            (t (unread-char input) (return nil)))
      (setq matched1 (remove-if (lambda (x)
                                  (or (< (length x) (length str))
                                      (string/= x str :end1 (length str))))
                                list))
      (if (endp matched1) (if with-insert
                              (progn (funcall callback str) (return t))
                            (setq str (substring str 0 -1)))
        (setq matched matched1)))))
できるだけ元のpopup-listと同じ操作感になるようにしたつもりですが、ウィンドウをESCで閉じたときの動作だけは感知する手段が無くて無理でした。


ちなみに実際に使うときはこれみたいに引数にbase(すでに一致している部分)をとらないといけないような気がしてる。

* Scrapbook : 強力な拡張機能を備えたテキスト・エディタ:ITpro

http://itpro.nikkeibp.co.jp/article/COLUMN/20061013/250646/

* 2006-10-18