*link [#mf6606e4]
-[[ばりやる気のないぺぇじ:http://www.jsdlab.co.jp/~kamei/]]
-[[capsctrl - xyzzy:http://capsctrl.que.jp/kdmsnr/?xyzzy]]
-[[みんなの楽しい色設定:http://hie.s64.xrea.com/xyzzy/note/colors.html]]
-[[xyzzy カスタマイズ/.xyzzy ファイル:http://www.geocities.jp/trick_room/ex_xyzzy.html]]
-[[xyzzyページ:http://www.jsdlab.co.jp/~kei/xyzzy/]]
-[[http://osuneko.at.infoseek.co.jp/xyzzy/xyzzy.html]]
-[[雄猫のがらくた置き場(xyzzy):http://osuneko.at.infoseek.co.jp/xyzzy/xyzzy.html]] -- 花鳥
-[[xyzzy Wiki:http://xyzzy.s53.xrea.com/wiki/index.php?FrontPage]]
-[[リファレンス:http://xyzzy.s53.xrea.com/reference/]]
-[[xyzzy Lisp Programming:http://www.geocities.jp/m_hiroi/xyzzy_lisp.html]]
-[[HIE no xyzzy:http://hie.s64.xrea.com/xyzzy/]]
-[[http://cgi.www5a.biglobe.ne.jp/~nhashimo/fswiki/wiki.cgi?page=xyzzy]]
-[[Tips of "xyzzy":http://www.uranus.dti.ne.jp/~shiro-/soft/xyzzy/index.html]]

*memo [#h43d6b57]
-カーソルの点滅を消したい時は 共通設定 => 表示 で「キャレットを点滅」をoffに
-Ctrl-x \ の動的補完すげー
-[[outline-tree2:http://ohkubo.s53.xrea.com/xyzzy/index.html#outline-tree2]]すげー
-migemoも動く

*.xyzzy [#hc0bfd51]
設定例を公開なさっている皆様に感謝


 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; personal preference ;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 ;;; misc
 (cd "~/")
 (load-library "isearch") ;; incremental search
 (pushnew '("\\.xyzzy$" . lisp-mode) *auto-mode-alist* :test 'equal)
 
 ;;; key
 (global-set-key '(#\C-x #\C-y) 'paste-from-clipboard)
 (global-set-key #\M-% 'replace-string)
 (global-set-key '(#\C-x #\u) 'undo)
 (global-set-key '(#\C-x #\C-j) 'toggle-ime) ; SKK
 (global-set-key '(#\C-x #\r #\d) 'delete-rectangle)
 (global-set-key '(#\C-x #\r #\k) 'kill-rectangle)
 (global-set-key '(#\C-x #\r #\o) 'open-rectangle)
 (global-set-key '(#\C-x #\r #\t) 'string-rectangle)
 (global-set-key '(#\C-x #\r #\y) 'yank-rectangle)
 (global-set-key '(#\C-x #\r #\w) 'copy-rectangle)
 
 
 ;;; original "view mode"
 ; thanks to http://www.tsg.ne.jp/GANA/D/diary/2002-05.html 2002年05月09日 (木) JST
 (require 'viewmode)
 (define-key filer-keymap #\V 'hi-filer-view)
 (define-key ed::*view-mode-map* #\Left 'previous-page)
 (define-key ed::*view-mode-map* #\Right 'next-page)
 (define-key ed::*view-mode-map* #\C-b 'previous-page)
 (define-key ed::*view-mode-map* #\C-f 'next-page)
 (define-key ed::*view-mode-map* #\SPC 'next-page)
 
 (define-key ed::*view-mode-map* #\RET 'hi-kill-filer-view)
 (define-key ed::*view-mode-map* #\E 'hi-view-mode-to-edit)
 
 (defun hi-kill-filer-view ()
   (interactive)
   (delete-buffer (selected-buffer))
   (open-filer)
 )
 
 (defun hi-filer-view ()
   (find-file (filer-get-current-file))
   (view-mode)
   (si:*activate-toplevel)
 )
 
 (defun hi-view-mode-to-edit ()
   (interactive)
   (setq buffer-read-only nil)
   (setq fname (get-buffer-file-name))
   (delete-buffer (selected-buffer))
   (find-file fname)
   )
 
 
 
 ;;;;;;;;;;;;;
 ;;; KaTeX ;;;
 ;;;;;;;;;;;;;
 
 (push "c:/programs/xyzzy/site-lisp/katex" *load-path*)
 (require "elisp")
 (push '("\\.tex$" . elisp::katex-mode) *auto-mode-alist*)
 (autoload 'elisp::katex-mode "katex" t)
 
 
 ;;;;;;;;;;;;;;;;;;;;;;
 ;;; iswitchbもどき ;;;
 ;;;;;;;;;;;;;;;;;;;;;;
 ;;; http://xyzzy.s53.xrea.com/wiki/?tips%2Fiswitchb%A4%E2%A4%C9%A4%AD
 (global-set-key '(#\C-x #\b) 'iswitchb)
 (defun iswitchb-list-grep (list input)
  "listを input によって絞り込み"  ; 空白区切りは & とみなす
  (remove-if
   #'(lambda (x)
 	   (dolist (s (split-string input " "))
 		 (if (not (string-matchp (regexp-quote s) x))
 			 (return t))))
   list))
  
 (defun iswitchb-buffer-list-init ()
  "iswitchb で選択するバッファ名リストの取り出し(初期値)"
  (remove-if
   #'(lambda (x) (string-match "^ " x)) ; ミニバッファ以外
   (mapcar #'buffer-name
 		   (buffer-list :buffer-bar-order *next-buffer-in-tab-order*))))
 
 (defun iswitchb-buffer-list-init-rotate (list name)
  "list を name が先頭に来るまで回転"
  (when (position name list :test 'string=)
 	(while (< 0 (position name list :test 'string=))
 	  (setq list (append (cdr list) (list (car list))))))
  list)
 
 (defun iswitchb ()
  "バッファの切り替え"
  (interactive)
  (let ((buffer-list
 		 (iswitchb-buffer-list-init-rotate
 		  (iswitchb-buffer-list-init)
 		  (buffer-name (other-buffer))))
 		(input "")
 		(pre-buffer (selected-buffer))
 		(top-buffer (buffer-name (selected-buffer)))
 		(buffer-list-grepd)
 		(c))
 	(loop  ; iswitchb-mode ...
 	  (setq buffer-list-grepd (iswitchb-list-grep buffer-list input))
 	  (message "~S" buffer-list-grepd)
 	  (when (< 0 (length buffer-list-grepd))
 		(when (string/= top-buffer (car buffer-list-grepd))
 		  (setq top-buffer (car buffer-list-grepd))
 		  (switch-to-buffer top-buffer)))
 	  (ed:minibuffer-prompt "iswitchb: ~A" input)
 	  (setq c (read-char ed:*keyboard*))
 	  (case c
 		((#\C-g #\ESC)
 		 (switch-to-buffer pre-buffer) (quit))
 		((#\Left #\Up #\C-r #\Home #\PageDown) ; 'iswitchb-prev-match
 		 (when (< 1 (length buffer-list-grepd))
 		   (while (string= top-buffer (car (iswitchb-list-grep buffer-list input)))
 			 (setq buffer-list (append (last buffer-list) (butlast buffer-list))))))
 		((#\Right #\Down #\C-s #\End #\PageUp) ;'iswitchb-next-match
 		 (when (< 1 (length buffer-list-grepd))
 		   (while (string= top-buffer (car (iswitchb-list-grep buffer-list input)))
 			 (setq buffer-list (append (cdr buffer-list) (list (car buffer-list)))))))
 		((#\C-m #\RET) ;'iswitchb-exit-minibuffer
 		 (return (switch-to-buffer top-buffer)))
 		((#\C-j)
 		 (switch-to-buffer top-buffer))
 		((#\C-a)
 		 (setq input ""))
 		((#\C-h)
 		 (ignore-errors (setq input (substring input 0 -1))))
 		((#\TAB)
 		 (ignore-errors
 		  (multiple-value-bind (result list prefix)
 		      (*do-completion input :buffer-name)
 		    (cond ((eq result :solo-match)
 			   (return (switch-to-buffer top-buffer)))
 			  ((stringp result)
 			   (setf input result))))))
 		(t
 		 (setq input (format nil "~A~A" input c)))
 		))))