ubuntuの開発環境を整えるにあたり、.tmux.conf
をmacからコピーしてきたがmacでしか動かない設定がベタ打ちになっており、そもそも起動しなかったのでmac, linuxで共存できるように設定を更新した。
tmux起動して [exited] 62;9;c
とか言い始めたらまず間違いなくこれ
reattach-to-user-namespace
これを呼び出してるから
解決策
.tmux.conf
はif-shell
で制御構文が書けるのでmac, linuxでそれぞれの設定を書く。
mac
tmux.conf
if-shell "uname | grep -q Darwin"
linux
厳密にはxselでclipboardが利用できるかどうか調べて実行する。
tmux.conf
if-shell 'type xsel'
最終的にこうなった
tmux.conf
# クリップボード共有を有効にする
# for mac
if-shell "uname | grep -q Darwin" \
'set-option -g default-command "reattach-to-user-namespace -l zsh"'
if-shell "uname | grep -q Darwin" \
'bind-key -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"'
# for Linux
# tmuxのbufferとxのclipboardを連携させる
if-shell 'type xsel' \
"bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xsel -ib'"
if-shell 'type xsel' \
"bind-key -T copy-mode-vi Y send-keys -X copy-pipe 'xsel -ib'"
if-shell 'type xsel' \
"bind ] run-shell \
'xsel -ob | xargs -0 -I{} tmux set-buffer -- {} && tmux paste-buffer'"