* Menu
- memo :
- xyzzy lisp : ミニバッファの入力にエスケープシーケンス
- xyzzy : 変数の種類
- xyzzy lisp : clone-buffer
- Scrapbook : Oniguruma
- xyzzy topic : バッファバーの並び順を変える
- xyzzy topic : outline-tree2, treeview, diff-detail 更新
- xyzzy lisp : ディレクトリ付きにしてユニークなバッファ名に
- xyzzy topic : bufbar2, popup-key, www-search更新
- xyzzy topic : はてダラを使いやすく
- xyzzy lisp : outline-treeの表示順にnext-bufferとか
page 0 - << : 0 : >>
* memo :
- Buffer::goto_char (Point &point, point_t goal) const
- point 現在位置
- goal 目標位置
- b_contents.p1 (point-min)相当
- b_contents.p2 (point-max)相当
- b_nchars バッファのサイズ
* 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")
* xyzzy : 変数の種類
* xyzzy lisp : clone-buffer
とりあえずこんなところか。
主だったところはsession.lから。
outline-tree2をバッファバーの代わりにしつつ、rename-bufferを良く使う人向け。
もしくは*compilation*バッファとかでうっかりそのまま編集して、undoができず残念な思いをする人向け。
メモ:
undo情報をそっくり写せるとうれしいかも。
(ReadMore...)
主だったところは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 : Oniguruma
http://www.geocities.jp/kosako3/oniguruma/index.html
その2。
対象が文字列ならなんとかなるでしょ。
気がかりは文字コード。
バッファを対象にするのは内部コードとの絡みがあるから厳しいだろうな。
その2。
対象が文字列ならなんとかなるでしょ。
気がかりは文字コード。
バッファを対象にするのは内部コードとの絡みがあるから厳しいだろうな。
* xyzzy topic : バッファバーの並び順を変える
* xyzzy topic : outline-tree2, treeview, diff-detail 更新
* xyzzy lisp : ディレクトリ付きにしてユニークなバッファ名に
機能的にはしょぼしょぼすくりぷとさんと同等。
ひとつ上のディレクトリでやめてしまうみたいだから自分で書いてみた。
ひとつ上のディレクトリでやめてしまうみたいだから自分で書いてみた。
(defun buffer-name-with-directory () (let* ((buffer (selected-buffer)) (name (buffer-name buffer)) dirs) (when (string-match "<[0-9]+>" name) (setq dirs (reverse (pathname-directory (get-buffer-file-name buffer)))) (setq name (format nil "~A/~A" (pop dirs) (file-namestring (get-buffer-file-name buffer)))) (while (and dirs (dolist (x (buffer-list)) (if (string= (buffer-name x) name) (return t)))) (setq name (format nil "~A/~A" (pop dirs) name))) (rename-buffer (abbreviate-display-string name 40) buffer)))) (add-hook '*find-file-hooks* 'buffer-name-with-directory)
* xyzzy topic : bufbar2, popup-key, www-search更新
* xyzzy topic : はてダラを使いやすく
http://d.hatena.ne.jp/takef/20060320/1142829588
find-fileでバッファを作っても保存するまではファイルができないから、こんな感じでもよさそう。
find-fileでバッファを作っても保存するまではファイルができないから、こんな感じでもよさそう。
(defvar *hatedara-directory* "~/hatena") (defun hatedara () (interactive) (find-file (merge-pathnames *hatedara-directory* (format-date-string "%Y-%m-%d.txt"))))
* xyzzy lisp : outline-treeの表示順にnext-bufferとか
(in-package "outline-tree2") (global-set-key #\C-PageUp #'(lambda () (interactive) (outline-tree-previous-buffer) (outline-tree-select-node-by-buffer (selected-buffer)))) (global-set-key #\C-PageDown #'(lambda () (interactive) (outline-tree-next-buffer) (outline-tree-select-node-by-buffer (selected-buffer))))
outline-treeをバッファバーの代わりにしているから、その見た目どおりに移動したい、
ということで、マウスに触る機会を減らすために。
outline-treeは規模が大きいからなかなか読めない(^^;
page 0 - << : 0 : >>