web-dev-qa-db-ja.com

リモートtmuxセッションとローカルMac OSペーストボードの間でペーストボードを同期します

セットアップ:MacOSでiTerm2を使用してリモートサーバーに接続します。リモートサーバーはtmuxを実行します。この場合、ファイルを開いてvimセッションで編集します。

問題:リモートtmuxセッションとローカルiTermクライアント間でコピー/貼り付けができません。 iTerm2のalt/option +マウス選択を使用してテキストを選択できますが、これは複数のvimペイン/ tmuxペインにコピーされます-悪いです。

Tmuxペインで選択をリモートペーストボードとローカル(MacOSペーストボード)の間で同期させるためのエレガントなソリューションはありますか? reattach-to-user-namespace を見てきましたが、私が望むことを実行しないことは間違いありません。

19
bhargav

そのため、サーバーにSSHでログインするときに、リバーストンネリングを使用して、OSXマシンに戻ってコマンドpbcopyを送信することができます。

ssh -R 1234:localhost:22 remoteServer

1234をリモートサーバーの開いているポートに置き換えます。その後、リモートサーバーで次のコマンドを実行できます。

tmux save-buffer - | ssh -p 1234 localhost pbcopy

これでOSXに接続し直し、tmuxコピーバッファーの内容をOSXに送信する必要があります。 sshキーを使用して、OSXマシンにパスワードを入力しないようにすることができます。

それがうまくいく場合は、tmuxキーバインディングを作成できます。

bind C-c run "tmux save-buffer - | ssh -p 1234 localhost pbcopy"

これが機能するためには、OSXでリモート共有をオンにする必要があります。

セカンダリオプション:

OSXを使用しているため、iTerm2も使用している場合は、インストールを検討してください http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20120203サーバー上の.tar.gz&can = 2&q =

これは基本的に、「-C」フラグをサポートするカスタムtmuxです。このフラグにより​​、ウィンドウ、ペイン、およびそれらのすべての分割がiTerm2に渡されます。

13
pope

この問題はより良い方法で解決されたと思います。

http://seancoates.com/blogs/remote-pbcopy

3

より簡単な方法

  1. XQuartzがクリップボードを同期できるようにする
  2. リモートサーバーに接続するときにX11転送を使用する
  3. Tmux.confのようにバインディングを作成します:bind-key C-c run ‘tmux show-buffer | xsel -pbi'
    • 選択したXクリップボードはパイプの後にあります

必要に応じて、vimでも同様のバインディングを実行できます。

2
demure

教皇の答えのおかげで、私はtmux -Cヒントを試しました。

  1. 現在のtmuxバージョンは-Cフラグをサポートしているため、何もインストールする必要はありません。
  2. -CCは常に機能するとは限らないため、-Cを使用してください。

したがって、tmux -CC(またはtmux -CC attach)を使用すると、tmuxはさらに優れています。

0
mamiu