2026/08/13(木)VSCodeでクリップボードの画像をMarkdownに貼り付ける

投稿日:

Windows上でもリモートのUbuntuでも動作した方法。

拡張機能不要なのでPaste ImagePaste Image Markdownの様なものを捨てられる。

確認環境

Env Ver 備考
VSCode 1.133.0
Windows 11 Pro 25H2 ホスト環境
Ubuntu 24.04 LTS WindowsからUbuntuにSSH経由でVSCodeのリモート接続した環境
ms-vscode.remote-explorer 0.5.0

方法

settings.jsonに以下の設定を足すと、開いてるMarkdownファイルのあるディレクトリにassets/ディレクトリが生えてきて、そこにペーストされる。

  "markdown.copyFiles.destination": {
    "*": "${documentDirName}/assets/${fileName}"
  }

あとがき

Windows上で作業しているとMSYS2の起動の遅さや、ファイル共有などにフラストレーションが溜まっていたが、Ubuntu上で動かせるならこれらは解決できるので良かった。

2026/04/22(水)WindowsTerminalとVSCodeからMSYS2のzshでHomeキーやEndキーが効かなくなっていた問題を対応した

更新日:
投稿日:

起きていた問題

WindowsTerminalやVSCodeでMSYS2のzshを使用しているときにHome, Endを押しても.zshrcで定義したコマンドが発動しない状態で、WindowsTerminalではブザーマークが表示される状態だった。

msys2-x86_64-20210725では起きていなかったはずだが、msys2-x86_64-20260322では起きていた。

問題が起きていた時の.zshrc上の定義

# Home
bindkey "\e[H" beginning-of-line
# End
bindkey "\e[F" end-of-line

解決した方法

.zshrc上の定義を以下に変更した。

# Home
bindkey "^[[H" beginning-of-line
# End
bindkey "^[[F" end-of-line

変更差分

 # Home
-bindkey "\e[H" beginning-of-line
+bindkey "^[[H" beginning-of-line
 # End
-bindkey "\e[F" end-of-line
+bindkey "^[[F" end-of-line

あとがき

ググっても当該現象が引っかからず(最近のGoogleはアホである)、Claude Opus 4.6に調べさせても見当違いの結果しか返ってこなかったが、GitHubのIssueを漁ったところ、Shift+Arrow keys insert characters in WSL/Bash; Windows Terminal rewrites explicit selection keybindings to "id": null #18921というものがあり、そのIssueに貼ってあった設定コメントに、動きそうなコードがあったため、試してみたら動いたというのが解決の道筋である。

# Home/End (both CSI and SS3)
bindkey -M emacs '^[[H'  _home_nosel
bindkey -M emacs '^[OH'  _home_nosel
bindkey -M emacs '^[[F'  _end_nosel
bindkey -M emacs '^[OF'  _end_nosel

これで動くなら -M emacs を抜いて、_home_noselのアサインを変えればいいだけの話である。^[OH'^[OF'はLinux用[1]なのでMSYS2では考慮しなくてよいから、結果として前述にある「解決した方法」の内容でよくなるという寸法だ。

参考までにFreeBSDと同じコードになっているため、FreeBSDと設定を共有できる。なお、少なくともUbuntuとは異なるため、Linuxとは共有できないと思う。知らんけど。


  1. 私はMSYS2, FreeBSD, Linux用の.zshrcを作っているため、これを判断できたという話