* Menu
[[About:self:AboutPage.txt]] | [[Profile:file/southly/]] | [[まとめ:self:1163859357.txt]] | [[オリジナル:http://ninjinix.x0.com/rn/]] | [[xyzzy:lisp/]] | [[あんてな:listall]] | [[■:lisp]] | [[buzz:files/southly#buzz]]
- 2006-09-20
- xyzzy lisp : walk-windowsの代わりに
- xyzzy lisp : へなちょこ補完その3
- xyzzy lisp : へなちょこ補完その2
- xyzzy lisp : へなちょこ補完
- xyzzy lisp : なんとなく
- memo : コマンドプロンプト周りの環境改善
- xyzzy lisp : shell-modeで色付け
- xyzzy lisp : 位置とサイズの操作
- xyzzy lisp : format ~*
- xyzzy lisp : format ~T
- xyzzy lisp : format ~\n(改行)
- xyzzy lisp : format ~|
- xyzzy lisp : format ~~
- xyzzy lisp : format ~%
* 2006-09-20
で、移植の手順。
1. [[Emacs lisp 移植キット:http://osuneko.at.infoseek.co.jp/xyzzy/xyzzy.html]]を使えるようにする。
2. 使えないもの(defgroup, font-lock関係, フレーム関係, etc)をコメントアウト
3. 文字の表現を書き直し(?a → #\a) 特に#\SPCとか
4. キーバインドの記述を書き直し(文字列 → 文字 or cons)
5. formatの引数を直す
6. 無い関数を記述 & 無い変数を代替の関数へ
7. 位置の調整(xyzzyは0 origin, emacsは1 origin)
8. functionとsymbol
9. その他こまごまとした修正
1. [[Emacs lisp 移植キット:http://osuneko.at.infoseek.co.jp/xyzzy/xyzzy.html]]を使えるようにする。
2. 使えないもの(defgroup, font-lock関係, フレーム関係, etc)をコメントアウト
3. 文字の表現を書き直し(?a → #\a) 特に#\SPCとか
4. キーバインドの記述を書き直し(文字列 → 文字 or cons)
5. formatの引数を直す
6. 無い関数を記述 & 無い変数を代替の関数へ
7. 位置の調整(xyzzyは0 origin, emacsは1 origin)
8. functionとsymbol
9. その他こまごまとした修正
* xyzzy lisp : walk-windowsの代わりに
(defun enum-windows (fn &optional minibuf) (save-excursion (save-window-excursion (do ((win (selected-window) (next-window win minibuf)) (cnt (count-windows minibuf) (1- cnt))) ((zerop cnt) nil) (set-window win) (let ((res (funcall fn win))) (if res (return res)))))))
* 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))))
* memo : コマンドプロンプト周りの環境改善
* xyzzy lisp : shell-modeで色付け
(in-package "editor") (add-hook '*shell-mode-hook* #'(lambda () (make-local-variable 'regexp-keyword-list) (setq regexp-keyword-list (compile-regexp-keyword-list `((,*shell-prompt-regexp* t (:color 3 0) nil 0 0))))))
* xyzzy lisp : 位置とサイズの操作
* xyzzy lisp : format ~*
- 引数の参照を操作
- "~*" 相対位置正方向(スキップする)
- "~:*" 相対位置負方向(バックする)
- "~@*" 絶対位置(0〜)
- パラメータは最大1つ
- 位置
(format nil "~A ~A ~*~A ~A ~A" 'a 'b 'c 'd 'e 'f) "a b d e f" (format nil "~A ~A ~2*~A ~A" 'a 'b 'c 'd 'e 'f) "a b e f" (format nil "~A ~A ~A ~2:*~A ~A ~A ~A" 'a 'b 'c 'd 'e 'f) "a b c b c d e" (format nil "~A ~A ~4@*~A ~A" 'a 'b 'c 'd 'e 'f) "a b e f"
* xyzzy lisp : format ~T
* xyzzy lisp : format ~\n(改行)
- 改行の無視
- "~\n" 改行自身と続く改行以外の空白(#\TABと#\SPC)の連続を無視
- "~:\n" 改行自身は無視するが改行以外の空白の連続は出力
- "~@\n" 改行自身は出力するが続く改行以外の空白の連続は無視
- パラメータは無し
(format nil "xy~ zzy") "xyzzy" (format nil "xy~: zzy") "xy zzy" (format nil "xy~@ zzy") "xy zzy"
* xyzzy lisp : format ~|
- 改ページ(\f)の出力
- パラメータは最大1つ
- 出力する個数
(format nil "~|") "^L" (format nil "~3|") "^L^L^L"
* xyzzy lisp : format ~~
- "~"の出力
- パラメータは最大1つ
- 出力する個数
(format nil "~~") "~" (format nil "~4~") "~~~~"
* xyzzy lisp : format ~%
- 改行の出力
- パラメータは最大1つ
- 出力する個数。非負の整数。
(format nil "~%") " " (format nil "~3%") " " (format nil "~0%") ""