X のないサーバー上のターミナル アプリケーションのクリップボードを同期するにはどうすればよいですか?

X のないサーバー上のターミナル アプリケーションのクリップボードを同期するにはどうすればよいですか?

X サーバーを備えたマシンでは、クリップボードを使用して、selectionGUI とターミナル プログラム間でコピー/貼り付けを同期してきました。現在、X のないサーバーがあり、ターミナル アプリ ( と 、 など) 間でコピー/貼り付けを同期したいとzsh考えvimtmuxいます。後で、そのクリップボードを、Linux サーバーに SSH で接続するために使用している Mac のシステム クリップボードとさらに同期したいと考えています。

そのような設定は可能でしょうか?具体的には、

  • これは、X11 を実行せずにターミナル アプリケーション間でコピー/貼り付けを同期するための Linux 用の共有クリップボードですか?

  • xselこれに似たツールはありますかxclip?

  • さらに良いことに、X サーバーを実行しても実行していなくても機能し、両方のシナリオで同じ構成/ドットファイルを使用できるようなツールはありますか?

  • 最後に、これは少し別の問題だと認めますが、このクリップボードを SSH クライアントのクリップボードと同期するにはどうすればよいでしょうか?

答え1

ターミナル アプリケーションには共通のクリップボードはありません。tmux、zsh、vim にはそれぞれ独自のクリップボードがあります。

tmux には、エスケープ シーケンス ( オプション) を使用してコピーしたテキストを外部端末に送信するメカニズムset-clipboardと、クリップボード ( refresh-client -l) を読み取るメカニズムがあります。この機能をサポートしているのは X 端末のみであり、すべての端末がサポートしているわけではありません。

tmux も同じエスケープ シーケンス (OSC 52) をサポートしており、tmux 内のアプリケーションは最新の貼り付けバッファを読み取ることができます (set-clipboardが に設定されている場合on)。ただし、私の知る限り、これを使用するアプリケーションはほとんどありません。

tmux では、 コマンドを使用して貼り付けバッファをファイルまたは標準出力に保存しsave-buffer、 コマンドを使用して読み込むこともできますload-buffer。これはおそらく OSC 52 よりも使いやすいでしょう。

これらの機能のいずれかを使用してクリップボードを設定および取得する zsh および vim 用のスクリプトを作成することが可能であると考えています。

つまり、すべてを tmux 内で実行し、tmux を使用してクリップボードを保持し、vim、zsh などからクリップボードを取得および設定するスクリプトをいくつか記述することで、何かを組み立てることはできますが、既存の解決策がないため、自分で行う必要があると思います。

関連情報