Source of Nothingness - Buffer

* Menu

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

* 2008-03-09 :

(ReadMore...)

* Common Lisp : 文字列中のエスケープシーケンスを解釈する

とりあえずできた。REPL では動作確認できた。
要 cl-interpol。
SANO さんの情報がなかったらどうにか interpol-reader を使えないか、悩んでいたかも。サンクスです。
(ReadMore...)

* 2007-12-20 :

* memo :

現在位置と前と後ろと目標位置との関係を調べて、近いほうから進む?

* memo :

なんか最近Lisp書いてないので書き捨ててみた
C++用
(defun foo ()
  (interactive)
  (let ((l nil))
    (save-excursion
      (goto-char (point-min))
      (while (scan-buffer "\\bstd::\\(\\sw\\|\\s_\\)+" :regexp t :no-dup t)
        (pushnew (match-string 0) l :test #'string=)))
    (dolist (x l)
      (insert (format nil "using ~a;~%" x)))))

(defun bar ()
  (interactive)
  (perform-replace "\\bstd::\\(\\(\\sw\\|\\s_\\)+\\)" "\\1" nil t nil nil))

* editorパッケージのbuiltin関数

以下で調べて652個
(let ((count 0))
  (do-symbols (sym (find-package "editor") (format t "~%count: ~d~%" count))
    (when (and (not (find-symbol (symbol-name sym) "lisp"))
               (fboundp sym)
               (si:*builtin-function-p (symbol-function sym)))
      (format t "~a~%" sym)
      (incf count))))
(ReadMore...)

* 適当すぎる

(ReadMore...)

* 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...)

* 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 : Buffer selection

http://www.geekware.de/software/emacs/#bs
移植をしてみました。
http://raido.sakura.ne.jp/southly/xyzzy/site-lisp/bs-20060920.lzh
元の動作は知らないのですが、八割程度は動いているような気がします。

どんなものかは
http://www.bookshelf.jp/soft/meadow_28.html#SEC352

気が向いたときにでもNetInstaller用のパッケージにします。

* xyzzy lisp : へなちょこ補完その3

絞込み
(ReadMore...)

* xyzzy lisp : へなちょこ補完その2

候補の絞込みしていなかったのを修正。
(ReadMore...)

* xyzzy lisp : へなちょこ補完

C/C++とかJavaとかのメンバをdabbrevライクに補完
てきとー
(ReadMore...)

* xyzzy lisp : なんとなく

(defun sort-by-column-region (beg end &optional (f #'<))
  (interactive "*r")
  (let ((lines (split-string (buffer-substring beg end) #\LFD t))
        (pred #'(lambda (x y) (funcall f (length x) (length y)))))
    (setq lines (sort lines pred))
    (goto-char (min beg end))
    (delete-region beg end)
    (insert (format nil "~{~A~%~}" lines))))