リモートホストでtmuxを使っているときに、tmuxでコピーしたテキストを手元のMac上のクリップボードに入れる方法です。

https://github.com/wincent/clipper を使います。

インストール

手元のMacで実行

brew install clipper

インストールするとclipperが起動して、8377ポートでListen状態になります。

リモートホストにアクセスする.ssh/config

Host host.example.org
  RemoteForward 8377 localhost:8377

リモートホストでListenしているポートを手元のマシンに転送します。

リモートホストでのtmux.conf

bind-key -t vi-copy Enter copy-pipe "nc localhost 8377"

を追記。(tmuxバージョン1.8以上を使う)

tmuxのバージョン確認方法

tmux -V

使い方

tmuxでコピーモードにして範囲選択+Enterで、Macのクリップボードへ選択したテキストがコピーされます。

$HOME/.tmux.confの例

下記の設定例では、プレフィックスキーをCtrl+tに、viと同じようにカーソル移動、選択ができるようにしています(最低限の設定なのでその他の設定はご自由に)。

unbind C-b
set -g prefix ^T
bind a send-prefix
bind ^y copy-mode
set-window-option -g mode-keys vi
bind-key -t vi-copy V select-line
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy C-v begin-selection
bind-key -t vi-copy Enter copy-pipe "nc localhost 8377"