2011-03-16

tmuxの複数セッション間でバッファを共有する方法

マルチモニタで開発してる場合、それぞれのモニタ毎に端末アプリをたちあげることになりますが、端末ウィンドウ間でコピペをしたいときにマウスを使用せざるをえなくなってめんどうです。
emacsをサーバモードで起動すれば大抵の場合は事足りるのですが、いつもemacsだけで完結できるとは限りません。
というわけでtmuxとかscreenをつかってコピペするわけですが、tmuxのセッションをまたいでバッファを共有する方法をしらなかったのでメモ。

manをみたところ、セッションをまたいでバッファをやりとりするのに以下コマンドが使えそうです。

copy-buffer [-a src-index] [-b dst-index] [-s src-session] [-t dst-session]
(alias: copyb)
             Copy a session paste buffer to another session.  If no sessions are specified, the current one is used instead.

毎回コマンドをたたくのはめんどうなので、以下のような設定をかきました

unbind C
bind C run-shell "for i in `tmux list-session | awk -F':' '/attached/ {print \$1}'`; do tmux copyb -t \$i  ; done"

dst-sessionは明示しないとだめなので、list-sessionでセッション一覧を取得して、アタッチ中のものすべてにコピーするようにしました。

なお、これも含めてその他もろもろの設定ファイルは以下においてます

0 件のコメント:

コメントを投稿

ZenBackWidget