<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>VSCode on ポンコツ地方エンジニアの技術ブログ</title><link>https://blog.ponkotools.com/tags/vscode/</link><description>Recent content in VSCode on ポンコツ地方エンジニアの技術ブログ</description><generator>Hugo -- gohugo.io</generator><language>ja-jp</language><lastBuildDate>Mon, 13 Jul 2026 00:00:00 +0900</lastBuildDate><atom:link href="https://blog.ponkotools.com/tags/vscode/index.xml" rel="self" type="application/rss+xml"/><item><title>VS Code での Git Worktree の使い方</title><link>https://blog.ponkotools.com/posts/2026/07/13/git-worktree/</link><pubDate>Mon, 13 Jul 2026 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2026/07/13/git-worktree/</guid><description>&lt;h2 id="環境"&gt;&lt;a href="#%e7%92%b0%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;環境
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ubuntu 22.04&lt;/li&gt;
&lt;li&gt;Visual Studio Code 1.128.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="事前準備"&gt;&lt;a href="#%e4%ba%8b%e5%89%8d%e6%ba%96%e5%82%99" class="header-anchor"&gt;&lt;/a&gt;事前準備
&lt;/h2&gt;&lt;p&gt;VS Code の設定で、&lt;code&gt;git.detectWorktrees&lt;/code&gt; を ON にします。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="415px" data-flex-grow="173" height="409" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/07/13/git-worktree/01.webp" width="708"&gt;&lt;/p&gt;
&lt;p&gt;ワークツリーの作成だけなら OFF の状態でもできましたが、ワークツリーを切り替えたり削除したりするには ON にする必要がありました。&lt;/p&gt;
&lt;h2 id="ワークツリーの作成"&gt;&lt;a href="#%e3%83%af%e3%83%bc%e3%82%af%e3%83%84%e3%83%aa%e3%83%bc%e3%81%ae%e4%bd%9c%e6%88%90" class="header-anchor"&gt;&lt;/a&gt;ワークツリーの作成
&lt;/h2&gt;&lt;p&gt;ソース管理タブのリポジトリ横のメニューから作成できます。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="335px" data-flex-grow="139" height="512" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/07/13/git-worktree/02.webp" width="716"&gt;&lt;/p&gt;
&lt;p&gt;ブランチの作成と、フォルダの場所を入力します。&lt;br&gt;
デフォルトでは以下のようなフォルダ構成になります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;リポジトリ名
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;リポジトリ名.worktrees
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── ブランチ名
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ワークツリーが作成されたのが確認できます。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="266px" data-flex-grow="110" height="420" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/07/13/git-worktree/03.webp" width="466"&gt;&lt;/p&gt;
&lt;h2 id="ワークツリーを作業ツリーで開く"&gt;&lt;a href="#%e3%83%af%e3%83%bc%e3%82%af%e3%83%84%e3%83%aa%e3%83%bc%e3%82%92%e4%bd%9c%e6%a5%ad%e3%83%84%e3%83%aa%e3%83%bc%e3%81%a7%e9%96%8b%e3%81%8f" class="header-anchor"&gt;&lt;/a&gt;ワークツリーを作業ツリーで開く
&lt;/h2&gt;&lt;p&gt;作成したワークツリー横のメニューから「現在のウィンドウで作業ツリーを開く」または「新しいウィンドウで作業ツリーを開く」を選択します。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="345px" data-flex-grow="144" height="545" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/07/13/git-worktree/04.webp" width="785"&gt;&lt;/p&gt;
&lt;p&gt;あとはいつも通り変更してコミットなどを行います。&lt;/p&gt;
&lt;h2 id="ワークツリーの削除"&gt;&lt;a href="#%e3%83%af%e3%83%bc%e3%82%af%e3%83%84%e3%83%aa%e3%83%bc%e3%81%ae%e5%89%8a%e9%99%a4" class="header-anchor"&gt;&lt;/a&gt;ワークツリーの削除
&lt;/h2&gt;&lt;p&gt;ソース管理タブのリポジトリにて、ワークツリー横のメニューから作成できます。&lt;br&gt;
（右クリックからでもいけます）&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="345px" data-flex-grow="144" height="545" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/07/13/git-worktree/05.webp" width="785"&gt;&lt;/p&gt;
&lt;p&gt;該当のワークツリーを作業ツリーで開いている場合は削除できませんので、その場合はメインリポジトリに切り替えてから削除する必要があります。&lt;/p&gt;</description></item><item><title>Ollama で Gemma4 12B を動かして VS Code から使う</title><link>https://blog.ponkotools.com/posts/2026/06/12/ollama-gemma/</link><pubDate>Fri, 12 Jun 2026 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2026/06/12/ollama-gemma/</guid><description>&lt;h2 id="環境"&gt;&lt;a href="#%e7%92%b0%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;環境
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ubuntu 22.04&lt;/li&gt;
&lt;li&gt;CPU: Intel Core i7-11700&lt;/li&gt;
&lt;li&gt;GPU: RTX 4070 12GB&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="ollama-のインストール"&gt;&lt;a href="#ollama-%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab" class="header-anchor"&gt;&lt;/a&gt;Ollama のインストール
&lt;/h2&gt;&lt;p&gt;以下のページにコマンドが記載されているので、実行します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://ollama.com/download/linux" target="_blank" rel="noopener"
 &gt;https://ollama.com/download/linux&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ curl -fsSL https://ollama.com/install.sh &lt;span class="p"&gt;|&lt;/span&gt; sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;確認&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ollama --version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;ollama version is 0.30.7
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="gemma4-12b-のインストールと起動"&gt;&lt;a href="#gemma4-12b-%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%a8%e8%b5%b7%e5%8b%95" class="header-anchor"&gt;&lt;/a&gt;Gemma4 12B のインストールと起動
&lt;/h2&gt;&lt;p&gt;以下のコマンドを実行するとモデルのダウンロードが始まり、完了後に起動します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ollama run gemma4:12b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/code&gt; が表示されて入力受付待ちになるので、何かメッセージを入力すると応答が返ってきます。&lt;br&gt;
日本語でもいけました。&lt;br&gt;
終了するには &lt;code&gt;Ctrl + d&lt;/code&gt; を入力します。&lt;/p&gt;
&lt;p&gt;尚、ダウンロードだけしたい場合は &lt;code&gt;pull&lt;/code&gt; を使います。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ ollama pull gemma4:12b
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="vs-code-から使う"&gt;&lt;a href="#vs-code-%e3%81%8b%e3%82%89%e4%bd%bf%e3%81%86" class="header-anchor"&gt;&lt;/a&gt;VS Code から使う
&lt;/h2&gt;&lt;h3 id="状態確認"&gt;&lt;a href="#%e7%8a%b6%e6%85%8b%e7%a2%ba%e8%aa%8d" class="header-anchor"&gt;&lt;/a&gt;状態確認
&lt;/h3&gt;&lt;p&gt;Ollama はインストールすれば勝手にサービスとして登録されます。&lt;br&gt;
以下のコマンドで &lt;code&gt;Ollama is running&lt;/code&gt; と返ってくれば OK です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;$ curl http://localhost:11434
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Ollama is running
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;ollama run&lt;/code&gt; を実行しておく必要もありません。&lt;/p&gt;
&lt;h3 id="github-copilot-chat-から使う"&gt;&lt;a href="#github-copilot-chat-%e3%81%8b%e3%82%89%e4%bd%bf%e3%81%86" class="header-anchor"&gt;&lt;/a&gt;GitHub Copilot Chat から使う
&lt;/h3&gt;&lt;blockquote class="alert alert-note"&gt;
 &lt;div class="alert-header"&gt;
 &lt;span class="alert-icon"&gt;📝&lt;/span&gt;
 &lt;span class="alert-title"&gt;注記&lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="alert-body"&gt;
 &lt;p&gt;先に結論として、GitHub Copilot Chat からは上手くいかなかったので、後述の Continue を使いました&lt;/p&gt;
 &lt;/div&gt;
 &lt;/blockquote&gt;
