xselを準備する
-
リモートのtmuxのコピーモードとクリップボードを共有する
- リモート:
yum install xsel
でxsel
を入れる
- リモート:
-
LinuxからMacへX11 Forwarding - 日々の報告書
- リモート:
X11Forwarding
をyes
に変更してsshd
を再起動 - ローカル:
xhost + ###.###.###.###
を実行 (###.###.###.### はリモートのIPアドレス)
- リモート:
-
MacでLinuxへssh -Xする
- ローカルMac: XQuatzを入れた後、Macを再起動
xselの動作確認を行う
- リモートで環境変数
DISPLAY
が空でない事を確認 - ローカルでなんかをコピーし、リモートで
xsel
を実行 - リモートで
echo $HOME | xsel -bi
を実行、ローカルでペーストを実行
既に tmux
を起動済の場合 DISPLAY
が空の事があるので、その時は手動で設定。
export DISPLAY=localhost:##.#
tmuxを設定する
-
リモートのtmuxのコピーモードとクリップボードを共有する
-
X
でクリップボードを扱うコマンドはxsel
- Mac でクリップボードを扱うコマンドは
pbcopy
とpbpate
-
以下の設定を $HOME/.tmux.conf
に追加。
# `tmux` のコピペとクリップボードの連携
# Linux with xsel
if "which xsel" "bind-key -t vi-copy y copy-pipe 'xsel -bi'"
if "which xsel" "bind-key -t vi-copy Enter copy-pipe 'xsel -bi'"
if "which xsel" "bind-key ] run 'tmux set-buffer -- \"$(xsel -bo)\"; tmux paste-buffer'"
# Mac
if "which pbcopy" "bind-key -t vi-copy y copy-pipe 'pbcopy'"
if "which pbcopy" "bind-key -t vi-copy Enter copy-pipe 'pbcopy'"
if "which pbpaste" "bind-key ] run 'tmux set-buffer -- \"$(pbpaste)\"; tmux paste-buffer'"
最後に source-file $HOME/.tmux.conf
で設定ファイルを再読込。
リモートの Neovim でも共有する
この記事を読んで設定ファイルに以下を追加した。
set clipboard+=unnamedplus