xyzzy設定

備忘録
※てっきり”ぼうびろく”と思ったら変換できず。”びぼうろく”なのね

(require "ni/setup")
;; 自動設定を利用する
;;proxy設定
(ni-autoload)

;; javascript-mode の設定
(require "javascript-mode")

;; info-modoki-mode の設定
(require "info-modoki-mode")
(define-key ed::*lisp-mode-map* #\F1 'imm-refer-selection)
(define-key ed::*lisp-interaction-mode-map* #\F1 'imm-refer-selection)

;; lisp-mode色づけ設定
(in-package "editor")

(defvar *lisp-keyword-hash-table* nil)

(defun use-lisp-keyword ()
  "キーワード色付け"
  (if (null *lisp-keyword-hash-table*)
      (setq *lisp-keyword-hash-table*
            (load-keyword-file "lisp")))
  (when *lisp-keyword-hash-table*
    (make-local-variable 'keyword-hash-table)
    (setq keyword-hash-table *lisp-keyword-hash-table*)))

(add-hook '*lisp-mode-hook*
          #'(lambda ()
              (use-lisp-keyword)
              (define-key *lisp-mode-map* #\C-. 'lisp-complete-symbol)))

(add-hook '*lisp-interaction-mode-hook*
          #'(lambda ()
              (use-lisp-keyword)
              (define-key *lisp-interaction-mode-map* #\C-. 'lisp-complete-symbol)))

(in-package "user")

;;; 右クリックしながらホイール回転でバッファを移動
(defvar *mouse-right-button-state* nil)

(defun mouse-right-button-down ()
  (interactive)
  (setf *mouse-right-button-state* :pressed)
  (continue-pre-selection))

(defun my-mouse-wheel-scroll (window n lines)
  (if *mouse-right-button-state*
      (let ((*next-buffer-in-tab-order* t))
        (declare (special *next-buffer-in-tab-order*))
        (if (> n 0)
            (next-buffer)
          (previous-buffer))
        (setf *mouse-right-button-state* :rotated))
    (ed::mouse-wheel-scroll window n lines)))

(defun mouse-right-button-up ()
  (interactive)
  (unless (eq *mouse-right-button-state* :rotated)
    (mouse-menu-popup))
  (setf *mouse-right-button-state* nil))

(setq-default mouse-wheel-handler #'my-mouse-wheel-scroll)
(global-set-key #\RBtnDown 'mouse-right-button-down)
(global-set-key #\RBtnUp 'mouse-right-button-up)

;; *scratch* を終了時に保存
(add-hook '*kill-xyzzy-hook*
          #'(lambda ()
              (save-excursion
                (set-buffer (find-buffer "*scratch*"))
				(write-file "~/scratch"))))

;; *scratch*, .xyzzy を起動時にロード
(add-hook '*post-startup-hook*
          #'(lambda ()
              (save-excursion
                (set-buffer (find-buffer "*scratch*"))
                (insert-file-contents "~/scratch" t)
				(if (find-buffer ".xyzzy")
					()
				  (progn
					(switch-to-buffer ".xyzzy")
					(set-buffer-file-name "~/.xyzzy" ".xyzzy")
					(insert-file-contents "~/.xyzzy" t))))))

;; .xyzzy を自動的に lisp-mode へ
(pushnew '("\\.xyzzy" . lisp-mode) *auto-mode-alist* :test 'equal)

;; paren用設定
(require "paren")
(turn-on-global-paren)

;; xml-mode
(require "xml/xml-mode")
(require "xml/xhtml")
(require "xml/xslt")
(require "xml/relaxng")
(require "xml/xlink")
(use-package 'xml)

;; wiki-mode
(require "wiki-mode")

;; ruby-mode
(load-library "ruby-mode")
(push '("\\.rb$" . ruby-mode) *auto-mode-alist*)


;; キーバインド設定
(global-set-key #\S-F15 #'(lambda()
    (interactive)
    (insert "\t"))
)
(set-extended-key-translate-table exkey-S-tab #\S-F15)

;; Shift-Ctrl-f で単語移動
(global-set-key #\C-M-f 'forward-word)
;; Shift-Cntl-b で単語移動
(global-set-key #\C-M-b 'backward-word)

;; C-F8で全行一発インデント
      (defun indent-current-buffer ()
      (interactive)
      (indent-region (point-min) (point-max))
      (message "indent buffer"))
      (global-set-key #\C-F8 'indent-current-buffer)

;; 引用貼り付け
(require "quote-menu")