log

Emacs と Mac のクリップボードを共有する


コピペが不便なので、いつもの如く調べてみたら設定できた。



クリップボード共有は 若き日の過ち: キルリングとクリップボードの共有(とりあえずMac) に書いてある通りに設定した。



ただ、現状の init.el は Linux と Mac 環境で共有してるので、できれば両方で使える状態に保ちたい。



いい方法無いかなーと調べてたらひとつの .emacs で設定を書き分けるための Tips。 - 日々、とんは語る。にて環境を判定する方法が書かれてたので、それを組み合わせた結果うまくいった。



;; system-type predicates
;; from http://d.hatena.ne.jp/tomoya/20090807/1249601308
(setq darwin-p (eq system-type 'darwin)
linux-p (eq system-type 'gnu/linux)
carbon-p (eq system-type 'mac)
meadow-p (featurep 'meadow))

; Emacs と Mac のクリップボード共有
; from http://hakurei-shain.blogspot.com/2010/05/mac.html
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))

(defun paste-to-osx (text &optional push)
(let *1
(let (process-send-string proc text)
(process-send-eof proc))))

(if (or darwin-p carbon-p)
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx">*2



これで Emacs とその他との連携が楽になる。

*1:process-connection-type nil

*2:proc (start-process "pbcopy" "*Messages*" "pbcopy"))) (process-send-string proc text) (process-send-eof proc)))) (if (or darwin-p carbon-p) (setq interprogram-cut-function 'paste-to-osx) (setq interprogram-paste-function 'copy-from-osx