Mac + tmux + ターミナル上のEmacs でクリップボードを連携する方法
tmux 上で Emacs を利用する場合、
OS のクリップボードとその内容をシームレスに連携するためには多少の手順が必要となる。
手順
1. Emacs の設定
Emacs 初期設定ファイル (~/.emacs/init.el など) に以下の内容を記述。
(defun copy-from-osx () (shell-command-to-string "pbpaste")) (defun paste-to-osx (text &optional push) (let ((process-connection-type nil)) (let ((proc (start-process "pbcopy" "*Messages*" "pbcopy"))) (process-send-string proc text) (process-send-eof proc)))) (setq interprogram-cut-function 'paste-to-osx) (setq interprogram-paste-function 'copy-from-osx)
2. reattach-to-user-namespace のインストール
tmux 内部での Mac OS X クリップボードのやりとり (pbcopy/pbpaste) を可能にするツール。
Homebrew でインストールするのが一番簡単だ。
$ brew install reattach-to-user-namespace
3. tmux の設定
tmux 初期設定ファイル (~/.tmux.conf) に以下の内容を記述し、tmux を再起動。
set-option -g default-command "reattach-to-user-namespace -l zsh"
- 参考: tmux 再起動
$ tmux kill-server
これで
- Mac でクリップボードにコピー => tmux 上の emacs で貼付け (C-y)
- tmux 上の emacs でコピー (M-w) => Mac で貼付け
が可能となった。