WSL2 上の VS Code で Paste Image 拡張を使う

WSL2 と VS Code WSL Remote 拡張で Linux 上の Markdown や Asciidoc を編集している場合に、Paste Image 拡張や Asciidoc 拡張のクリップボード経由での画像挿入を有効にする方法です。

ワークアラウンドではありますが、WSL2 側 Paste Image 拡張のファイルを次のように置き換えます。(Asciidoc 拡張も同ファイル res/linux.sh があります)

~/.vscode-server/extensions/mushan.vscode-paste-image-1.0.4/res/linux.sh

#!/bin/sh
# change current directory
cd `dirname $0`
# set dist path
DISTPATH=//wsl.localhost/Ubuntu-22.04 # <1>
# call Windows PowerShell
powershell.exe -ExecutionPolicy Bypass -File pc.ps1 ${DISTPATH}$1

<1> 行はお使いの WSL2 Linux ディストリビューションのパスを設定してください。

$ pwd
/home/hiromasa
$ powershell.exe -Command "pwd"
Path
----
Microsoft.PowerShell.Core\FileSystem::\\wsl.localhost\Ubuntu-22.04\home\hiromasa

WSL2 から powershell.exe を呼び出せることを利用して、linux.sh から Windows 版の Paste Image の pc.ps1 を呼び出し Windows 側のクリップボードから画像を取得し、画像出力先を WSL2 側のパスになるような処理をしています。(VS Code のセキュリティーポリシー外の世界で動作しますので、動作をご理解の上設定してください)

なお、拡張のアップデート時にはファイルが上書きされると思いますので再パッチしてください。

関連

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です