&lt;p&gt;以下に説明がありますが、&lt;code&gt;ollama launch vscode&lt;/code&gt; を実行します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.ollama.com/integrations/vscode" target="_blank" rel="noopener"
 &gt;https://docs.ollama.com/integrations/vscode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ollama が VS Code を検出し、ローカルモデルとの連携設定を支援してくれます。&lt;br&gt;
実行後、以下のような設定画面が表示されます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-gdscript3" data-lang="gdscript3"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;ollama&lt;/span&gt; &lt;span class="n"&gt;launch&lt;/span&gt; &lt;span class="n"&gt;vscode&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Select&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;Visual&lt;/span&gt; &lt;span class="n"&gt;Studio&lt;/span&gt; &lt;span class="n"&gt;Code&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Type&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Recommended&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;minimax&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;m3&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;art&lt;/span&gt; &lt;span class="n"&gt;coding&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="n"&gt;capabilities&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="n"&gt;multimodal&lt;/span&gt; &lt;span class="n"&gt;reasoning&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;support&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;up&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="n"&gt;M&lt;/span&gt; &lt;span class="n"&gt;context&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;kimi&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;k2&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;State&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;of&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;the&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;art&lt;/span&gt; &lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;long&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;horizon&lt;/span&gt; &lt;span class="n"&gt;execution&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;multimodal&lt;/span&gt; &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="n"&gt;swarm&lt;/span&gt; &lt;span class="n"&gt;capability&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;glm&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Long&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;horizon&lt;/span&gt; &lt;span class="n"&gt;agentic&lt;/span&gt; &lt;span class="n"&gt;engineering&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="n"&gt;autonomous&lt;/span&gt; &lt;span class="n"&gt;execution&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;sustained&lt;/span&gt; &lt;span class="n"&gt;iteration&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;qwen3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Reasoning&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;agentic&lt;/span&gt; &lt;span class="k"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;use&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="n"&gt;vision&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;nemotron&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;super&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Reasoning&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;coding&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;agentic&lt;/span&gt; &lt;span class="k"&gt;tool&lt;/span&gt; &lt;span class="n"&gt;use&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;gemma4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;cloud&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Agentic&lt;/span&gt; &lt;span class="n"&gt;workflows&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;multimodal&lt;/span&gt; &lt;span class="n"&gt;reasoning&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;gemma4&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Agentic&lt;/span&gt; &lt;span class="n"&gt;workflows&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;multimodal&lt;/span&gt; &lt;span class="n"&gt;reasoning&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="n"&gt;GB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;downloaded&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;qwen3&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;Agentic&lt;/span&gt; &lt;span class="n"&gt;software&lt;/span&gt; &lt;span class="n"&gt;engineering&lt;/span&gt; &lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="n"&gt;with&lt;/span&gt; &lt;span class="n"&gt;multimodal&lt;/span&gt; &lt;span class="n"&gt;capabilities&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;~&lt;/span&gt;&lt;span class="mi"&gt;28&lt;/span&gt;&lt;span class="n"&gt;GB&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;downloaded&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;More&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="err"&gt;▸&lt;/span&gt; &lt;span class="n"&gt;gemma4&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="n"&gt;b&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;models&lt;/span&gt; &lt;span class="n"&gt;selected&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;press&lt;/span&gt; &lt;span class="n"&gt;tab&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;edit&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;すでにダウンロード済みの &lt;code&gt;gemma4:12b&lt;/code&gt; を選択します。&lt;/p&gt;
&lt;p&gt;VS Code を再起動すると、GitHub Copilot Chat のモデル選択で &lt;code&gt;gemma:12b&lt;/code&gt; が選択できるようになっています。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="337px" data-flex-grow="140" height="304" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/06/12/ollama-gemma/00.webp" width="428"&gt;&lt;/p&gt;
&lt;h4 id="レスポンスでエラー"&gt;&lt;a href="#%e3%83%ac%e3%82%b9%e3%83%9d%e3%83%b3%e3%82%b9%e3%81%a7%e3%82%a8%e3%83%a9%e3%83%bc" class="header-anchor"&gt;&lt;/a&gt;レスポンスでエラー
&lt;/h4&gt;&lt;p&gt;試しに GitHub Copilot Chat から gemma4:12b にメッセージを送ると以下のエラーが返ってきました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Sorry, your request failed. Please try again.
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Client Request Id: 11cba335-5cfd-41d2-93ac-26d191e904f8
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Reason: Response too long.: Error: Response too long. at _G._provideLanguageModelResponse (/usr/share/code/resources/app/extensions/copilot/dist/extension.js:1710:13790) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async _G.provideLanguageModelResponse (/usr/share/code/resources/app/extensions/copilot/dist/extension.js:1710:14793)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;GitHub Copilot Chat の Local Models 機能はまだ比較的新しく、上手くいかない等の報告も多数あるようです。&lt;/p&gt;
&lt;p&gt;なので、GitHub Copilot Chat から使うのは諦めて、後述の continue を使いました。&lt;/p&gt;
&lt;h3 id="continue-から使う"&gt;&lt;a href="#continue-%e3%81%8b%e3%82%89%e4%bd%bf%e3%81%86" class="header-anchor"&gt;&lt;/a&gt;Continue から使う
&lt;/h3&gt;&lt;p&gt;VS Code の拡張機能から Continue をインストールします。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="993px" data-flex-grow="413" height="158" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/06/12/ollama-gemma/01.webp" width="654"&gt;&lt;/p&gt;
&lt;p&gt;インストールしたらサイドバーにアイコンが追加されるので、クリックします。&lt;br&gt;
&lt;code&gt;Select model&lt;/code&gt; から &lt;code&gt;Add Chat model&lt;/code&gt; を選択します。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="294px" data-flex-grow="122" height="485" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/06/12/ollama-gemma/02.webp" width="595"&gt;&lt;/p&gt;
&lt;p&gt;以下のように選択肢、Connect を押します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Provider: Ollama&lt;/li&gt;
&lt;li&gt;Model: Autodetect&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="211px" data-flex-grow="88" height="533" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/06/12/ollama-gemma/03.webp" width="470"&gt;&lt;/p&gt;
&lt;p&gt;すると、モデルで &lt;code&gt;gemma4:12b&lt;/code&gt; が選択できるようになっています。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="464px" data-flex-grow="193" height="285" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2026/06/12/ollama-gemma/04.webp" width="552"&gt;&lt;/p&gt;
&lt;p&gt;これで使えるようになります。&lt;/p&gt;
&lt;h2 id="モデルのロードアンロードについて"&gt;&lt;a href="#%e3%83%a2%e3%83%87%e3%83%ab%e3%81%ae%e3%83%ad%e3%83%bc%e3%83%89%e3%82%a2%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6" class="header-anchor"&gt;&lt;/a&gt;モデルのロード・アンロードについて
&lt;/h2&gt;&lt;p&gt;Ollama は、リクエストが来るとモデルをメモリにロードし、一定時間使われなければ自動でアンロードするそうです。&lt;br&gt;
公式FAQでは、デフォルトではモデルはメモリ上に5分保持され、その後アンロードされると説明されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://docs.ollama.com/faq?utm_source=chatgpt.com" target="_blank" rel="noopener"
 &gt;https://docs.ollama.com/faq?utm_source=chatgpt.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>VS Code で WSL 上の SSH の設定を使って Remote SSH で接続する</title><link>https://blog.ponkotools.com/posts/2026/06/03/vscode-remote-ssh/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2026/06/03/vscode-remote-ssh/</guid><description>&lt;p&gt;以下に Windows の bat ファイルを使って WSL の SSH クライアントを呼び出す方法が書いてあったので、やり方をまとめてみました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://github.com/microsoft/vscode-remote-release/issues/937#issuecomment-578416517" target="_blank" rel="noopener"
 &gt;https://github.com/microsoft/vscode-remote-release/issues/937#issuecomment-578416517&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;尚、上記のやり方だと Windows 側の設定が使えなくなります。
