* Menu
[[About:self:AboutPage.txt]] | [[Profile:file/southly/]] | [[まとめ:self:1163859357.txt]] | [[オリジナル:http://ninjinix.x0.com/rn/]] | [[xyzzy:lisp/]] | [[あんてな:listall]] | [[■:lisp]] | [[buzz:files/southly#buzz]]
- 2008-03-09 :
- xyzzy lisp :
- xyzzy lisp : ミニバッファの入力にエスケープシーケンス
- memo :
- Scrapbook : Webデザインとグラフィックの総合情報サイト - MdN Interactive - Webデザイン超基本のお作法50選
- editorパッケージのbuiltin関数
- 適当すぎる
- xyzzy lisp : clone-buffer
- xyzzy lisp : insert-include
- xyzzy lisp : へなちょこ補完その3
- xyzzy lisp : へなちょこ補完その2
- xyzzy lisp : へなちょこ補完
- xyzzy lisp : なんとなく
- xyzzy lisp : 位置とサイズの操作
* 2008-03-09 :
- elisp を書く気はさらさらないので (requre 'cl) には拘らないです。
- 具体例として、現在の .emacs はこんな感じです。
- session.el
- tails-history.el
- キーバインドを覚えていないのですが、M-x の履歴で何とかしています。
* xyzzy lisp :
こんなのを用意してみた。
cronがちゃんと働けば、一日3回更新チェックをするはず。
cronがちゃんと働けば、一日3回更新チェックをするはず。
(defun ni::add-site-from-raido () (interactive) (ni::load-site-data) (mapcar (lambda (x) (ignore-errors (ni::site-add x))) (set-difference (let ((stream (ni::http-get-url "http://raido.sakura.ne.jp/southly/lisp/ni/ni-status.txt"))) (do* ((line (read-line stream nil nil) (read-line stream nil nil)) (r nil)) ((not line) (nreverse r)) (unless (string-matchp "^\\(4[0-9][0-9]\\|NIL\\)" line) (push (second (split-string line " ")) r)))) (mapcar (lambda (x) (cdr (assoc "src" x :test #'equal))) ni::*site-data*) :test #'string=))) (define-key ni::*site-map* #\N 'ni::add-site-from-raido)
- 2008-02-06 : タイムアウトしているときは除外しましょうということで修正
* xyzzy lisp : ミニバッファの入力にエスケープシーケンス
interactive指定子を作っちゃえば楽に置き換えられるんじゃね?
ってことで、こんな。
ってことで、こんな。
(in-package "editor") (defun interactive-read-string-with-escape-sequence (prompt default history title) (list (decode-escape-sequence (read-string prompt :default default :history history) nil))) (pushnew '(#\w . interactive-read-string-with-escape-sequence) *interactive-specifier-alist* :test #'equal) (defun interactive-read-regexp-with-escape-sequence (prompt default history title) (list (decode-escape-sequence (read-string prompt :default default :history history) t))) (pushnew '(#\W . interactive-read-regexp-with-escape-sequence) *interactive-specifier-alist* :test #'equal) ;; こんな感じで使う ;; 文字列 (defun search-forward-wes (pattern &optional noerror) (interactive "wSearch forward: " :default0 *last-search-string* :history0 'search) (search-command pattern nil nil (interactive-p) noerror)) ;; 正規表現 (defun re-search-forward-wes (regexp &optional noerror) (interactive "WRe-search forward: " :default0 *last-search-regexp* :history0 'search) (search-command regexp nil t (interactive-p) noerror)) (export '(search-forward-wes re-search-forward-wes)) (in-package "user")
* memo :
なんか最近Lisp書いてないので書き捨ててみた
C++用
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))
* Scrapbook : Webデザインとグラフィックの総合情報サイト - MdN Interactive - Webデザイン超基本のお作法50選
view/1619/104/
* 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...) index.rb?1164371462.txt]]
* 適当すぎる
[[(ReadMore...) index.rb?1162458380.txt]]
* xyzzy lisp : clone-buffer
とりあえずこんなところか。
主だったところはsession.lから。
outline-tree2をバッファバーの代わりにしつつ、rename-bufferを良く使う人向け。
もしくは*compilation*バッファとかでうっかりそのまま編集して、undoができず残念な思いをする人向け。
メモ:
undo情報をそっくり写せるとうれしいかも。
[[(ReadMore...) index.rb?1161833288.txt]]
主だったところは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...) index.rb?1161833288.txt]]
* 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 lisp : へなちょこ補完その3
* xyzzy lisp : へなちょこ補完その2
* xyzzy lisp : へなちょこ補完
* 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))))
* xyzzy lisp : 位置とサイズの操作
*
(defun delete-blank-lines-region (start end) (interactive "*r") (save-restriction (narrow-to-region start end) (save-excursion (goto-char (point-min)) (while (and (scan-buffer "^$" :no-dup t :regexp t) (not (eobp))) (delete-blank-lines)))))