ELispをほとんど書いていないので、正しいやり方なのか全然わからないが、とりあえずできた。
ただxsel
の動作があまり安定しない。短いテキストなら問題ないが・・・
;; Region to X clipboard
(defun paste-to-tmp-file(data)
(with-temp-buffer
(insert data)
(write-file "/tmp/clipboard")))
(defun xclip-add-region()
(interactive)
(if (region-active-p)
(progn
(paste-to-tmp-file (buffer-substring-no-properties (region-beginning) (region-end)))
(shell-command "xsel -ib < /tmp/clipboard")
(message "%s" (shell-command-to-string "cat /tmp/clipboard")))
(progn
(message "no region"))))
(bind-key "C-c C-c" 'xclip-add-region)