WindowsでVSCodeを動かし、VSCodeの統合ターミナルでWSLのUbuntuのシェルを動かし、そこでtmuxを使っているということでいいですよね。
Ubuntu側のtmuxでコピーした内容をWindowsのクリップボードにもコピーするには、Ubuntu側で動作するxselというコマンドを使います。あなたのUbuntuにインストールされていなければ、
でインストールしてください。このxselコマンドを-biオプション付きで実行すると、標準入力の内容をUbuntu側のクリップボードにコピーします。
次に、tmuxの設定ファイル~/.tmux.confに以下のような内容を設定します。
bind-key -T copy-mode-vi Enter send -X copy-pipe-and-cancel "xsel -bi"
bind-key -T copy-mode C-w send -X copy-pipe-and-cancel "xsel -bi"
コピーモードのキー操作をvi風にしているならcopy-mode-viを含むほう、標準の(Emacs風)キー操作のままならcopy-modeを含むほうが使われます(使う方の行だけ書いてもOK)。また、コピーを完了するキー操作のEnterやC-w(Ctrl-Wキー)はお好みで変更して構いません。
設定ファイルを変更後は、使用中のtmuxをすべて終了してから再度tmuxを起動してください。実行中のtmuxが残っている状態では、設定ファイルの変更が有効になりません。
その後、tmuxをコピーモードにして、さきほど設定したコピーを完了するキー操作を行なうと、send -X copy-pipe-and-cancel "xsel -bi"が実行されて、tmuxでコピーした内容がパイプ経由でxselコマンドに送られ、Ubuntu側のクリップボードにコピーされます。すると、WSLの機能により(文字エンコーディングが適切に変換された上で)Windows側のクリップボードにもコピーされます。
Ubuntu 22.04にアップグレードした場合
WSLのUbuntuを22.04にアップグレード(あるいは新規にインストール)した場合は、tmuxのバージョンが3.2aに上がります。バージョン3.2以降では、設定がより容易になっていおり、tmuxの設定ファイル~/.tmux.confに以下の内容を設定するだけです。
set -s copy-command 'xsel -bi'
これだけで、コピーモードでのコピーを完了するキー操作のすべてで、コピーした内容がパイプ経由でxset -biに送られるようになります。つまり、古いtmuxで設定していたbind-key ...の設定は不要になるので、コメント化(あるいは削除)してください。
余談
実は、Windowsにもclip.exeという「標準入力をWindowsのクリップボードにコピーする」コマンドが標準で用意されています。通常のWindowsでは、C:\Windows\System32フォルダーにあるはずです。
現在のWSLなら、Windows用のツールをそのままUbuntuのシェルから実行できるので、わざわざxselコマンドをインストールしなくても、clip.exeを使えば代わりになりそうですよね。実際にやってみると、英数字はコピーできていますが、日本語が文字化けしてしまいます。
原因は、UTF-8エンコードの文字列がパイプ経由でそのままclip.exeに渡されるためです。実際に、clip.exeの手前にnkfを噛まして、UTF-8からBOMなしUTF-16(リトルエンディアン)に変換するようにすれば文字化けは解消します。もっとも、これはWSLがクリップボードに関してやっていることと同じなので、今回はxselでUbuntu側のクリップボードにコピーし、文字エンコーディングの変換はWSLに任せています。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。