私はそれで問題ありませんが、併用したいという場合の解決策は以下で提示されていました。&lt;/p&gt;
&lt;p&gt;&lt;a class="link" href="https://zenn.dev/kurusugawa/articles/vscode-remote-ssh-with-wsl" target="_blank" rel="noopener"
 &gt;https://zenn.dev/kurusugawa/articles/vscode-remote-ssh-with-wsl&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="概要"&gt;&lt;a href="#%e6%a6%82%e8%a6%81" class="header-anchor"&gt;&lt;/a&gt;概要
&lt;/h2&gt;&lt;p&gt;VS Codeの「Remote - SSH」拡張機能はデフォルトでWindows側のOpenSSH（またはGit for WindowsのSSH）を使用するため、WSL（Linux）側に設定した &lt;code&gt;~/.ssh/config&lt;/code&gt; や鍵、ControlMasterなどの機能を利用することができません。&lt;/p&gt;
&lt;p&gt;解決策は、「Windows側でダミーのバッチファイル（&lt;code&gt;.bat&lt;/code&gt;）を作成し、その中からWSLの &lt;code&gt;ssh&lt;/code&gt; コマンドを呼び出すようにVS Codeに設定する」という方法です。&lt;/p&gt;
&lt;h2 id="設定手順"&gt;&lt;a href="#%e8%a8%ad%e5%ae%9a%e6%89%8b%e9%a0%86" class="header-anchor"&gt;&lt;/a&gt;設定手順
&lt;/h2&gt;&lt;h3 id="1-バッチファイルsshbatの作成"&gt;&lt;a href="#1-%e3%83%90%e3%83%83%e3%83%81%e3%83%95%e3%82%a1%e3%82%a4%e3%83%absshbat%e3%81%ae%e4%bd%9c%e6%88%90" class="header-anchor"&gt;&lt;/a&gt;1. バッチファイル（&lt;code&gt;ssh.bat&lt;/code&gt;）の作成
&lt;/h3&gt;&lt;p&gt;Windows　側の適当なフォルダ（例: &lt;code&gt;C:\Users\ユーザー名\ssh.bat&lt;/code&gt; など）に &lt;code&gt;ssh.bat&lt;/code&gt; という名前のファイルを作成し、以下の内容を記述します。&lt;/p&gt;
&lt;p&gt;※バッチファイルを作成する際は、文字コード（エンコーディング）を &lt;strong&gt;「ANSI」または「UTF-8」&lt;/strong&gt; で保存してください。（UTF-16だと正しく動作しない場合があります）&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;@echo off
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;C:&lt;span class="se"&gt;\W&lt;/span&gt;indows&lt;span class="se"&gt;\S&lt;/span&gt;ystem32&lt;span class="se"&gt;\w&lt;/span&gt;sl.exe bash -ic &lt;span class="s2"&gt;&amp;#34;ssh %*&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-vs-codewindows側の-settingsjson-の編集"&gt;&lt;a href="#2-vs-codewindows%e5%81%b4%e3%81%ae-settingsjson-%e3%81%ae%e7%b7%a8%e9%9b%86" class="header-anchor"&gt;&lt;/a&gt;2. VS Code（Windows側）の &lt;code&gt;settings.json&lt;/code&gt; の編集
&lt;/h3&gt;&lt;p&gt;次に、VS Codeが標準の SSH ではなく、今作成したバッチファイルを使用するように設定します。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Windows側でVS Codeを開きます。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Ctrl + ,&lt;/code&gt; で設定を開き、画面右上の「設定(JSON)を開く」アイコンをクリックして settings.json を開きます。&lt;/li&gt;
&lt;li&gt;以下の2つの設定項目を追加（または既存のものを修正）します。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// 1で作成したバッチファイルの「絶対パス」を指定（バックスラッシュは2つ重ねる）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;remote.SSH.path&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;C:\\Users\\あなたのユーザー名\\bin\\ssh.bat&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// ローカル（Windows）側での不要なサーバープロセスの立ち上げを抑制する
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;remote.SSH.useLocalServer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-リモート接続を実行する"&gt;&lt;a href="#3-%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e6%8e%a5%e7%b6%9a%e3%82%92%e5%ae%9f%e8%a1%8c%e3%81%99%e3%82%8b" class="header-anchor"&gt;&lt;/a&gt;3. リモート接続を実行する
&lt;/h3&gt;&lt;p&gt;設定が完了したら、実際に接続を行います。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;設定を確実に反映させるため、VS Codeを一度完全に閉じて再起動します。&lt;/li&gt;
&lt;li&gt;左下の緑色のリモート接続アイコン（または F1 キーを押して Remote-SSH: Connect to Host&amp;hellip;）をクリックします。&lt;/li&gt;
&lt;li&gt;WSL（Linux）側の ~/.ssh/config に記載されているホスト名（例: oci-ubuntu）を選択します。&lt;/li&gt;
&lt;li&gt;初回接続時のみ「接続先のOSプラットフォーム（Linux / Windows / macOS）」を聞かれるので、Linux を選択します。&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Claude Code の認証情報とチャット履歴を devcontainer とホストで共有する</title><link>https://blog.ponkotools.com/posts/2026/05/13/claude-devcontainer-share/</link><pubDate>Wed, 13 May 2026 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2026/05/13/claude-devcontainer-share/</guid><description>&lt;h2 id="環境"&gt;&lt;a href="#%e7%92%b0%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;環境
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ubuntu 24.04&lt;/li&gt;
&lt;li&gt;VSCode 1.119.0&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="きっかけ"&gt;&lt;a href="#%e3%81%8d%e3%81%a3%e3%81%8b%e3%81%91" class="header-anchor"&gt;&lt;/a&gt;きっかけ
&lt;/h2&gt;&lt;p&gt;devcontainer をリビルドするたびに Claude Code に再ログインするのが地味にストレスでした。さらに、ホスト側で進めていた会話の続きが devcontainer 側からは見えず、「あの修正の文脈どこに残してたっけ」となりがちでした。&lt;/p&gt;
&lt;h2 id="ゴール構成"&gt;&lt;a href="#%e3%82%b4%e3%83%bc%e3%83%ab%e6%a7%8b%e6%88%90" class="header-anchor"&gt;&lt;/a&gt;ゴール構成
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;ホスト・devcontainer のどちらで起動しても &lt;strong&gt;同じ認証情報&lt;/strong&gt; を使える&lt;/li&gt;
&lt;li&gt;ホストで途中まで進めた会話を devcontainer 側でも &lt;strong&gt;そのまま継続&lt;/strong&gt; できる&lt;/li&gt;
&lt;li&gt;リビルドしても再ログイン不要&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="claude-code-が何を見ているかを把握する"&gt;&lt;a href="#claude-code-%e3%81%8c%e4%bd%95%e3%82%92%e8%a6%8b%e3%81%a6%e3%81%84%e3%82%8b%e3%81%8b%e3%82%92%e6%8a%8a%e6%8f%a1%e3%81%99%e3%82%8b" class="header-anchor"&gt;&lt;/a&gt;Claude Code が何を見ているかを把握する
&lt;/h2&gt;&lt;p&gt;設定の前に、Claude Code が以下の 2 つを参照していることを押さえておきます。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;種類&lt;/th&gt;
 &lt;th&gt;場所&lt;/th&gt;
 &lt;th&gt;役割&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;認証情報・設定&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;~/.claude.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;API キーなど&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;セッション履歴&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;~/.claude/projects/&amp;lt;エンコードしたパス&amp;gt;/&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;プロジェクトごとの会話履歴&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;ポイントは、セッション履歴の格納先が &lt;strong&gt;プロジェクトの絶対パスをスラッシュ → ハイフンに変換した名前&lt;/strong&gt; になっていることです。&lt;/p&gt;
