tmuxを使っているとコピー・ペーストがOS X上の他のアプリケーションと共有できない。
原因
OS Xはクリップボードを使うさいに、pbcopy
とpbpaste
というコマンドラインユーティリティを用いている。
しかしtmux上では上記ユーティリティが使用できないことがコピー・ペーストが共有できない理由のよう。
pbcopy
とpbpaste
をtmux上でも使えるようにするのが今回のゴール。
iTerm2
先にiTerm2の下記設定を無効にしておく。
Preferences > General > Applications in terminal may access clipboard
tmux
pbcopy
とpbpaste
を使えるようにする。
まず下記をインストール。
$ brew install reattach-to-user-namespace
インストールしたら~/.tmux.conf
に下記を追記する。
~/.tmux.conf
# Mac OS X pasteboardを使用できるようにする
set-option -g default-command "reattach-to-user-namespace -l zsh"
# コピーモードでvimキーバインドを使う
setw -g mode-keys vi
# 'v' で選択を始める
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
# `Enter` でもcopy-pipeを使う
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
# ']' でpbpasteを使う
bind ] run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"
最後にtmuxの設定を読み込む。
$ tmux source-file ~/.tmux.conf