xyzzyのkill-bufferとclipboardを共有する

.xyzzyなどに以下を追加

;;kill-bufferとclipboardを共有させる(selectionは使わない)
(defmacro sort-beg-end (beg end)
  `(when (> ,beg ,end)
    (let ((tmp ,beg))
      (setf ,beg ,end)
      (setf ,end tmp))))

(defmacro compound-selection-and-killbuffer (name action)
  `(defun ,name (beg end) (interactive "r")
	   (sort-beg-end beg end)
	   (,action beg end)
	   (yank-to-clipboard)))

(compound-selection-and-killbuffer
 my-kill-region kill-region)

(compound-selection-and-killbuffer
my-copy-region copy-region-as-kill)

(defun my-kill-line () (interactive)
  (kill-line) (yank-to-clipboard))

(global-set-key #\C-w 'my-kill-region)
(global-set-key #\C-\Insert 'my-copy-region)
(global-set-key #\C-k 'my-kill-line)
(global-set-key #\C-y 'paste-from-clipboard)