&lt;p&gt;例えばホスト側で &lt;code&gt;/home/&amp;lt;username&amp;gt;/&amp;lt;project_name&amp;gt;&lt;/code&gt; を開いていた場合は、&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;~/.claude/projects/-home-&amp;lt;username&amp;gt;-&amp;lt;project_name&amp;gt;/
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;の下に履歴が溜まります。&lt;/p&gt;
&lt;p&gt;つまり、履歴を共有したいなら &lt;strong&gt;ホストとコンテナで「ワークスペースの絶対パス」を一致させる必要がある&lt;/strong&gt; ということです。&lt;code&gt;~/.claude&lt;/code&gt; だけ bind mount しても、コンテナ側のワークスペースパスがホストと違えば別フォルダ扱いになり、履歴は共有されません。&lt;/p&gt;
&lt;h2 id="設定する-2-つのマウント"&gt;&lt;a href="#%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b-2-%e3%81%a4%e3%81%ae%e3%83%9e%e3%82%a6%e3%83%b3%e3%83%88" class="header-anchor"&gt;&lt;/a&gt;設定する 2 つのマウント
&lt;/h2&gt;&lt;p&gt;必要なマウントは性質の違う 2 種類になります。&lt;/p&gt;
&lt;h3 id="1-claude--claudejson-のマウント--コンテナ側ユーザーの-home-に合わせる"&gt;&lt;a href="#1-claude--claudejson-%e3%81%ae%e3%83%9e%e3%82%a6%e3%83%b3%e3%83%88--%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e5%81%b4%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%81%ae-home-%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%82%8b" class="header-anchor"&gt;&lt;/a&gt;1. &lt;code&gt;.claude&lt;/code&gt; / &lt;code&gt;.claude.json&lt;/code&gt; のマウント (= コンテナ側ユーザーの home に合わせる)
&lt;/h3&gt;&lt;p&gt;Claude Code は &lt;strong&gt;そのプロセスの &lt;code&gt;$HOME/.claude&lt;/code&gt;&lt;/strong&gt; を読みに行きます。devcontainer のデフォルトユーザーは &lt;code&gt;vscode&lt;/code&gt; なので、&lt;code&gt;~&lt;/code&gt; は &lt;code&gt;/home/vscode&lt;/code&gt; です。したがってターゲットも &lt;code&gt;/home/vscode/.claude&lt;/code&gt; にします。&lt;/p&gt;
&lt;h3 id="2-ワークスペースのマウント--ホスト側の絶対パスに合わせる"&gt;&lt;a href="#2-%e3%83%af%e3%83%bc%e3%82%af%e3%82%b9%e3%83%9a%e3%83%bc%e3%82%b9%e3%81%ae%e3%83%9e%e3%82%a6%e3%83%b3%e3%83%88--%e3%83%9b%e3%82%b9%e3%83%88%e5%81%b4%e3%81%ae%e7%b5%b6%e5%af%be%e3%83%91%e3%82%b9%e3%81%ab%e5%90%88%e3%82%8f%e3%81%9b%e3%82%8b" class="header-anchor"&gt;&lt;/a&gt;2. ワークスペースのマウント (= ホスト側の絶対パスに合わせる)
&lt;/h3&gt;&lt;p&gt;こちらはセッション履歴のキーになる「プロジェクトの絶対パス」を一致させるのが目的なので、ターゲットを &lt;strong&gt;ホスト側と同じパス&lt;/strong&gt; にします。ホストの &lt;code&gt;~/&amp;lt;project_name&amp;gt;&lt;/code&gt; を開いているなら、コンテナ内でも &lt;code&gt;/home/&amp;lt;username&amp;gt;/&amp;lt;project_name&amp;gt;&lt;/code&gt; にマウントするということです。&lt;/p&gt;
&lt;p&gt;ターゲットの基準が違う (ユーザー基準 vs ホスト基準) のがややこしい部分なので、表にしておきます。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;マウント&lt;/th&gt;
 &lt;th&gt;ターゲット&lt;/th&gt;
 &lt;th&gt;基準&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;~/.claude&lt;/code&gt; &lt;code&gt;~/.claude.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/home/vscode/.claude&lt;/code&gt; &lt;code&gt;/home/vscode/.claude.json&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;コンテナ内ユーザー&lt;/strong&gt; の home&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;ワークスペース&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;/home/&amp;lt;username&amp;gt;/&amp;lt;project_name&amp;gt;&lt;/code&gt; 等&lt;/td&gt;
 &lt;td&gt;&lt;strong&gt;ホスト側&lt;/strong&gt; の絶対パス&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="devcontainerjson-の例"&gt;&lt;a href="#devcontainerjson-%e3%81%ae%e4%be%8b" class="header-anchor"&gt;&lt;/a&gt;devcontainer.json の例
