[Last updated: <2012/04/03 01:17:19 +0900>]
xyzzy は、00README.html によると、
xyzzyはWindows NT 4.0、Windows 2000、Windows XP、Windows 95、Windows 98、Windows Me(たぶん。見たこともないけど)、およびWindows NT 3.51(一部機能に制限あり。最近試してないので動くかどうか不明)で動作する日本語テキストエディタのようなものです。
らしい、亀井さん作の、そして有志の方々によって継続開発されてきている、Common Lisp によって拡張可能な MIT ライセンスのテキストエディタです。
とても便利で、かなりお世話になっています。
ここにおいてあるものはあまり行儀がよくなく力技で書かれていることが多いので、それなりに動作させるためには byte-compile が必須です。多分。(そして、かなしいことにマルチフレーム版には対応できていません :-P)
[ダウンロード]
[outline-tree2]
(2012/04/03)
[インストール]
treeview ライブラリと buf2html が事前に導入されていなければなりません。
[説明] kazu.y さんの TreeView.dll を用いて、バッファリストのツリー表示、バッファ内のアウトライン表示を行います。 出来ること:
[デモ] |
[ChangeLog]
[ダウンロード]
[browserex]
(2005/10/08)
[説明] 山本泰三さんの html+-mode 等で s.oowada さんの browser.dll、 いまいたけをさんの browser.dll 拡張版 を便利に使わせてもらう。 browser.l と同様に browser.dll を使用するためのサンプル Lisp ファイルです。主に HTML ファイルのプレビューアとして browser.dll を利用することを想定しています。 出来ること:
下に設定例として記載している内容(の一部)。
|
|
[ChangeLog]
#\RBtnUp
に設定して下さい。画像の表示に使ったり。(delete '*browser-position* ed::*history-variable-list* :test #'eq) (delete-command-bar 'browser-tool-bar)を評価してから xyzzy を再ダンプ、再起動しておいてください。
[設定例]
(require "browserex") (setq bx:*browser-width* 300) (setq bx:*browser-height* 200) (setq bx:*browser-start-page* "http://www.google.com/search?hl=ja&lr=lang_ja&num=100&q=") (setq bx:*browser-temp-file* (merge-pathnames "tmp/browser-temp.html" (si:system-root)));(setq bx:*browser-syslistview-style* bx:LVS_LIST);(setq bx:*browser-use-refresh* t) (global-set-key #\M-F9 'bx:navigate-current-buffer) (set-function-bar-label #\M-F9 "OpenBrowser") (global-set-key #\M-F10 'bx:navigate-current-buffer-directory) (set-function-bar-label #\M-F10 "OpenDir") (global-set-key #\M-F11 'bx:rotate-browser) (set-function-bar-label #\M-F11 "RotateBrowser") (global-set-key #\M-F12 'bx:close-browser) (set-function-bar-label #\M-F12 "CloseBrowser");(global-set-key #\RBtnUp 'bx:browserex-mouse-menu-popup);(global-set-key #\Apps 'bx:browserex-apps-popup);; ndiary-mode から拝借。 (require "wip/winapi") (defun toggle-navigate-current-buffer () (interactive) (cond ((bx:browser-open-p) (bx:close-browser) (winapi:ShowWindow (get-window-handle) 9)) (t (winapi:ShowWindow (get-window-handle) 3) (bx:navigate-current-buffer :position bx:XPIS_LEFT :size 480)))) (global-set-key #\M-F8 'toggle-navigate-current-buffer) (set-function-bar-label #\M-F8 "ToggleBrowser") (global-set-key #\M-Up 'bx:browserex-scroll-up) (global-set-key #\M-Down 'bx:browserex-scroll-down) (global-set-key #\M-Left 'bx:browserex-scroll-left) (global-set-key #\M-Right 'bx:browserex-scroll-right) (global-set-key #\M-PageUp #'(lambda () (interactive) (bx:browserex-scroll-up :unit :page))) (global-set-key #\M-PageDown #'(lambda () (interactive) (bx:browserex-scroll-down :unit :page))) (global-set-key #\M-Home #'(lambda () (interactive) (bx:browserex-scroll-up :unit :all))) (global-set-key #\M-End #'(lambda () (interactive) (bx:browserex-scroll-down :unit :all))) ;; いまいたけを さん拡張版 (global-set-key #\M-F7 'bx:show-location-browser) (set-function-bar-label #\M-F7 "ShowLocation") (global-set-key #\S-M-Left 'bx:go-back-browser) (global-set-key #\S-M-Right 'bx:go-forward-browser) (global-set-key #\S-M-Home 'bx:go-home-browser) ;; browser.l もどき設定。 (defun navigate (url) (interactive "sURL: ") (bx:navigate url)) (defun refresh-browser () (interactive) (bx:refresh-browser)) (defun close-browser () (interactive) (bx:close-browser)) (defun my-html+-mode-hook () ; ------------------------------------------------------------ ;; browser が開いていたら現在のファイルを表示 (bx:navigate-current-buffer-if-open) ;; 保存と同時に navigate ;; auto-time-stamp.l の save-buffer-with-time-stamp を使っている場合に対応 (define-key ed::*html+-mode-map* '(#\C-x #\C-s) #'(lambda () (interactive) (if (fboundp 'save-buffer-with-time-stamp) (save-buffer-with-time-stamp) (save-buffer)) (bx:navigate-current-buffer-if-open))) ; ------------------------------------------------------------ ; html+-mode で htmllint を使って構文チェック (CGI) (defvar *htmllint-url* "http://localhost/htmllint/htmllint.cgi?V;X=w3m;URL=") (defun htmllint-cgi () (interactive) (let ((file (get-buffer-file-name))) (when file (bx:close-browser) (bx:navigate (concat *htmllint-url* file))))) (define-key ed::*html+-mode-map* '(#\C-c #\C-l) 'htmllint-cgi) (define-key ed::*html+-mode-map* #\M-F7 'htmllint-cgi) (set-function-bar-label #\M-F7 "htmllint") ; ------------------------------------------------------------ ; html+-mode で htmllint を使って構文チェック (defvar *htmllint-file* "C:/httpd/htdocs/htmllint/htmllint") (defun htmllint-exec () (interactive) (let ((file (get-buffer-file-name))) (when file (pipe-command (format nil "perl \"~A\" \"~A\"" (map-slash-to-backslash *htmllint-file*) (map-slash-to-backslash file)))))) (define-key ed::*html+-mode-map* '(#\C-c #\l) 'htmllint-exec)) (add-hook 'ed::*html+-mode-hook* 'my-html+-mode-hook)
[ダウンロード]
[topmost]
(2005/10/08)
[説明]
xyzzy の最前面表示の設定・解除を行います。
|
[ChangeLog]
[ダウンロード]
[explorer]
(2005/10/08)
[説明]
explorer を起動します。
|
[ChangeLog]
[ダウンロード]
[toggle-gates]
(2005/10/08)
[説明]
標準キーバインドと Windows キーバインドを切り替えます。
|
[ChangeLog]
[ダウンロード]
[chini]
(2005/10/08)
[説明]
xyzzy.ini を直接操作し設定を変更します。
・印刷設定の保存/読込(切替) ・ファイラ設定の保存/読込(切替) ・バッファセレクタ設定の保存/読込(切替) ・Misc設定の保存/読込(切替) ・フォント設定の保存/読込(切替) ・色設定の保存/読込(切替) |
|
[Usage]
[ChangeLog]
[使用例]
(require "chini") (setq *chini-directory* (append-trail-slash (merge-pathnames ".chini" (user-config-path)))) (setq *chini-font-directory* (append-trail-slash (merge-pathnames "font" *chini-directory*))) (setq *chini-color-directory* (append-trail-slash (merge-pathnames "color" *chini-directory*))) (setq *chini-print-directory* (append-trail-slash (merge-pathnames "print" *chini-directory*))) (setq *chini-filer-directory* (append-trail-slash (merge-pathnames "filer" *chini-directory*))) (setq *chini-bufselector-directory* (append-trail-slash (merge-pathnames "buffer-selector" *chini-directory*))) (setq *chini-misc-directory* (append-trail-slash (merge-pathnames "misc" *chini-directory*))) (setq *chini-backup-config-file-directory* (append-trail-slash (merge-pathnames "backup" *chini-directory*))) (add-hook '*init-app-menus-hook* #'(lambda () ;; フォント ;(chini-font-insert-menu-items :head-sep t) ;; 色 ;(chini-color-insert-menu-items :head-sep t) ;; 印刷 (chini-print-insert-menu-items :pre-tag 'ed::print-selected-buffer-dialog) ;; ファイラ ;(chini-filer-insert-menu-items :head-sep t) ;; バッファセレクタ ;(chini-bufselector-insert-menu-items :head-sep t) ;; Misc ;(chini-misc-insert-menu-items :head-sep t) ;; *chini-popup-menu* (chini-insert-menu-items :head-sep t)) t)
[ダウンロード]
[buf2html-0.0.0.15]
(2006/01/29)
[説明]
なるべくバッファの表示を再現するような HTML を生成します。
一行反転表示以外の、キーワード・正規表現キーワード・text-attribute に対応しています。
(古いかもしれない)buf2html.l 自身を buf2html した結果。
|
[ChangeLog]
[設定例]
;; http://ohkubo.s53.xrea.com/xyzzy/index.html#buf2html (require "buf2html") (buf2html-set-app-menu) (buf2html-set-app-popup-menu) (setq *buf2html-auto-mode-parameter-string* "Mode: html+") (setq *buf2html-date-format* "%a, %d %b %Y %H:%M:%S %Z") (setq *buf2html-time-stamp-start* "Time-stamp: <") (setq *buf2html-time-stamp-end* ">") (setq *buf2html-css-list* '("xyzzy.css" "konata.css")) (setq *buf2html-region-css-class-list* '("bgcolor" "border")) (setq *buf2html-ignore-paren-highlight* t) (setq *buf2html-anchor-url* t) (setq *buf2html-lower-case* t) (setq *buf2html-internal-css-alist* '(("A.buf2html" . ("text-decoration: none" "background: #ffe0e0")) ("A.buf2html:active" . ("background: #ffaaaa")) ("A.buf2html:hover" . ("background: #ffaaaa")))) ; symbol の衝突を回避できない場合は (require "html+-mode") を行った後に (setq *buf2html-mode-function* 'ed::html+-mode)
[ダウンロード]
[re-builder-20050608]
(2005/06/08)
[説明]
正規表現の作成・確認を行います。
emacs 用の re-builder.el を xyzzy に移植しました。 使用するシンタックスに応じて [lisp-re] [sregex] [rx] を require します。 [使用方法]
M-x re-builder
[キーバインド]
|
[ChangeLog]
[設定例]
(require "re-builder") (setq *reb-re-syntax* 'ed::string) (setq *reb-match-attributes* '((:bold t :foreground 1 :background 2) (:bold t :foreground 1 :background 3) (:bold t :foreground 1 :background 4) (:bold t :foreground 1 :background 5) (:bold t :foreground 1 :background 6) (:bold t :foreground 1 :background 7) (:bold t :foreground 1 :background 8) (:bold t :foreground 1 :background 9) (:bold t :foreground 1 :background 10) (:bold t :foreground 1 :background 11)) (define-key ed::*reb-mode-map* #\F5 'ed::reb-next-match) (define-key ed::*reb-mode-map* #\S-F5 'ed::reb-prev-match) (define-key ed::*reb-subexp-mode-map* #\F5 'ed::reb-next-match) (define-key ed::*reb-subexp-mode-map* #\S-F5 'ed::reb-prev-match)
[ダウンロード]
[popup-mode-memo-0.0.0.3]
(2005/10/08)
[説明]
モード毎のキーバインディングや自分で設定したメモを popup 表示します。
モード毎のキーバインディングをちょっと調べたい貴方に。 (メモの桁揃えをしたい場合は TAB 文字が便利です) |
[ChangeLog]
[設定例]
(require "popup-mode-memo") ; C-F12 で表示 (global-set-key #\C-F12 'popup-mode-memo) (set-function-bar-label #\C-F12 "memo") ; minor mode の binding を表示 (setq *popup-mode-memo-view-minormode-bindings* t) ; local mode の binding を表示 (setq *popup-mode-memo-view-local-bindings* t) ; global な binding を表示 (setq *popup-mode-memo-view-global-bindings* nil) ; t だとメモがある場合 *popup-mode-memo-view-local-bindings* が t でも ; local mode の binding を表示しない (setq *popup-mode-memo-one-side-local* nil) (popup-mode-memo-add-new 'lisp-interaction-mode ; buffer-mode で指定 (ESC ESC buffer-mode) "F1: info-modoki" "F5: 開いているファイルを byte-compile" "F10: load-library 等の上で押すと対象ファイルを開く" "C-c b: siteinit.l をコンパイルし、ダンプファイルを消す" "C-x C-e: 最後のセンテンスを評価 (eval-last-sexp)" ) (popup-mode-memo-add-new 'editor::diff-mode ; buffer-mode で指定 (ESC ESC buffer-mode) "n: diff-forward" "ESC Down: diff-forward" "p: diff-backward" "ESC Up: diff-backward" "m: diff-merge (新を旧にマージ)" "r: diff-merge-reverse (旧を新にマージ)" "u: diff-undo" "q: diff-quit" ) (popup-mode-memo-add-new "Lisp" ; mode-name で指定 (ESC ESC mode-name) "F1: info-modoki" "C-x C-e: 最後のセンテンスを評価 (eval-last-sexp)" )
[ダウンロード]
[clickable-uri]
(2005/10/08)
[説明]
左ダブルクリックによる WEB ブラウザ、メーラー等の起動を可能にします。
URI (Uniform Resource Identifier) 強調表示も行います。 |
[ChangeLog]
[設定例]
(require "clickable-uri") ;; 強調表示は「文字色4(青)」+「アンダーライン」 (setq *clickable-uri-keyword-color* '(:color 4 0 :underline)) ;; オープン時の強調表示は「文字色4(青)」「アンダーライン」「ボールド」 (setq *clickable-uri-open-attribute* '(:foreground 4 :underline t :bold t)) ;; オープン時の強調表示時間は 0.2 秒 (setq *clickable-uri-open-attribute-timeout* 0.2) ;; URI 構成文字と見なす文字を拡張 (setq *clickable-uri-chars* "-a-zA-Z0-9_/~.@?&=;+(),'$!*:#%|0-9A-Za-zぁ-んァ-ヶ亜-熙") ;; http: https: scheme をオープンするコマンドを指定 (push '("^https?:" . "D:/utils/sleipnir/Sleipnir.exe") *clickable-uri-open-command-alist*) ;; Nami2000, kie ;; <file@...> (push "<file@.+>" *clickable-uri-special-regexp-list*) (push (cons "^<file@.+>$" #'(lambda (uri) (string-matchp "<file@\\(.+\\)>$" uri) (ed::clickable-uri-find-file (match-string 1)))) *clickable-uri-open-command-alist*) ;; <node@...> で階層化テキストのタイトルに飛ぶ (push "<node@.+>" *clickable-uri-special-regexp-list*) (push (cons "^<node@.+>$" #'(lambda (uri) (let (goto-point node-str) (string-matchp "<node@\\(.+\\)>$" uri) (setq node-str (regexp-quote (match-string 1))) (save-excursion (goto-char (point-min)) (when (scan-buffer (concat "^\\.+" node-str " *$") :regexp t) (setq goto-point (point)))) (when goto-point (goto-char goto-point))))) *clickable-uri-open-command-alist*) (defvar *my-isbn-url* "http://bookweb.kinokuniya.co.jp/guest/cgi-bin/wshosea.cgi?W-ISBN=") ;; urn:isbn: (push "urn:isbn" *clickable-uri-scheme-list*) (push (cons "^urn:isbn:" #'(lambda (uri) (string-matchp "^urn:isbn:\\(.*\\)" uri) (concat *my-isbn-url* (match-string 1)))) *clickable-uri-modify-uri-alist*) ;; <%=isbn_image "isbn" "comment" %> (push "<%=isbn_image +\"[0-9A-Za-z]+\".+?%>" *clickable-uri-special-regexp-list*) (push (cons "^<%=isbn[_a-zA-Z]+ +\"\\([0-9A-Za-z]+\\)" #'(lambda (uri) (string-matchp "<%=isbn[_a-zA-Z]+ +\"\\([0-9A-Za-z]+\\)" uri) (concat *my-isbn-url* (match-string 1)))) *clickable-uri-modify-uri-alist*) ;; wnet#://host/dir (push "wnet#" *clickable-uri-scheme-list*) (push (cons "^wnet#:" #'(lambda (uri) (string-matchp "^wnet#:\\(.+\\)" uri) (ed::clickable-uri-find-file (match-string 1)))) *clickable-uri-open-command-alist*) ;; 設定変更を反映 (clickable-uri-set-regexp) (global-set-key #\C-l 'clickable-uri-recenter) (global-set-key '(#\C-c #\C-l) 'clickable-uri-emphasis-force) (global-set-key '(#\C-c #\C-o) 'clickable-uri-open)
[ダウンロード]
[pickup-pattern-0.0.0.6]
(2005/10/08)
[説明]
検索文字列/指定したパターンを強調表示します。
選択パターン/全パターンの強調表示の解除、再描画が可能です。 たくさん公開されている文字列色づけ lisp の一つです。 関連 lisp は Yamamoto Shinji さんによる [xyzzy:05281] の colorstring.l, strcolor, Toy さんによる toy-color.l などがあります。 |
[ChangeLog]
[設定例]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; pickup-pattern ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; --- 基本設定 --- (require "pickup-pattern") (global-set-key '(#\C-c #\p #\s) 'pickup-pattern-set-input) (global-set-key '(#\C-c #\p #\C-s) 'pickup-pattern-set-input-detail) (global-set-key '(#\C-c #\p #\r) 'pickup-pattern-refresh-select) (global-set-key '(#\C-c #\p #\C-r) 'pickup-pattern-refresh-all) (global-set-key '(#\C-c #\p #\u) 'pickup-pattern-unset-select) (global-set-key '(#\C-c #\p #\C-u) 'pickup-pattern-unset-all) (global-set-key '(#\C-c #\p #\d) 'pickup-pattern-delete-select) (global-set-key '(#\C-c #\p #\C-d) 'pickup-pattern-delete-all) (global-set-key '(#\C-c #\p #\l) 'pickup-pattern-list-show) ;; pickup したパターンの表示方法 (setq *pickup-pattern-fg* 1) (setq *pickup-pattern-bg* 3) (setq *pickup-pattern-bold* t) (setq *pickup-pattern-underline* nil) (setq *pickup-pattern-strike-out* nil) ;; pickup するパターンの検索方法 ;; re-search-forward-pickup, re-search-backward-pickup では無視されます (setq *pickup-pattern-regexp* t) (setq *pickup-pattern-overlap* nil) ;;; --- 検索設定 --- ;;; 検索文字列を pickup (消去は pickup-pattern-unset-all 等で) ;; 検索前に pickup 表示を全て解除 (setq *pickup-pattern-pre-search-unset* t) ;; 検索文字列をリストに追加 (setq *pickup-pattern-search-pattern-add* nil) ;; (正規表現)検索文字列入力時のみ色づけしたい場合はこっちの関数を (global-set-key #\M-s 're-search-forward-pickup) (global-set-key #\M-C-s 're-search-backward-pickup) ;; repeat-forward-search, repeat-backward-search 等、どの検索時にも色づけしたい ;; 場合は上のでなく、既存の関数の hook に引っかける。(毎回色づけするので遅いかも) ;(add-hook '*show-match-hook* 'pickup-pattern-last-search) ;;; --- フック設定 --- ;; pickup 時は paren を括弧のみに (喜多さん paren.l) (add-hook '*pickup-pattern-set-hook* #'(lambda () (setq *paren-highlight-only-paren* t))) (add-hook '*pickup-pattern-unset-all-hook* #'(lambda () (setq *paren-highlight-only-paren* nil)))
[ダウンロード]
[ggrep]
(2005/10/08)
[説明]
Grep 類似の行指向検索を行います。
|
[提供コマンド]
┏━━━━━━━┯━━━━┯━━━━━━━━━┯━━━━━━━━┓ ┃コマンド名 │パターン│対象 │対象(C-u) ┃ ┃ ├────┴─────────┴────────┨ ┃ │説明 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep │正規表現│バッファリスト │カレントバッファ┃ ┃ ├────┴─────────┴────────┨ ┃ │AND/OR 検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃fggrep │文字列 │バッファリスト │カレントバッファ┃ ┃ ├────┴─────────┴────────┨ ┃ │AND/OR 検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep-and │正規表現│バッファリスト │カレントバッファ┃ ┃ ├────┴─────────┴────────┨ ┃ │AND 検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃fggrep-and │文字列 │バッファリスト │カレントバッファ┃ ┃ ├────┴─────────┴────────┨ ┃ │AND 検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep-or │正規表現│バッファリスト │カレントバッファ┃ ┃ ├────┴─────────┴────────┨ ┃ │OR 検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃fggrep-or │文字列 │バッファリスト │カレントバッファ┃ ┃ ├────┴─────────┴────────┨ ┃ │OR 検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep-narrow │正規表現│grep 結果バッファ │ ┃ ┃ ├────┴─────────┴────────┨ ┃ │絞込み検索(バッファからは行番号情報のみ取得) ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃fggrep-narrow │文字列 │grep 結果バッファ │ ┃ ┃ ├────┴─────────┴────────┨ ┃ │絞込み検索(バッファからは行番号情報のみ取得) ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃xggrep │正規表現│ディレクトリ │ ┃ ┃ ├────┴─────────┴────────┨ ┃ │複数ディレクトリ指定検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃zggrep │正規表現│ファイル │ ┃ ┃ ├────┴─────────┴────────┨ ┃ │複数ファイル指定検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep-contents│正規表現│カレントバッファ │指定バッファ ┃ ┃ ├────┴─────────┴────────┨ ┃ │絞込み検索(指定バッファ内コンテンツのみで検索)┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep-buffer │正規表現│カレントバッファ │指定バッファ ┃ ┃ ├────┴─────────┴────────┨ ┃ │ggrep / ggrep-narrow / ggrep-contents ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep-detail │ │ │ ┃ ┃ ├────┴─────────┴────────┨ ┃ │minibuffer から全てを指定して検索 ┃ ┣━━━━━━━┿━━━━┯━━━━━━━━━┯━━━━━━━━┫ ┃ggrep-dialog │ │ │ ┃ ┃ ├────┴─────────┴────────┨ ┃ │dialog から全てを指定して検索 ┃ ┗━━━━━━━┷━━━━━━━━━━━━━━━━━━━━━━━┛
Usage: A: バッファ全体を正規表現で検索 1. M-x ggrep B: バッファ全体を文字列で検索 1. M-x fggrep C: 現在のバッファだけを検索 1. C-u M-x ggrep D: 指定ディレクトリ以下のファイルを検索 1. M-x xggrep E: 指定ファイルを検索 1. M-x zggrep F: 絞込み検索 1 1. A〜E で検索 2. A〜E の検索に検索条件を追加して、新たに検索 G: 絞込み検索 2 1. A〜E で検索 2. 1. の結果を元に M-x ggrep-narrow で絞込み検索 H: 絞込み検索 3 1. M-x ggrep-contents でバッファを検索 2. 1. の結果バッファ上で再度 M-x ggrep-contents で検索 I: バッファに合わせた方法で検索 1. M-x ggrep-buffer で検索 - 通常バッファ上ならば C-u M-x ggrep と同様の方法で検索 - ggrep-contents 結果バッファ上ならば、再度 M-x ggrep-contents と同様の方法で検索 - その他 ggrep 結果バッファ上ならば、M-x ggrep-narrow と 同様の方法で検索 2. 1. の結果バッファ上で再度 M-x ggrep-buffer で検索 J: minibuffer から細かく指定して検索 1. M-x ggrep-detail K: ダイアログから検索 a. ダイアログの表示 - [検索]-[GGrep] を選択 - [表示]-[ツールバー]-[GGrep] でツールバーを表示した上で、 ggrep ツールバー(ボタン) を選択 - M-x ggrep-dialog を実行 b. 検索実行 1. 検索方法をダイアログで設定する 2. 「検索」ボタンを押す c. 検索設定の保存 1. 「設定」フィールドに設定名を入力する 2. 「保存」ボタンを押す d. 検索設定の読込 1. 「設定」フィールドで設定名を選択/入力する 2. 「読込」ボタンを押す e. 検索設定の削除 1. 「設定」フィールドで設定名を選択/入力する 2. 「削除」ボタンを押す
[ChangeLog]
[ダウンロード]
[multiple-replace]
(2005/04/13)
[説明]
複数文字列の置換を行います。
|
[ChangeLog]
[ダウンロード]
[diff-detail]
(2006/03/30)
[説明]
diff の更新行を、正規表現または関数で指定したトークン単位で再度比較します。
;;
;; 1. 実行
;; 1.1 diff または diff-detail を実行
;; M-x diff
;; or
;; M-x diff-detail
;;
;; 1.2. 詳細表示 (token とする正規表現の変更)
;; "." キー (M-x diff-detail-change-grain)
;;
;; 2. 移動
;; n: diff-mode の n と同等
;; p: diff-mdoe の p と同等
;;
;; N: 次の変更位置へ移動
;; P: 前の変更位置へ移動
;;
;; TAB: 比較バッファの対応する変更位置へ移動
;;
;; 3. 差分編集
;; m: diff-mode の m と同等
;; r: diff-mode の r と同等
;; u: diff-mode の u と同等
;;
;; M: diff-detail 部分を merge
;; R: diff-detail 部分を merge-reverse
;; U: diff-detail 部分を undo
;;
;; 4. その他
;; c: diff 画面の縦横分割の切り替え
;; SPC: 比較バッファの対応する変更範囲を強調表示
;; v: HTML に変換した結果を表示
;; C-c C-h: HTML に変換
;; C-c RET: 真鵺道(Manued)に変換
;;
|
[ChangeLog]
[ダウンロード]
[sort-line]
(2005/10/08)
[説明] 任意のカラム以降をキーとして、バッファ全体/選択範囲の行のソートを行います。 選択範囲の先頭行については、カーソルが矩形選択の右上の場合を除き、行全体が含まれていなくともソート範囲とみなします。選択範囲の末尾行については、カーソルが行頭の場合、矩形選択の左下の場合を除きソート範囲とみなします。 これを使わないで普通にソートする場合は、対象範囲を region 指定して C-x | sortとタイプして外部コマンドでソートします。 |
[ChangeLog]
[ダウンロード]
[csv-0.0.3.0]
(2006/10/21)
[説明]
CSV, TSV ファイル (*.csv, *.tsv) 用モードです。
あまり大きなファイルの編集には適していません。 [キーバインド]
|
[ChangeLog]
[設定例]
(export 'ed::csv-mode "ed") (autoload 'csv-mode "csv-mode" t) (autoload 'tsv-mode "csv-mode" t) (pushnew '("\\.csv$" . csv-mode) *auto-mode-alist* :test 'equal) (pushnew '("\\.tsv$" . csv-mode) *auto-mode-alist* :test 'equal) ;; ソート方法の追加 (defun my-csv-mode-hook () (pushnew (list "文字数の少ない順" #'(lambda (str-a str-b) (let ((len-a (length str-a)) (len-b (length str-b))) (cond ((< len-a len-b) -1) ((= len-a len-b) 0) (t 1))))) ed::*csv-sort-method-list* :test #'(lambda (a b) (string= (car a) (car b))))) (add-hook 'ed::*csv-mode-hook* 'my-csv-mode-hook)
[ダウンロード]
[mayu-0.0.0.6]
(2005/10/08)
[説明]
「窓使いの憂鬱」の設定ファイル (*.mayu) 用モードです。
[キーバインド]
|
[ChangeLog]
[ダウンロード]
[bat-0.0.0.4]
(2005/10/08)
[説明]
バッチファイル (*.bat) 用モードです。
[キーバインド]
|
[ChangeLog]
[ダウンロード]
[ini-0.0.0.4]
(2005/10/08)
[説明]
INI ファイル (*.ini) 用モードです。
[キーバインド]
|
[ChangeLog]
[ダウンロード]
[manued-0.0.2.0]
(2005/10/08)
[説明]
Manued ファイルを編集するためのマイナー/メジャーモードです。 □真鵺道 (Manued : Manuscript Editing language) □提供する機能
[キーバインド]
;; ■manued-minor-mode
;;
;; M-n 次のコマンドへ移動
;; M-p 前のコマンドへ移動
;; M-N 同レベルの次のコマンドへ移動
;; M-P 同レベルの前のコマンドへ移動
;; M-] 対応するコマンド開閉文字列へ移動
;; C-l 画面表示の更新
;; C-c C-m e 書式エラー位置へ移動
;; C-c C-m C-e 直前のコマンドを評価
;;
;; C-c C-m C-d リージョンを delete コマンドに変換
;; C-c C-m C-s リージョンを swap コマンドに変換
;; C-c C-m C-c リージョンを comment に変換
;;
;; C-c C-m d delete コマンドの編集
;; C-c C-m s swap コマンドの編集
;; C-c C-m c コメントの編集
;; C-c C-m C-m 状況に応じたコマンド/コメントの編集
;;
;; S-Apps Manued メニュー (Selection 用)
;; S-右クリック Manued メニュー (Selection 用)
;;
;;
;; ■manued-mode
;;
;; M-n 次のコマンドへ移動
;; M-p 前のコマンドへ移動
;; M-N 同レベルの次のコマンドへ移動
;; M-P 同レベルの前のコマンドへ移動
;; M-] 対応するコマンド開閉文字列へ移動
;; C-l 画面表示の更新
;; C-c C-m e 書式エラー位置へ移動
;; C-c C-m C-e 直前のコマンドを評価
;;
;; C-c C-m C-d リージョンを delete コマンドに変換
;; C-c C-m C-s リージョンを swap コマンドに変換
;; C-c C-m C-c リージョンを comment に変換
;;
;; C-\ undo (manued-mode ならば read-only でも undo)
;; C-w リージョンを delete コマンドに変換 (C-c C-m C-d と同一)
;; C-d セレクションまたは現在位置を delete コマンドに変換
;; Delete 同上
;; C-h セレクションまたは直前位置を delete コマンドに変換
;; C-k 現在位置から行末尾までを delete コマンドに変換
;;
;; C-c C-m d delete コマンドの編集
;; d 同上
;; C-c C-m s swap コマンドの編集
;; s 同上
;; C-c C-m c コメントの編集
;; c 同上
;; C-c C-m C-m 状況に応じたコマンド/コメントの編集
;; C-m 同上
;;
;; S-Apps Manued メニュー (Selection 用)
;; S-右クリック Manued メニュー (Selection 用)
[仕様]
;; ■manued-mode.l ver. 0.0.1.0 での修正記号定義コマンド (defcommand)
;;
;; defparentheses [ ]
;; defdelete /
;; defswap |
;; defcomment ;
;; defescape ~
;; deforder older-first
;; defversion 0.0.1.0-manued-mode_for_xyzzy
;;
;; ■manued-mode.l ver. 0.0.1.0 での Manued コマンド (manued-command)
;;
;; Manued コマンドを default の記号を用いて説明する。
;;
;; ・[A/B]
;; Aを消去し、Bを挿入する。
;;
;; [A/] : A を消す。(A を空文字で置き換える)
;; [/A] : A を挿入する。(空文字を A で置き換える)
;;
;; ・[A|B|C]
;; AとCの位置を入れ換え、CBAの並びで出力する。
;;
;; [A||C] AとCを入れ換える。
;;
;; ・[; comment ]
;; ; から ] まではコメントとなる。
;;
;; ■manued-mode.l での修正記号定義コマンドの記述可能場所
;;
;; buffer の先頭からのみ。
;; narrowing している場合でも、buffer 先頭の修正記号定義コマンドのみを
;; 評価する。
|
[ChangeLog]
[ダウンロード]
[box-fixation-mode]
(2005/10/08)
[説明]
罫線内編集を行うためのマイナー/メジャーモードです。
罫線モード (box-drawings-mode) で記述した罫線や、CSVモードで変換した罫線の位置を固定しつつ編集を行う場合に使用します。 罫線間の範囲を超過する入力を行った場合、超過分を次行に入力します。罫線が閉じており次行に入力できない場合は、罫線の継続行を追加した上で超過分を入力します。 [キーバインド]
■box-fixation-mode
キーバインドなし |
┏━━━━━━━━━━━━━┯━━━━━━━━━━━━━━┓ ┃ │Description: 罫線内編集を行 ┃ ┃ │うためのマイナー/メジャーモ ┃ ┃ │ードです。罫線モード (box-dr┃ ┠─────────────┘awings-mode) で記述した罫線 ┃ ┃や、CSVモードで変換した罫線の位置を固 ┌────────┨ ┃定しつつ編集を行う場合に使用します。罫│ ┃ ┣━━━━━━━━━━━━┓線間の範囲を│ ┃ ┃ ┃超過する入力│ ┃ ┃ ┌──────┸───┐を行└────────┨ ┃ │ │った場合、超過分を次行┃ ┃ │ │に入力し───────┨ ┃ │ │ます。罫線が閉じており┃ ┃ │ │次行に入力できない場合┃ ┃ │ │は、罫線の継続行を追加┃ ┃ │ │した上で超過分を入力し┃ ┃ │ │ます。 ┃ ┗━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━┛ |
[ChangeLog]
[ダウンロード]
[keep-window-line-mode]
(2005/10/08)
[説明]
ウィンドウ行を固定するマイナーモードです。
ウィンドウをスクロールしても、カーソル行の表示位置を変更したくない場合に使用します。 |
[ChangeLog]
[ダウンロード]
[function-bar-label]
(2005/10/08)
[説明]
builtin の set-function-bar-label を拡張し、get-function-bar-label での label 取得を可能にします。
|
|
[ChangeLog]
[使用例]
(require "function-bar-label") ;; ミニバッファではファンクションキーで固定文字列を挿入 ;; F1: デスクトップ ;; F2: xyzzy/site-lisp/ ;; F3: xyzzy/.xyzzy ;; F4: xyzzy/site-lisp/siteinit.l ;; F5: My Documents (dolist (keymap (list minibuffer-local-map minibuffer-local-completion-map minibuffer-local-command-line-map minibuffer-local-must-match-map)) (define-key keymap #\F1 #'(lambda () (interactive) (delete-region (point-min) (point-max)) (insert (append-trail-slash (map-backslash-to-slash (get-special-folder-location :desktop)))))) (define-key keymap #\F2 #'(lambda () (interactive) (delete-region (point-min) (point-max)) (insert (append-trail-slash (merge-pathnames "site-lisp" (si:system-root)))))) (define-key keymap #\F3 #'(lambda () (interactive) (delete-region (point-min) (point-max)) (insert (merge-pathnames ".xyzzy" (user-homedir-pathname))))) (define-key keymap #\F4 #'(lambda () (interactive) (delete-region (point-min) (point-max)) (insert (merge-pathnames "site-lisp/siteinit.l" (si:system-root))))) (define-key keymap #\F5 #'(lambda () (interactive) (delete-region (point-min) (point-max)) (insert (append-trail-slash (map-backslash-to-slash (get-special-folder-location :personal))))))) (let (function-bar-label-map) (defun enter-minibuffer-function-bar-label-map (buffer history) (setq function-bar-label-map (get-function-bar-label-map)) (set-function-bar-label #\F1 "デスクトップ") (set-function-bar-label #\F2 "site-lisp") (set-function-bar-label #\F3 ".xyzzy") (set-function-bar-label #\F4 "siteinit.l") (set-function-bar-label #\F5 "MyDocuments") (set-function-bar-label #\F6 "") (set-function-bar-label #\F7 "") (set-function-bar-label #\F8 "") (set-function-bar-label #\F9 "") (set-function-bar-label #\F10 "") (set-function-bar-label #\F11 "") (set-function-bar-label #\F12 "")) (defun exit-minibuffer-function-bar-label-map (buffer contents) (when (keymapp function-bar-label-map) (set-function-bar-label-map function-bar-label-map) (setq function-bar-label-map nil)))) (add-hook '*enter-minibuffer-hook* 'enter-minibuffer-function-bar-label-map) (add-hook '*exit-minibuffer-hook* 'exit-minibuffer-function-bar-label-map)
[ダウンロード]
[win-window]
(2005/10/08)
[説明]
Windows の window のサイズの取得、設定を行います。
browserex から require されます。 |
[ChangeLog]
[ダウンロード]
[insert-directory-tree]
(2005/10/19)
[説明]
何かと必要になる、ディレクトリーツリーを出力します。
[出力例] D:/utils/xyzzy/ ├ .abbrev_defs ├ .cftp ├ .www ├ .xyzzy ├ xyzzy.exe ├ XYZZY.w98 ├ xyzzycli.exe ├ xyzzyenv.exe ├ _katexrc │ ├ .ilogic/ │ ├ config.l │ │ │ └ data/ │ │ │ ├ 2ch/ │ │ └ 00000001.dat │ │ │ ├ convert/ │ │ │ │ │ └ パズルパレス/ │ │ ├ 0001.dat │ │ ├ 0002.dat │ │ ├ 0003.dat │ │ ├ 0004.dat ... |
[ChangeLog]
[ダウンロード]
[ilogic-0.0.0.4]
(2001/10/10)
[説明]
「イラストロジック」や「ののぐらむ」と呼ばれるパズルの問題の入力・作成・自動解答を行えます。
付属の makefile で ilogic-make (byte-compile) をしないと動作が遅すぎます。 [キーバインド]
勘でお願いします。
とりあえず [SPACE]、[TAB]、それから [Enter] で。 |
[ChangeLog]
[ダウンロード]
[2ch-dialog]
(2005/10/08)
[説明]
服部さんが公開されている
2ch-mode に主に
AA 用のダイアログの機能を追加します。
[2ch-0.0.0.9] (2002/02/02 08:05:03) で動作確認。 と書くと多分動きます。 [キーバインド]
2ch-mode への追加キーバインド
[スレ]
|
[ChangeLog]
[ダウンロード]
[2ch-browser-wrap]
(2002/03/08)
[説明] 2ch-mode で browser.dll を便利に使わせてもらい、Ascii Art を見たり書いたりしてみる。 (役に立ちません。)
とりあえずアスキーアートが見られればよい、というくらいのへなちょこコードです。 と書くと多分動きます。 [キーバインド]
2ch-mode への追加/変更キーバインド
[スレ]
|
|
[ChangeLog]
[ダウンロード] [説明] popup-string で表示される場所にマウスカーソルがあるとすぐに消えてしまったりするので、popup-string 時にマウスカーソルが xyzzy 上にあったら適当にどかしてみる。その具体例を 2ch-mode 上でやってみた。 2ch-modification.l と konata-mouse.l を xyzzy/site-lisp/ あたりに置いて、 xyzzy/.2ch/config.l に (require "2ch-modification")
と書くと多分動きます。
意味がないどころか余計うっとうしいかもしれません。 |
[ChangeLog]
[ダウンロード]
[colortest.l]
(2001/12/10)
[説明]
色設定はわりとよくあるのでカラーテストを表示してみる。
2ch の xyzzy スレッド 383 番を元に書いてみた。 色設定が適当ですが出力を HTML 化してみました。 こんなのがバッファに表示されます。 おすすめの色設定を誰か。 |
[説明]
load-library の行の上で
逸見さんのサイトのlispモードのカスタマイズ例にある「load-library の行の上で 実際に xyzzy が探す順番とは .lc を後回しにする点で異なります。 [コード] ;; F10 で load-library 等の対象ファイルを開く (defun open-load-library-file () (interactive) (let (file fullpath) (save-excursion (scan-buffer "(" :reverse t) (if (or (looking-at "(si:\\*load-library[ \t\n]+\"\\([^\"]+\\)\"") (looking-at "(load-library[ \t\n]+\"\\([^\"]+\\)\"") (looking-at "(require[ \t\n]+\"\\([^\"]+\\)\"") (looking-at "(autoload[ \t\n]+[^\"]+\"\\([^\"]+\\)\"")) (setq file (match-string 1)))) (when file (dolist (path *load-path*) (setq fullpath (merge-pathnames file path)) (when (and (file-exist-p fullpath) (not (file-directory-p fullpath))) (find-file fullpath) (return-from open-load-library-file)) (setq fullpath (concat fullpath ".l")) (when (and (file-exist-p fullpath) (not (file-directory-p fullpath))) (find-file fullpath) (return-from open-load-library-file)) (setq fullpath (concat fullpath "c")) (when (and (file-exist-p fullpath) (not (file-directory-p fullpath))) (find-file fullpath) (return-from open-load-library-file))) (message "ファイルが見つかりません: ~A" file)))) (define-key ed::*lisp-mode-map* #\F10 'open-load-library-file) (define-key ed::*lisp-interaction-mode-map* #\F10 'open-load-library-file) |
[説明] 指定ディレクトリ以下のみ文字コード・改行コードを SJIS CRLF に指定 (2001/10/18) 特定のディレクトリ以下で新規ファイルを作成する際、文字コード・改行コードを SJIS CRLF に指定する。 [コード] ;; 指定ディレクトリ以下のみ文字コード・改行コードを SJIS CRLF に指定 (defvar *sjis-crlf-directory* '("C:/My Documents/" "C:/utils/eMemoPad/")) (defun set-sjis-crlf-hook () (let ((file (get-buffer-file-name)) dir dir-length) (when (and (zerop (point-max)) (string file)) (setq dir (directory-namestring file)) (dolist (sjis-crlf-dir *sjis-crlf-directory*) (setq dir-length (length sjis-crlf-dir)) (when (and (>= (length dir) dir-length) (string-equal sjis-crlf-dir (subseq dir 0 dir-length))) (set-buffer-fileio-encoding *encoding-sjis*) (set-buffer-eol-code 1) (return)))))) (add-hook '*find-file-hooks* 'set-sjis-crlf-hook) |
OHKUBO Hiroshi <ohkubo@s53.xrea.com> |