OS Xのクリップボードとtmuxのクリップボードを共通化する
OS Xのクリップボードとtmuxのクリップボード *1 を共通にする設定に関するメモです.
なお,tmuxのバージョンは1.9a,reattach-to-user-namespaceのバージョンは2.3です.
1. まずreattach-to-user-namespace入れる
$ brew install reattach-to-user-namespace
簡単.
2. 設定ファイルを書く
.tmux.conf
に設定を書く.
if-shell 'test "$(uname -s)" = Darwin && which reattach-to-user-namespace > /dev/null 2>&1' 'source-file ~/.tmux-reattach-to-user-namespace.conf'
if-shell
使うと,第一引数がtrueの時だけ第二引数を実行してくれて便利.
上記の設定では,「OSがDarwin,つまりOS X」かつ「reattach-to-user-namespaceがパス通ってるところに置いてある」時だけ,~/.tmux-reattach-to-user-namespace.conf
を読みに行くという感じになっています.
で,.tmux-reattach-to-user-namespace.conf
を書く.
set-option -g default-command "exec reattach-to-user-namespace -l $SHELL" unbind -t vi-copy Enter bind -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" unbind ] bind ] run-shell "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"
reattach-to-user-namespace
経由でシェルを起動することで,tmux上でもpbcopy
と
別に.tmux.conf
に書いても良いとは思うんですけど,.tmux.conf
にif-shell
1発書いて「こういう条件の時にこの外部設定ファイル読み込むんですよ〜」と表明したほうがわかりやすい気がしてこうした次第.気分です.
結論
if-shell
は便利