&lt;/h2&gt;&lt;p&gt;上記を踏まえた &lt;code&gt;.devcontainer/devcontainer.json&lt;/code&gt; の抜粋です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-jsonc" data-lang="jsonc"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;my-devcontainer&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;build&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;dockerfile&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Dockerfile&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// ホストの $HOME を build arg として Dockerfile に渡す
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// (workspace の親ディレクトリを事前に作るために使う。後述)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;WORKSPACE_PARENT&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;${localEnv:HOME}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// ワークスペースのマウント先をホスト側の絶対パスと一致させる。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// フォルダ名は localWorkspaceFolderBasename で動的解決するので、
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// ホスト側を rename しても devcontainer.json の編集は不要。
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;workspaceMount&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;source=${localWorkspaceFolder},target=${localEnv:HOME}/${localWorkspaceFolderBasename},type=bind,consistency=cached&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;workspaceFolder&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;${localEnv:HOME}/${localWorkspaceFolderBasename}&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mounts&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="c1"&gt;// .claude / .claude.json はコンテナ内ユーザー (vscode) の home にマウント
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;source=${localEnv:HOME}/.claude,target=/home/vscode/.claude,type=bind,consistency=cached&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;source=${localEnv:HOME}/.claude.json,target=/home/vscode/.claude.json,type=bind,consistency=cached&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;],&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;remoteUser&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;vscode&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;${localEnv:HOME}&lt;/code&gt; は &lt;strong&gt;ホスト側&lt;/strong&gt; の &lt;code&gt;$HOME&lt;/code&gt; (例: &lt;code&gt;/home/&amp;lt;username&amp;gt;&lt;/code&gt;)、&lt;code&gt;${localWorkspaceFolderBasename}&lt;/code&gt; は VSCode が開いているフォルダ名 (例: &lt;code&gt;&amp;lt;project_name&amp;gt;&lt;/code&gt;) に展開されます。両者を組み合わせることで、ホストで開いているパスと完全に同じ絶対パスをコンテナ内に作れます。&lt;/p&gt;
&lt;h2 id="dockerfile-側で親ディレクトリを用意しておく"&gt;&lt;a href="#dockerfile-%e5%81%b4%e3%81%a7%e8%a6%aa%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e3%82%92%e7%94%a8%e6%84%8f%e3%81%97%e3%81%a6%e3%81%8a%e3%81%8f" class="header-anchor"&gt;&lt;/a&gt;Dockerfile 側で親ディレクトリを用意しておく
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;workspaceFolder&lt;/code&gt; に指定したパスの &lt;strong&gt;親ディレクトリ&lt;/strong&gt; がコンテナ内に存在しないと、Dev Containers の起動チェックで「ワークスペースが存在しません」とエラーになります。bind mount はマウント時にターゲットを作ってくれますが、Dev Containers のチェックがそれより先に走るためです。&lt;/p&gt;
&lt;p&gt;そこで Dockerfile 側で親ディレクトリだけ先に作っておきます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-dockerfile" data-lang="dockerfile"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;mcr.microsoft.com/devcontainers/base:bookworm&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# devcontainer.json の workspaceFolder (= ホストの $HOME/&amp;lt;フォルダ名&amp;gt;) と&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c"&gt;# 同じ絶対パスをコンテナ内に用意しておく。&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;ARG&lt;/span&gt; &lt;span class="nv"&gt;WORKSPACE_PARENT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/home/vscode&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;RUN&lt;/span&gt; mkdir -p &lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="si"&gt;${&lt;/span&gt;&lt;span class="nv"&gt;WORKSPACE_PARENT&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ARG のデフォルト値を &lt;code&gt;/home/vscode&lt;/code&gt; にしておけば、build arg を渡し忘れても既存ユーザーのホームが使われるだけで build が壊れることはありません。&lt;/p&gt;
&lt;h2 id="ユーザーは-vscode-のままでよい"&gt;&lt;a href="#%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%81%af-vscode-%e3%81%ae%e3%81%be%e3%81%be%e3%81%a7%e3%82%88%e3%81%84" class="header-anchor"&gt;&lt;/a&gt;ユーザーは vscode のままでよい
&lt;/h2&gt;&lt;p&gt;「ワークスペースが &lt;code&gt;/home/&amp;lt;username&amp;gt;/&amp;lt;project_name&amp;gt;&lt;/code&gt; なのに &lt;code&gt;whoami&lt;/code&gt; すると &lt;code&gt;vscode&lt;/code&gt; になっている」というアンバランスさが気になるかもしれませんが、機能上は問題ありません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;devcontainers/base の &lt;code&gt;vscode&lt;/code&gt; ユーザーは UID 1000&lt;/li&gt;
&lt;li&gt;ホスト側の Linux ユーザーも通常 UID 1000&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;UID が一致していれば bind mount したファイルにそのまま読み書きできるためです。&lt;code&gt;vscode&lt;/code&gt; ユーザーが自分の home (&lt;code&gt;/home/vscode/&lt;/code&gt;) 以外の場所で作業すること自体は何も問題を起こしません。&lt;/p&gt;
&lt;p&gt;ユーザー名まで揃えようとすると base image の改造が必要になり、devcontainer features が前提にしている &lt;code&gt;vscode&lt;/code&gt; ユーザーが消えて壊れがちです。&lt;strong&gt;ホストと揃えるのは「絶対パス」だけで十分&lt;/strong&gt; と割り切るのが楽です。&lt;/p&gt;
&lt;h2 id="注意点"&gt;&lt;a href="#%e6%b3%a8%e6%84%8f%e7%82%b9" class="header-anchor"&gt;&lt;/a&gt;注意点
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ホスト側に &lt;code&gt;~/.claude&lt;/code&gt; と &lt;code&gt;~/.claude.json&lt;/code&gt; が存在している必要があります&lt;/strong&gt;。なければ bind mount に失敗します。ホスト側でも一度 Claude Code を起動して認証を済ませておくのが手っ取り早いです。&lt;/li&gt;
&lt;li&gt;セッション履歴を &lt;strong&gt;ホストと同時に書き込まない&lt;/strong&gt; よう注意してください。両方から同じプロジェクトを同時に触ると、ファイルロック等の衝突で履歴が壊れることがあります。基本「どちらか一方で作業する」運用が安全です。&lt;/li&gt;
&lt;li&gt;設定変更後は VSCode の &lt;strong&gt;Dev Containers: Rebuild Container&lt;/strong&gt; でリビルドしないと反映されません。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="まとめ"&gt;&lt;a href="#%e3%81%be%e3%81%a8%e3%82%81" class="header-anchor"&gt;&lt;/a&gt;まとめ
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Claude Code のセッション履歴は &lt;strong&gt;プロジェクトの絶対パスをキー&lt;/strong&gt; にして格納される。&lt;/li&gt;
&lt;li&gt;なので「ホストとセッション共有したい」ならコンテナ内のワークスペースパスをホスト側と完全一致させる必要がある。&lt;/li&gt;
&lt;li&gt;マウント先は 2 系統で基準が違う:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.claude&lt;/code&gt; / &lt;code&gt;.claude.json&lt;/code&gt; は &lt;strong&gt;コンテナ内ユーザーの home&lt;/strong&gt; に合わせる&lt;/li&gt;
&lt;li&gt;ワークスペースは &lt;strong&gt;ホスト側の絶対パス&lt;/strong&gt; に合わせる&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;ワークスペースの親ディレクトリは Dockerfile 側で &lt;code&gt;mkdir -p&lt;/code&gt; しておく必要がある。&lt;/li&gt;
&lt;li&gt;フォルダ名は &lt;code&gt;${localWorkspaceFolderBasename}&lt;/code&gt; で動的解決すれば、rename にも追従する。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>[VSCode] Markdown Preview Enhanced で HTML 出力する際にサイドバーの目次を入れる</title><link>https://blog.ponkotools.com/posts/2023/07/20/markdown-preview-enhanced/</link><pubDate>Thu, 20 Jul 2023 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2023/07/20/markdown-preview-enhanced/</guid><description>&lt;p&gt;ずっとやり方が分からなかったのですが、英語版のマニュアルにやり方が書いてありました。&lt;/p&gt;
&lt;p&gt;サイドバーのTOCを生成するには、VSCode の Markdown Preview Enhanced の設定でスクリプトの実行を有効にする必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://shd101wyy.github.io/markdown-preview-enhanced/#/html?id=configuration" target="_blank" rel="noopener"
 &gt;https://shd101wyy.github.io/markdown-preview-enhanced/#/html?id=configuration&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;尚、上記の情報は現時点の日本語版のマニュアルには書いてありませんでした。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://shd101wyy.github.io/markdown-preview-enhanced/#/ja-jp/html?id=%e8%a8%ad%e5%ae%9a" target="_blank" rel="noopener"
 &gt;https://shd101wyy.github.io/markdown-preview-enhanced/#/ja-jp/html?id=%e8%a8%ad%e5%ae%9a&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="環境"&gt;&lt;a href="#%e7%92%b0%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;環境
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;VSCode 1.80.1&lt;/li&gt;
&lt;li&gt;Markdown Preview Enhanced v0.6.8&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="スクリプトの実行を有効にする"&gt;&lt;a href="#%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88%e3%81%ae%e5%ae%9f%e8%a1%8c%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%99%e3%82%8b" class="header-anchor"&gt;&lt;/a&gt;スクリプトの実行を有効にする
&lt;/h2&gt;&lt;p&gt;拡張機能の設定で &lt;code&gt;enableScriptExecution&lt;/code&gt; で検索すると設定項目が表示されるのでチェックを入れます。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="681px" data-flex-grow="284" height="245" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2023/07/20/markdown-preview-enhanced/01.png" width="696"&gt;&lt;/p&gt;
&lt;p&gt;尚、有効にするとセキュリティリスクがありますので、その点ご注意ください。&lt;/p&gt;
&lt;h2 id="html-の出力"&gt;&lt;a href="#html-%e3%81%ae%e5%87%ba%e5%8a%9b" class="header-anchor"&gt;&lt;/a&gt;html の出力
&lt;/h2&gt;&lt;p&gt;あとはマークダウンのプレビュー画面で右クリックし、HTML に出力するだけでサイドバーに目次が出力されます。&lt;br&gt;
尚、デフォルトではサイドバーは閉じた状態となっていました。&lt;br&gt;
マークダウン内に &lt;code&gt;toc: true&lt;/code&gt; を記述すると、サイドバーが開いた状態となりました。&lt;/p&gt;
&lt;p&gt;以下サンプルです。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;html:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; toc: true
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 見出し1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 見出し2
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;### 見出し3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;### 見出し3
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;# 見出し1
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;## 見出し2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="307px" data-flex-grow="128" height="552" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2023/07/20/markdown-preview-enhanced/02.png" width="707"&gt;&lt;/p&gt;
&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://shd101wyy.github.io/markdown-preview-enhanced/#/html?id=configuration" target="_blank" rel="noopener"
 &gt;https://shd101wyy.github.io/markdown-preview-enhanced/#/html?id=configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/kumapo0313/items/a59df3d74a7eaaaf3137" target="_blank" rel="noopener"
 &gt;https://qiita.com/kumapo0313/items/a59df3d74a7eaaaf3137&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>VSCode で現在アクティブなタブの背景色を変更する</title><link>https://blog.ponkotools.com/posts/2023/06/12/vscode/</link><pubDate>Mon, 12 Jun 2023 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2023/06/12/vscode/</guid><description>&lt;p&gt;Visual Studio Code のエディタで現在アクティブなタブの背景色が、デフォルトだと他のタブとあまり変わらなくて分かりづらいので、設定で変更しました。&lt;/p&gt;
