- ローカルマシン: Mac (iTerm2)
- リモートマシン: Linux (ROOT権限なし)
という状況でtmuxのコピーモードでコピーしてきたものをMacで扱いたい。
C-b zでズームしてからoptionキー押しながらマウスでコピーでもいいんだけど(iTerm2のみ?、ズームしないと複数行コピーするときに隣のペインも選択してしまう)、キーボードだけでやりたい。そこでxselを使う。
ROOT権限ないので
sudo apt-get install xselとかできない。
cd ~/software
wget http://www.vergenet.net/~conrad/software/xsel/download/xsel-1.2.0.tar.gz
tar zxvf xsel-1.2.0.tar.gzインストール先を$HOME/localに指定してビルド、インストール。
./configure --prefix=$HOME/local
make
make isntallで完了。
which xselすると
~/local/bin/xsel
と表示される。
Macで何かコピーしてからLinuxで
xselとするとコピーした文字列が表示された。まあこれはもともとターミナル上でcmd+vすればよいので困ってないんだけど。
Linuxで
echo $HOME | xsel -biとして、Macでcmd+vするとホームディレクトリのパスが表示された。というわけでクリップボードの共有ができた。
を参考にさせていただいた。
~/.tmux.confに以下を記述すると、remoteのtmuxのコピーモードでコピーした文字列がlocalのMacのクリップボードにも入った。
unbind -t emacs-copy M-w
unbind -t emacs-copy C-w
bind-key -t emacs-copy M-w copy-pipe "xsel -bi"
bind-key -t emacs-copy C-w copy-pipe "xsel -bi"
さらにC-kもパイプする方法をググったけど見つからなかった。ちなみに
tmux list-keys -t emacs-copy
するとキーバインディング一覧が出る。
ここを参考にすれば、簡単にMacとLinuxで設定を分けられそう。.tmux.confのif文てこんな簡単に書けるのか。分かりやすくて良い。