- ローカルマシン: 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文てこんな簡単に書けるのか。分かりやすくて良い。