&lt;p&gt;メニューより、ファイル &amp;gt; ユーザー設定 &amp;gt; 設定 を選択します。&lt;/p&gt;
&lt;p&gt;設定の検索より &lt;code&gt;workbench.colorCustomizations&lt;/code&gt; と入力し、「settings.json で編集」をクリックします。&lt;/p&gt;
&lt;p&gt;&lt;img class="gallery-image" data-flex-basis="485px" data-flex-grow="202" height="282" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://blog.ponkotools.com/posts/2023/06/12/vscode/vscode.png" width="570"&gt;&lt;/p&gt;
&lt;p&gt;そして、以下のように &lt;code&gt;tab.activeBackground&lt;/code&gt; を追記します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&amp;#34;workbench.colorCustomizations&amp;#34;: {
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;tab.activeBackground&amp;#34;: &amp;#34;#1b77cf&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://tekunabe.hatenablog.jp/entry/2021/05/23/134458" target="_blank" rel="noopener"
 &gt;https://tekunabe.hatenablog.jp/entry/2021/05/23/134458&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Markdown Preview Enhanced で HTML 出力に PNG 画像を base64 で埋め込む</title><link>https://blog.ponkotools.com/posts/2022/10/03/markdown-preview-enhanced/</link><pubDate>Mon, 03 Oct 2022 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2022/10/03/markdown-preview-enhanced/</guid><description>&lt;p&gt;VSCode でマークダウンを書くのに Markdown Preview Enhanced を使用していますが、HTML で出力する際、SVG は base64 で埋め込まれましたが、PNG はデフォルトでは埋め込まれません。&lt;/p&gt;
