meadowを止めてxyzzyにした

必要なこと(あとでまとめる)

  • download
  • 環境変数の設定(XYZZYHOME)
  • netinstallerのインストール
  • caldixで解凍用のdllをインストール

.xyzzyをいじる(あとでまとめる)

とりあえず、現在の.xyzzy*1

(global-set-key #\F8 'lisp-mode)
(global-set-key #\F12 'text-mode)

;;全選択
(global-set-key '(#\C-x #\h) 'mark-page)

(require 'my-function-snipet)
;;find-file-extend
(defun my-find-file (FILENAME) (interactive "Ffile:")
  "auto-save-buffersのための関数.
少しでも書かないと保存されないらしい。
(保存されてからじゃないと、autosaveが始まらない)"
  (find-file FILENAME)
  (insert " ") 
  (save-buffer))

(global-set-key '(#\C-x #\C-f) 'my-find-file)
;;pwd
(defun pwd () (interactive)
  (insert (get-buffer-file-name)))

;;bufferの移動
(show-command-bar 'buffer-barc)
(global-set-key #\C-\; 'previous-buffer)
(global-set-key #\C-\: 'next-buffer)

;(setq *my-home-directory* "D:/home/memo")
;(insert (concat "ruby -e 'Dir[ARGV.first+\"/*.txt\"].sort_by{|e| $1 if File.basename(e)=~/(\d+)\.txt/)}.last.display' "
;					  *my-home-directory*))

;;shell-mode
(require 'shell)

(add-hook '*shell-mode-hook* 
	  #'(lambda ()
	      (define-key *shell-mode-map* #\C-a 	
			  #'(lambda () (interactive)
			      (beginning-of-line)
			      (search-forward ">")
			      (forward-char 1)))))

(require "ni/setup")	;;netinstallerで起動
;; 自動設定を利用する
(ni-autoload)
;; PROXYを通す場合
;(setq ni::*http-proxy-host* "proxy.host")  ; PROXY のホスト
;(setq ni::*http-proxy-port* 8080)          ; PROXY のポート

;;function-reference
	;switch/deletekey & C-h
(setf (svref *kbd-translate-table* (char-code #\C-h)) #\Delete)

(global-set-key '(#\Delete #\f) 'describe-function)
(global-set-key '(#\Delete #\v) 'describe-variable)
(global-set-key '(#\Delete #\k) 'describe-key)
(global-set-key #\F5 'revert-buffer)

;;move-file
(global-set-key '(#\C-c #\x) #'(lambda () (interactive)
			       (find-file "D:/apl/office/xyzzy/.xyzzy")
			       (lisp-mode)))

(global-set-key '(#\C-x #\4 #\a) #'(lambda () (interactive)
				     (find-file "d:/home/memo/ChangeLog")))
				   
;;redo ando
(global-set-key #\C-/ 'undo)
(global-set-key #\C-. 'redo)

;;completion
(global-set-key '(#\C-c #\j) 'lisp-complete-symbol)
(require "dabbrev")
(global-set-key '(#\C-c #\C-j) 'dabbrev-expand)

;;auto-save-buffers
(require 'auto-save-buffers)

;;anything
(require :anything/anything)
(require :anything/sources)
(require :anything/menu)
(global-set-key '(#\C-c #\C-a) 'anything)

;;paren
(require 'paren)
(turn-on-global-paren)

(defvar *comment-symbols* ";; "
  "自分で作ったcomment-regionのための変数。
言語ごとのコメントのコメントがあればそれを使ったほうがいいのだけれど"
)

(defmacro do-action-region (name action)
  `(defun  ,name (beg end) (interactive "r")
       (when (> beg end)
	 (let ((tmp beg))
	   (setf beg end)
	   (setf end tmp)))
     (save-excursion
       (goto-char beg)
       (while (<= (point) end)
	 ,@action))))

(do-action-region comment-region
		  ((unless (= (progn (goto-eol) (point))
			      (progn (goto-bol) (point)))
		     (insert *comment-symbols*))
		   (next-virtual-line)))

(let ((reg (concat "^\\([ \t]*\\)"*comment-symbols*)))
  (do-action-region uncomment-region
		     ((beginning-of-line)
		      (replace-regexp reg "\\1")
		      (next-virtual-line))))

(global-set-key '(#\C-c #\q) 'comment-region)
(global-set-key '(#\C-c #\C-q) 'uncomment-region)

(defun execute-shell-command-to-string (cmd)
  (let ((buf (get-buffer-create "*test")))
    (let ((str
	   (unwind-protect
	       (save-excursion
		 (execute-shell-command cmd :OUTPUT buf)
		 (set-buffer buf)
		 (buffer-substring (point-min) (point-max)))
	     (delete-buffer buf))))
      (substitute-string str "\n" ""))))

emacsとの違い(あとでまとめる)

*1:あとで一部siteinit.lに移行する