これは可能ですか?
概念的には、ソリューションは、tmux ウィンドウのペイン内の別々の仮想ターミナルで実行される 2 つの vim インスタンスから、別々の地理的リージョンにある別々のマシン上の別々のターミナルに存在するものまで、考えられる多くの構成に適用する必要があります。つまり、vim は 2 つの別個のシェル プロセスによってホストされており、いずれにせよ、それらは既に tmux の下にあります)。
私がこれを熟考するように促したケース:
両方とも vim が開いている 2 つの tmux パネルがあり、Vim ヤンク/ペーストを使用してファイル間でコピーしたいと考えています。
ただし、Vim の同じインスタンスで両方を実行している場合にのみ機能するため、次のいずれかを行う必要があります。
- tmux のコピー/貼り付け機能を使用してコンテンツを取得します (これはやや面倒で面倒です)、または
- 端末 (PuTTY、iTerm2) のコピー/貼り付け機能を使用してコンテンツを取得します (これも同様に面倒ですが、ネットワーク遅延の影響を受けませんが、これは特定のサイズのテキスト ペイロードまでしか機能せず、その時点でこの方法でコピーします端末がファイルの現在表示されていない部分の内容を認識していないため、まったく機能しません)、または
- 分割バッファまたはタブのいずれかのVimインスタンスの1つでファイルを手動で再度開いてから、他のターミナルコンテキストを閉じると、Vimバッファの履歴/コンテキスト、およびおそらくシェルの履歴/コンテキストが失われます(大きなペイロードの場合は1よりもはるかに面倒ですが、小さなペイロード)。
これはちょっとした PITA であり、既に vim を実行している適切な端末に切り替えてファイルを開くという先見の明があれば、すべて回避できますが、ワークフローの運命と習慣が便利だったものと一致することはめったにありません。
問題は、独立して実行されているvimインスタンス間でバッファを結合できるようにするコマンドまたは単純に構築された(シェル)スクリプトの可能性があるかどうかです。Google に適切に回答してもらうのに苦労しています。
適切な回答がない場合 (または、Vim がそのインスタンス間でバッファーを転送する機能を持っていないと合理的な確実性で判断された場合)、上記のアプローチ 3 の適切な実装 (キーにバインド可能) は受け入れられます。
その間、vim の設定をさらにカスタマイズし、vim のインスタンスをできるだけ少なくするように強制することに戻ります。