&lt;p&gt;これについて、以下に説明があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://shd101wyy.github.io/markdown-preview-enhanced/#/ja-jp/html" target="_blank" rel="noopener"
 &gt;https://shd101wyy.github.io/markdown-preview-enhanced/#/ja-jp/html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;文書の最初に以下を記述すれば PNG が base64 で埋め込まれました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;html:
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; embed_local_images: true
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://shd101wyy.github.io/markdown-preview-enhanced/#/ja-jp/html" target="_blank" rel="noopener"
 &gt;https://shd101wyy.github.io/markdown-preview-enhanced/#/ja-jp/html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Markdown で外部の Markdown ファイルを読み込んで表示</title><link>https://blog.ponkotools.com/posts/2022/03/24/markdown/</link><pubDate>Thu, 24 Mar 2022 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2022/03/24/markdown/</guid><description>&lt;p&gt;Markdown 自体に外部ファイルを読み込んで表示する構文はないようです。&lt;/p&gt;
&lt;p&gt;しかし、VSCode の Markdown Preview Enhanced というプラグインでは、以下のようにして外部ファイルを読み込んでプレビュー表示することができます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;@import &amp;#34;hoge.md&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;詳しい使い方は以下に記載されています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/shd101wyy/markdown-preview-enhanced/blob/master/docs/ja-jp/file-imports.md" target="_blank" rel="noopener"
 &gt;https://github.com/shd101wyy/markdown-preview-enhanced/blob/master/docs/ja-jp/file-imports.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/shd101wyy/markdown-preview-enhanced/blob/master/docs/ja-jp/file-imports.md" target="_blank" rel="noopener"
 &gt;https://github.com/shd101wyy/markdown-preview-enhanced/blob/master/docs/ja-jp/file-imports.md&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>VSCode の Remote-Containers を起動したときに、マウントのパスに無効な文字が含まれているというエラーが表示された</title><link>https://blog.ponkotools.com/posts/2021/09/01/vscode/</link><pubDate>Wed, 01 Sep 2021 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2021/09/01/vscode/</guid><description>&lt;p&gt;ホストのディレクトリをコンテナにマウントしたかったのですが、以下のようなエラーが表示されました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker: Error response from daemon: create /home/user/workspace: &amp;#34;/home/user/workspace&amp;#34; includes invalid characters for a local volume name, only &amp;#34;[a-zA-Z0-9][a-zA-Z0-9_.-]&amp;#34; are allowed. If you intended to pass a host directory, use absolute path.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;devcontainer.json&lt;/code&gt; の &lt;code&gt;mounts&lt;/code&gt; の設定は以下です。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;mounts&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="s2"&gt;&amp;#34;source=${localWorkspaceFolder}/workspace,target=/workspace&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;type&lt;/code&gt; を省略してしまっていたのですが、&lt;code&gt;type&lt;/code&gt; のデフォルトは &lt;code&gt;volume&lt;/code&gt; なので、ボリュームをマウントしようとしてエラーになっていたみたいです。&lt;br&gt;
以下のように &lt;code&gt;type=bind&lt;/code&gt; を指定したら上手くいきました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s2"&gt;&amp;#34;mounts&amp;#34;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="s2"&gt;&amp;#34;source=${localWorkspaceFolder}/workspace,target=/workspace,type=bind&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="err"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/microsoft/vscode-remote-release/issues/2573" target="_blank" rel="noopener"
 &gt;https://github.com/microsoft/vscode-remote-release/issues/2573&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://code.visualstudio.com/docs/remote/devcontainerjson-reference" target="_blank" rel="noopener"
 &gt;https://code.visualstudio.com/docs/remote/devcontainerjson-reference&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>VSCode + Remote-Containers で python の開発環境を作成する</title><link>https://blog.ponkotools.com/posts/2021/06/18/vscode/</link><pubDate>Fri, 18 Jun 2021 00:00:00 +0900</pubDate><guid>https://blog.ponkotools.com/posts/2021/06/18/vscode/</guid><description>&lt;p&gt;VSCode の Remote-Containers を使い、python 開発用の docker コンテナを作成し、そのコンテナ中で python のデバッグをできるようにします。&lt;/p&gt;
