普通に設定書くだけで出来る事を知った。
ふとした事で、以下の記事を目にしたので、tscreen や screen の最新版にパッチを当てて試してみました。
この作業の中で、最新(開発)版の screen では縦分割に対応している事を知り、tscreen では vim などに変な文字が表示される問題に遭遇していた事もあって、tscreen のお試し期間を終え screen に戻しました。
また、pbcopy が日本語を扱えなかった問題にも遭遇しましたが、以下の記事を参考にして対応できました。
更に以下の記事も見つけ、パッチを当てる必要がなさそうだという事も知りました。
man ページを読みながら、紆余曲折を経て、以下の設定で一応動作しているかなというところまでたどり着きました。
bindkey -m ' ' eval 'stuff \040' 'writebuf $HOME/tmp/screen-exchange' 'exec !!! sh -c "cat $HOME/tmp/screen-exchange | pbcopy"' bindkey -m Y eval 'stuff Y' 'writebuf $HOME/tmp/screen-exchange' 'exec !!! sh -c "cat $HOME/tmp/screen-exchange | pbcopy"' bindkey -m y eval 'stuff y' 'writebuf $HOME/tmp/screen-exchange' 'exec !!! sh -c "cat $HOME/tmp/screen-exchange | pbcopy"' bindkey -m W eval 'stuff W' 'writebuf $HOME/tmp/screen-exchange' 'exec !!! sh -c "cat $HOME/tmp/screen-exchange | pbcopy"'
pbcopy がファイルを引数にとれれば簡単だったはずですが、標準入力からしか読み取れない様なので、exec コマンドの制限上(コマンドとその引数のみが指定できる雰囲気)こんな形になりました。
正直よく理解できないままなので、間違っていたり非効率的だったりおかしなな方法だったりするかと思います。
ひとまず、コードを改変する事無く対応できた(かも)という事で満足しておきます。

