7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

tmux 1.8 + Mac or X 環境 + zsh or fish でクリップボード設定

Last updated at Posted at 2013-11-01

会社では Mac + fish、
自宅では Ubuntu + fish, Mac + zsh と、
不思議な環境で作業しており、tmux のクリップボード設定ではまったのでメモ。

tmuxのバージョンを1.8にアップデートして、クリップボードの設定」を基本に設定を行う。

また Mac では、下記も設定しておかないと、ターミナル上で Vim を使うときにキーバインドが反応しなくて困った。

set-option -g default-command "reattach-to-user-namespace -l $SHELL"

Mac は以上で問題ないが、共通の設定を Ubuntu 環境でも使いまわそうとすると reattach-to-user-namespace がない為、default-command の時点で強制終了する。

ならば reattach-to-user-namespace があるかどうかを判断すれば良いと下記の設定をすると、今度は fish でコケる(zsh では問題ない)。

set -g default-command "which reattach-to-user-namespace >/dev/null 2>&1 && reattach-to-user-namespace -l $SHELL"

これは fish の文法が他のシェルスクリプトと異なっているのが原因。&&;and としないといけない。

二つのシェルでも使える様にするにはどうしたら良いのか…

##別にシェルスクリプト用意して、そいつを実行したら良いじゃない

て事で、新たにシェルスクリプトを書いて対応した。

~/.tmux
├── bin
│   ├── reattach-to-user-namespace
│   └── tmux-copy
└── tmux.conf -> ~/.tmux.conf

~/.tmux/bin/reattach-to-user-namespace
#!/bin/bash

if type reattach-to-user-namespace >/dev/null 2>&1; then
  reattach-to-user-namespace $@
else
  exec $@
fi
~/.tmux/bin/tmux-copy
#!/bin/bash

if type pbcopy >/dev/null 2>&1; then
  pbcopy
elif type xclip >/dev/null 2>&1; then
  xclip -sel c
elif type xsel >/dev/null 2>&1; then
  xsel -ib
fi
.tmux.conf
# Setup 'v' to begin selection as in Vim
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy y copy-pipe '~/.tmux/bin/reattach-to-user-namespace ~/.tmux/bin/tmux-copy'

# Update default binding of `Enter` to also use copy-pipe
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe '~/.tmux/bin/reattach-to-user-namespace ~/.tmux/bin/tmux-copy'

set-option -g default-command '~/.tmux/bin/reattach-to-user-namespace -l $SHELL'

~/.tmux/bin/reattach-to-user-namespace~/.tmux/bin/tmux-copy に実行権限付けてあげる。

参考:Way to ignore this script if not on OS X?

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?