&lt;h2 id="環境"&gt;&lt;a href="#%e7%92%b0%e5%a2%83" class="header-anchor"&gt;&lt;/a&gt;環境
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;Ubuntu 20.04&lt;/li&gt;
&lt;li&gt;Visual Studio Code 1.56.2&lt;/li&gt;
&lt;li&gt;Remote Development 0.21.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらはインストールされている前提です。&lt;/p&gt;
&lt;h2 id="設定ファイルの作成"&gt;&lt;a href="#%e8%a8%ad%e5%ae%9a%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%ae%e4%bd%9c%e6%88%90" class="header-anchor"&gt;&lt;/a&gt;設定ファイルの作成
&lt;/h2&gt;&lt;p&gt;コマンドパレットを開いて(&lt;code&gt;Shift + Ctrl + p&lt;/code&gt;)、&lt;code&gt;Remote-Container: Add Development Container Configuration Files&lt;/code&gt; を実行します。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Python3&lt;/code&gt; を選択し、続いて Python のバージョンを選択します。&lt;br&gt;
その後、Node.js をインストールするかどうか表示されますが、今回は必要ないのでチェックを外しました。&lt;/p&gt;
&lt;p&gt;OK を押すと、以下のファイルが作成されます。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;.devcontainer
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── Dockerfile
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── devcontainer.json
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="コンテナ起動"&gt;&lt;a href="#%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e8%b5%b7%e5%8b%95" class="header-anchor"&gt;&lt;/a&gt;コンテナ起動
&lt;/h2&gt;&lt;p&gt;画面左下のマークを押し、&lt;code&gt;Reopen in Container&lt;/code&gt; を選択するとコンテナが起動します。&lt;/p&gt;
&lt;div class="separator" style="clear: both;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioggZB1AZm4gmlWlTjfEs7wm9zOu3doCLKbA_2gRtv_QoJGqNZqRMNW0d_BopWrum1d_qJD1EMaTENBnVhoC2_jn-5MVrPm-N1wAfg61Z3is2FAOoRG0fVUnn2SgkV5df_ualWeD2dIB4/s0/5.png" style="display: block; padding: 1em 0; text-align: center; "&gt;&lt;img alt="" border="0" data-original-height="126" data-original-width="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioggZB1AZm4gmlWlTjfEs7wm9zOu3doCLKbA_2gRtv_QoJGqNZqRMNW0d_BopWrum1d_qJD1EMaTENBnVhoC2_jn-5MVrPm-N1wAfg61Z3is2FAOoRG0fVUnn2SgkV5df_ualWeD2dIB4/s0/5.png"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;h2 id="拡張機能のインストール"&gt;&lt;a href="#%e6%8b%a1%e5%bc%b5%e6%a9%9f%e8%83%bd%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab" class="header-anchor"&gt;&lt;/a&gt;拡張機能のインストール
&lt;/h2&gt;&lt;p&gt;Remote-Containers を使う場合、VSCode の拡張機能もコンテナ用に別途インストールする必要があるみたいです。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;devcontainer.json&lt;/code&gt; の &lt;code&gt;extensions&lt;/code&gt; に記載しておけば、コンテナ作成時に自動的に拡張機能もインストールされるようです。&lt;br&gt;
今回は設定ファイル作成時に Python を選択したので、最初から下記の２つが記載されていました。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;extensions&amp;#34;: [
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;ms-python.python&amp;#34;,
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &amp;#34;ms-python.vscode-pylance&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ],
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;従って、コンテナを起動した時点で &lt;code&gt;python&lt;/code&gt; と &lt;code&gt;pylance&lt;/code&gt; は最初から入っているはずなのですが、何故か私の環境ではインストールされていません。&lt;/p&gt;
&lt;div class="separator" style="clear: both;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjStQ_qPqostcKQAlkbdceNMbMO-BZNhP0tJreUP2ogN30FZOpjdzVCcu4e2vdAyi_oAjtjM4o7UvYC-sP6SLxwmy5rlr3j3WMBRzV5YDH1IP6ZtDtbNnLRqCA0s5Jb46IaHdyFF7m2_ZE/s448/6.png" style="display: block; padding: 1em 0; text-align: center; "&gt;&lt;img alt="" border="0" height="320" data-original-height="448" data-original-width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjStQ_qPqostcKQAlkbdceNMbMO-BZNhP0tJreUP2ogN30FZOpjdzVCcu4e2vdAyi_oAjtjM4o7UvYC-sP6SLxwmy5rlr3j3WMBRzV5YDH1IP6ZtDtbNnLRqCA0s5Jb46IaHdyFF7m2_ZE/s320/6.png"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;仕方がないので、手動でインストールしました。&lt;/p&gt;
&lt;h3 id="手動でのインストール"&gt;&lt;a href="#%e6%89%8b%e5%8b%95%e3%81%a7%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab" class="header-anchor"&gt;&lt;/a&gt;手動でのインストール
&lt;/h3&gt;&lt;p&gt;まず、&lt;code&gt;DEV CONTAINER&lt;/code&gt; のところの雲のアイコンをクリックします。&lt;/p&gt;
&lt;div class="separator" style="clear: both;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPaSkx77AmbCpshhGicXrKyLZ9A_bq461WvDwsNco4naOEuPc_qGgZoyUQ7r-SDlfI37oHdyR3X5OqdfpCGxEoFP1kUfJ7N-8vWt0meJjGzdl9qWNeGiucc0utOiOgXxs3PH0M3a-7RJ8/s0/7.png" style="display: block; padding: 1em 0; text-align: center; "&gt;&lt;img alt="" border="0" data-original-height="78" data-original-width="314" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPaSkx77AmbCpshhGicXrKyLZ9A_bq461WvDwsNco4naOEuPc_qGgZoyUQ7r-SDlfI37oHdyR3X5OqdfpCGxEoFP1kUfJ7N-8vWt0meJjGzdl9qWNeGiucc0utOiOgXxs3PH0M3a-7RJ8/s0/7.png"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;ローカルにインストールされている拡張機能一覧が表示されるので、コンテナ内にインストールしたい拡張機能にチェックを入れます。&lt;/p&gt;
&lt;div class="separator" style="clear: both;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLy5xEDkJtQf2QhyphenhyphenrIcM24qYggb9utZZoxCAALJmIt932CzZfEKeDfVBahFzr2G_Dm42P5oad2cgrPqT-p7CYFwhYJB0Bs17ECzvAzTkHllag54Ey4oPh75VbYvYtjYaqtF4RcH2qM94o/s605/8.png" style="display: block; padding: 1em 0; text-align: center; "&gt;&lt;img alt="" border="0" width="320" data-original-height="458" data-original-width="605" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLy5xEDkJtQf2QhyphenhyphenrIcM24qYggb9utZZoxCAALJmIt932CzZfEKeDfVBahFzr2G_Dm42P5oad2cgrPqT-p7CYFwhYJB0Bs17ECzvAzTkHllag54Ey4oPh75VbYvYtjYaqtF4RcH2qM94o/s320/8.png"/&gt;&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;インストールが完了した後は一度 VSCode を再起動したほうがよいかと思います。&lt;/p&gt;
&lt;h2 id="デバッグを開始する"&gt;&lt;a href="#%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%82%92%e9%96%8b%e5%a7%8b%e3%81%99%e3%82%8b" class="header-anchor"&gt;&lt;/a&gt;デバッグを開始する
&lt;/h2&gt;&lt;p&gt;あとはローカル環境で python のデバッグを行う場合と同じです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://kuttsun.blogspot.com/2020/01/vscode-python.html" target="_blank" rel="noopener"
 &gt;https://kuttsun.blogspot.com/2020/01/vscode-python.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考-url"&gt;&lt;a href="#%e5%8f%82%e8%80%83-url" class="header-anchor"&gt;&lt;/a&gt;参考 URL
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/sabure500/items/a117b8a1733193be455f" target="_blank" rel="noopener"
 &gt;https://qiita.com/sabure500/items/a117b8a1733193be455f&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://qiita.com/bigengelt/items/780440a146e6a3bdffd4" target="_blank" rel="noopener"
 &gt;https://qiita.com/bigengelt/items/780440a146e6a3bdffd4&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>