<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>工具 on 撷时录</title><link>https://jiangbyte.github.io/categories/%E5%B7%A5%E5%85%B7/</link><description>Recent content in 工具 on 撷时录</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sun, 04 Oct 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://jiangbyte.github.io/categories/%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml"/><item><title>Typora 自定义 github-cus 主题：掘金行内代码与标题自动编号</title><link>https://jiangbyte.github.io/p/typora-%E8%87%AA%E5%AE%9A%E4%B9%89-github-cus-%E4%B8%BB%E9%A2%98%E6%8E%98%E9%87%91%E8%A1%8C%E5%86%85%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%A0%87%E9%A2%98%E8%87%AA%E5%8A%A8%E7%BC%96%E5%8F%B7.html</link><pubDate>Sun, 04 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/typora-%E8%87%AA%E5%AE%9A%E4%B9%89-github-cus-%E4%B8%BB%E9%A2%98%E6%8E%98%E9%87%91%E8%A1%8C%E5%86%85%E4%BB%A3%E7%A0%81%E4%B8%8E%E6%A0%87%E9%A2%98%E8%87%AA%E5%8A%A8%E7%BC%96%E5%8F%B7.html</guid><description>&lt;p&gt;Typora 自带主题升级会覆盖，直接改 &lt;code&gt;github.css&lt;/code&gt; 不稳妥。做法是复制一份自定义主题 &lt;code&gt;github-cus&lt;/code&gt;，在上面改行内代码颜色，以及正文 / 大纲的标题自动编号。&lt;/p&gt;&#10;&lt;p&gt;本文环境：Linux，主题目录 &lt;code&gt;~/.config/Typora/themes/&lt;/code&gt;（Windows 一般在 &lt;code&gt;%APPDATA%\Typora\themes\&lt;/code&gt;，macOS 在 &lt;code&gt;~/Library/Application Support/abnerworks.Typora/themes/&lt;/code&gt;）。&lt;/p&gt;&#10;&lt;h2 id="为什么要复制一份主题"&gt;为什么要复制一份主题&lt;/h2&gt;&#10;&lt;p&gt;主题目录里的 &lt;code&gt;Readme.md&lt;/code&gt; 写得很清楚：内置 CSS 更新或重装后会被替换，&lt;strong&gt;不要直接改内置主题&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;正确姿势见官方文档：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="https://support.typora.io/About-Themes/"&gt;About Themes&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://support.typora.io/Add-Custom-CSS/"&gt;Add Custom CSS&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="https://support.typora.io/Auto-Numbering/"&gt;Auto Numbering&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;目标文件结构：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="text"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;text&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;~/.config/Typora/themes/&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;├── github.css ← 内置，不动&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;├── github/ ← 内置字体，不动&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;4&lt;/span&gt;&lt;span class="cl"&gt;├── github-cus.css ← 自定义主题入口&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;5&lt;/span&gt;&lt;span class="cl"&gt;└── github-cus/ ← 字体资源（从 github/ 复制）&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-text"&gt;~/.config/Typora/themes/&#10;├── github.css ← 内置，不动&#10;├── github/ ← 内置字体，不动&#10;├── github-cus.css ← 自定义主题入口&#10;└── github-cus/ ← 字体资源（从 github/ 复制）&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;Typora 主题名取自 CSS 文件名：&lt;code&gt;github-cus.css&lt;/code&gt; → 主题选择器里一般显示为 &lt;strong&gt;Github Cus&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>Claude、Codex 全自动模式</title><link>https://jiangbyte.github.io/p/claudecodex-%E5%85%A8%E8%87%AA%E5%8A%A8%E6%A8%A1%E5%BC%8F.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/claudecodex-%E5%85%A8%E8%87%AA%E5%8A%A8%E6%A8%A1%E5%BC%8F.html</guid><description>&lt;p&gt;&amp;ldquo;YOLO 模式&amp;rdquo;（或叫&amp;quot;全自动模式&amp;quot;）是为了让 AI 编程助手在不经你逐次确认的情况下，全自动执行指令。Codex 和 Claude Code 都有各自的开启方式，但核心逻辑和风险是一样的。&lt;/p&gt;&#10;&lt;p&gt;YOLO 模式主要通过两种方式开启：&lt;strong&gt;命令行参数&lt;/strong&gt;和&lt;strong&gt;配置文件&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;p&gt;开启 YOLO 模式意味着将 AI 的操作权限完全放开，这虽然能极大提升效率，但也存在不小的风险。&lt;/p&gt;&#10;&lt;h3 id="速览"&gt;速览&lt;/h3&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;工具&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;对应的 YOLO 标志&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th style="text-align: left"&gt;说明&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt; (OpenAI)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;--yolo&lt;/code&gt; 或 &lt;code&gt;--dangerously-bypass-approvals-and-sandbox&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;后者是其完整标志，&lt;code&gt;--yolo&lt;/code&gt; 是别名。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;strong&gt;Claude Code&lt;/strong&gt; (Anthropic)&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;&lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td style="text-align: left"&gt;Claude Code 使用的官方标志。&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h3 id="如何开启-yolo-模式"&gt;如何开启 YOLO 模式&lt;/h3&gt;&#10;&lt;h4 id="命令行启动"&gt;命令行启动&lt;/h4&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;对于 Codex&lt;/strong&gt;：在启动命令后直接加上 &lt;code&gt;--yolo&lt;/code&gt; 或完整标志。&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;codex --yolo &lt;span class="s2"&gt;&amp;#34;需求描述&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 或者&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;codex --dangerously-bypass-approvals-and-sandbox &lt;span class="s2"&gt;&amp;#34;需求描述&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;codex --yolo &amp;#34;需求描述&amp;#34;&#10;# 或者&#10;codex --dangerously-bypass-approvals-and-sandbox &amp;#34;需求描述&amp;#34;&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;&lt;strong&gt;对于 Claude Code&lt;/strong&gt;：启动时加上 &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;。&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;claude --dangerously-skip-permissions &lt;span class="s2"&gt;&amp;#34;需求描述&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;claude --dangerously-skip-permissions &amp;#34;需求描述&amp;#34;&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Cursor WSL 连接失败？手动安装 cursor-server 的完整方案</title><link>https://jiangbyte.github.io/p/cursor-wsl-%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85-cursor-server-%E7%9A%84%E5%AE%8C%E6%95%B4%E6%96%B9%E6%A1%88.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/cursor-wsl-%E8%BF%9E%E6%8E%A5%E5%A4%B1%E8%B4%A5%E6%89%8B%E5%8A%A8%E5%AE%89%E8%A3%85-cursor-server-%E7%9A%84%E5%AE%8C%E6%95%B4%E6%96%B9%E6%A1%88.html</guid><description>&lt;h2 id="先说问题"&gt;先说问题&lt;/h2&gt;&#10;&lt;p&gt;在 Windows 上用 Cursor 打开 WSL 项目时，左下角一直转圈，等待比较久&amp;hellip;&amp;hellip;好像也没有安装好，检查 &lt;code&gt;~/.cursor-server/bin/&lt;/code&gt; 目录，发现 &lt;code&gt;commit id&lt;/code&gt; 的目录是空的，说明自动下载失败了。这在国内网络环境下应该常见，因为服务器文件有 125MB，可能下载中途断掉了。&lt;/p&gt;&#10;&lt;h2 id="为什么会有这个问题"&gt;为什么会有这个问题&lt;/h2&gt;&#10;&lt;p&gt;Cursor 连接 WSL（或远程 SSH）时，需要在 WSL 内安装一个服务端组件 &lt;code&gt;cursor-server&lt;/code&gt;，它本质上是 VSCode Remote 的定制版。自动下载流程大致是：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Cursor Windows 端发起 WSL 连接&lt;/li&gt;&#10;&lt;li&gt;WSL 端根据 commit ID 下载对应的 &lt;code&gt;vscode-reh-linux-x64.tar.gz&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;解压到 &lt;code&gt;~/.cursor-server/bin/&amp;lt;commit-id&amp;gt;/&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;启动 server，建立通信&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;第二步在国内网络环境下经常超时或中断，下载失败后 &lt;code&gt;bin/&amp;lt;commit-id&amp;gt;/&lt;/code&gt; 目录是空的，但 &lt;code&gt;.installation_lock&lt;/code&gt; 文件被写入了，导致 Cursor 以为&amp;quot;正在安装中&amp;quot;，不会重试。&lt;/p&gt;&#10;&lt;h2 id="手动安装步骤"&gt;手动安装步骤&lt;/h2&gt;&#10;&lt;h3 id="找到当前-cursor-版本的-commit-id"&gt;找到当前 Cursor 版本的 commit ID&lt;/h3&gt;&#10;&lt;p&gt;Commit ID 在 Cursor 的版本里，命令：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;cursor --version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;cursor --version&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;输出：&lt;/p&gt;</description></item><item><title>Hugo相对路径图片显示问题的分析与解决</title><link>https://jiangbyte.github.io/p/hugo%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E5%9B%BE%E7%89%87%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98%E7%9A%84%E5%88%86%E6%9E%90%E4%B8%8E%E8%A7%A3%E5%86%B3.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/hugo%E7%9B%B8%E5%AF%B9%E8%B7%AF%E5%BE%84%E5%9B%BE%E7%89%87%E6%98%BE%E7%A4%BA%E9%97%AE%E9%A2%98%E7%9A%84%E5%88%86%E6%9E%90%E4%B8%8E%E8%A7%A3%E5%86%B3.html</guid><description>&lt;h2 id="先说问题"&gt;先说问题&lt;/h2&gt;&#10;&lt;p&gt;写博客的时候用 Obsidian 插了张图：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="markdown"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;markdown&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;![&lt;span class="nt"&gt;img&lt;/span&gt;](&lt;span class="na"&gt;assets/example.jpg&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-markdown"&gt;![img](assets/example.jpg)&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;编辑器里看着好好的，一跑 &lt;code&gt;hugo&lt;/code&gt; 部署上去，图裂了。打开浏览器开发者工具一看，图片请求的路径根本就不对。&lt;/p&gt;&#10;&lt;p&gt;检查了一圈，发现这个问题只出现在 &lt;strong&gt;非 bundle 的 md 文件&lt;/strong&gt; 上，用目录包起来的 &lt;code&gt;index.md&lt;/code&gt; 反倒没事。&lt;/p&gt;&#10;&lt;h2 id="为什么会有这个问题"&gt;为什么会有这个问题&lt;/h2&gt;&#10;&lt;h3 id="hugo-的两种页面"&gt;Hugo 的两种页面&lt;/h3&gt;&#10;&lt;p&gt;Hugo 里写文章有两种姿势：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;Page Bundle&lt;/strong&gt; — 建个文件夹，里面放 &lt;code&gt;index.md&lt;/code&gt;，图片丢同目录下&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="text"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;text&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;pre tabindex="0"&gt;&lt;code&gt;content/posts/my-post/&#10;├── index.md&#10;└── some-image.jpg&lt;/code&gt;&lt;/pre&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-text"&gt;content/posts/my-post/&#10;├── index.md&#10;└── some-image.jpg&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;ol start="2"&gt;&#10;&lt;li&gt;&lt;strong&gt;Leaf Page&lt;/strong&gt; — 直接一个 &lt;code&gt;.md&lt;/code&gt; 文件&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="text"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;text&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;pre tabindex="0"&gt;&lt;code&gt;content/posts/my-post.md&lt;/code&gt;&lt;/pre&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-text"&gt;content/posts/my-post.md&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;我这边的目录结构是这样的：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="text"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;text&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;pre tabindex="0"&gt;&lt;code&gt;content/posts/&#10;├── _index.md&#10;├── assets/&#10;│ └── example.jpg&#10;├── my-post.md ← 出问题的&#10;└── my-bundle-post/&#10; └── index.md ← 没问题的&lt;/code&gt;&lt;/pre&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-text"&gt;content/posts/&#10;├── _index.md&#10;├── assets/&#10;│ └── example.jpg&#10;├── my-post.md ← 出问题的&#10;└── my-bundle-post/&#10; └── index.md ← 没问题的&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;Blowfish 主题自带的图片渲染逻辑，会先用 &lt;code&gt;$.Page.Resources.GetMatch&lt;/code&gt; 去捞图片。Bundle 页面自然能捞到，但 leaf page 压根没有 page resources，捞了个空。最后 fallback 到直接把原始相对路径当 src 输出——这就是问题的起点。&lt;/p&gt;</description></item><item><title>VMware Workstation Pro 26H1 安装</title><link>https://jiangbyte.github.io/p/vmware-workstation-pro-26h1-%E5%AE%89%E8%A3%85.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/vmware-workstation-pro-26h1-%E5%AE%89%E8%A3%85.html</guid><description>&lt;p&gt;本文按 &lt;strong&gt;2026-06-19&lt;/strong&gt; 时点可获取的 &lt;strong&gt;26H1 免费版&lt;/strong&gt; 流程整理，主要记录 &lt;strong&gt;Windows 宿主机&lt;/strong&gt;上的下载和安装步骤。&lt;/p&gt;&#10;&lt;h2 id="下载-vmware-workstation-pro-26h1"&gt;下载 VMware Workstation Pro 26H1&lt;/h2&gt;&#10;&lt;p&gt;Broadcom 注册地址：&lt;a href="https://profile.broadcom.com/web/registration"&gt;https://profile.broadcom.com/web/registration&lt;/a&gt;&#10;Broadcom 登录地址：&lt;a href="https://access.broadcom.com/default/ui/v1/signin/"&gt;https://access.broadcom.com/default/ui/v1/signin/&lt;/a&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260619193508.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;下载入口：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="text"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;text&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro&amp;amp;freeDownloads=true&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-text"&gt;https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware%20Workstation%20Pro&amp;amp;freeDownloads=true&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="选择对应版本"&gt;选择对应版本&lt;/h3&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260619193628.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620213828.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="text"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;text&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &lt;pre tabindex="0"&gt;&lt;code&gt;I agree to the Terms and Conditions&lt;/code&gt;&lt;/pre&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-text"&gt;I agree to the Terms and Conditions&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;blockquote&gt;&#10;&lt;p&gt;这个按钮可能有时候点击不了，多试几次&lt;/p&gt;&#10;&lt;/blockquote&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620213950.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620214002.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;可能需要填写一些信息：&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620214737.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620214956.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;h2 id="开始安装"&gt;开始安装&lt;/h2&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221249.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221357.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221412.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221429.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&#10;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221448.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&#10;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221456.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&#10;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221505.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&#10;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221525.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&#10;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221723.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&#10;&lt;figure&gt;&#10; &lt;img src="https://jiangbyte.github.io/posts/%e5%b7%a5%e5%85%b7/vmware/assets/Pasted%20image%2020260620221927.png" alt="" loading="lazy" decoding="async"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;</description></item><item><title>双远程工作流</title><link>https://jiangbyte.github.io/p/%E5%8F%8C%E8%BF%9C%E7%A8%8B%E5%B7%A5%E4%BD%9C%E6%B5%81.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/%E5%8F%8C%E8%BF%9C%E7%A8%8B%E5%B7%A5%E4%BD%9C%E6%B5%81.html</guid><description>&lt;h2 id="场景"&gt;场景&lt;/h2&gt;&#10;&lt;p&gt;最近团队基于 Snowy 这个开源项目做二次开发，在它上面加了很多自己的业务功能。但 Snowy 也在持续更新——修 Bug、加新特性、升级依赖版本。&lt;/p&gt;&#10;&lt;p&gt;问题来了：&lt;strong&gt;自己的代码和上游代码混在一起，怎么才能既自由修改，又能定期拉取上游的最新更新？&lt;/strong&gt;&lt;/p&gt;&#10;&lt;p&gt;这就是我写这篇文章要分享的。&lt;/p&gt;&#10;&lt;h2 id="思路"&gt;思路&lt;/h2&gt;&#10;&lt;p&gt;我的核心思路是&lt;strong&gt;双远程 + 上游镜像分支&lt;/strong&gt;：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;origin&lt;/code&gt; → 团队自己的远程仓库（日常开发用）&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;upstream&lt;/code&gt; → 开源项目的远程仓库（只读，仅用来拉取更新）&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;upstream-master&lt;/code&gt; 分支 → 上游代码的纯净镜像，绝不直接提交&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;main&lt;/code&gt; 分支 → 团队开发主分支，包含所有自定义代码&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="solitude-tag tag-mermaid mermaid"&gt;gitGraph&#10; commit id: &amp;#34;A&amp;#34;&#10; commit id: &amp;#34;B&amp;#34;&#10; branch upstream-master&#10; checkout upstream-master&#10; commit id: &amp;#34;C&amp;#34;&#10; commit id: &amp;#34;D&amp;#34;&#10; checkout main&#10; commit id: &amp;#34;E: 上游v3.6.5&amp;#34;&#10; branch feature/xxx&#10; checkout feature/xxx&#10; commit id: &amp;#34;F&amp;#34;&#10; checkout main&#10; merge feature/xxx&lt;/div&gt;&#10;&lt;h2 id="初始化仓库"&gt;初始化仓库&lt;/h2&gt;&#10;&lt;h3 id="进入项目目录"&gt;进入项目目录&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; /your/project&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;cd /your/project&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="初始化-git"&gt;初始化 Git&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;git init&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;git init&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;h3 id="配置两个远程仓库以codeup和gitee为例"&gt;配置两个远程仓库（以codeup和gitee为例）&lt;/h3&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;git remote add origin git@codeup.aliyun.com:your-team/your-project.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;git remote add upstream git@gitee.com:xiaonuobase/snowy.git&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;git remote add origin git@codeup.aliyun.com:your-team/your-project.git&#10;git remote add upstream git@gitee.com:xiaonuobase/snowy.git&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;&lt;code&gt;origin&lt;/code&gt; 是团队日常用的仓库，&lt;code&gt;upstream&lt;/code&gt; 是 Snowy 的仓库（只拉取，不推送）。&lt;/p&gt;</description></item><item><title>同时配置 Gitee 与 GitHub</title><link>https://jiangbyte.github.io/p/%E5%90%8C%E6%97%B6%E9%85%8D%E7%BD%AE-gitee-%E4%B8%8E-github.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/%E5%90%8C%E6%97%B6%E9%85%8D%E7%BD%AE-gitee-%E4%B8%8E-github.html</guid><description>&lt;p&gt;开发机上经常要同时推 Gitee、GitHub，有时还要接阿里云 Codeup。默认只会用 &lt;code&gt;~/.ssh/id_rsa&lt;/code&gt;，多平台共用一把钥匙容易乱；更稳妥的做法是：&lt;strong&gt;每平台一把密钥，用 &lt;code&gt;~/.ssh/config&lt;/code&gt; 按 Host 分流&lt;/strong&gt;。&lt;/p&gt;&#10;&lt;h2 id="全局-git-身份"&gt;全局 Git 身份&lt;/h2&gt;&#10;&lt;p&gt;提交作者信息与 SSH 无关，但新环境一般先配好：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;git config --global user.name &lt;span class="s2"&gt;&amp;#34;jiangbyte&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;git config --global user.email &lt;span class="s2"&gt;&amp;#34;your@email.com&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;git config --global --list&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;git config --global user.name &amp;#34;jiangbyte&amp;#34;&#10;git config --global user.email &amp;#34;your@email.com&amp;#34;&#10;git config --global --list&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;确认输出里有 &lt;code&gt;user.name&lt;/code&gt; / &lt;code&gt;user.email&lt;/code&gt;。若某仓库要用不同邮箱，再在该仓库里用 &lt;code&gt;git config user.email&lt;/code&gt;（不加 &lt;code&gt;--global&lt;/code&gt;）覆盖即可。&lt;/p&gt;&#10;&lt;h2 id="为各平台分别生成-ssh-密钥"&gt;为各平台分别生成 SSH 密钥&lt;/h2&gt;&#10;&lt;p&gt;目录权限先保证：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;mkdir -p ~/.ssh&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;chmod &lt;span class="m"&gt;700&lt;/span&gt; ~/.ssh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;mkdir -p ~/.ssh&#10;chmod 700 ~/.ssh&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;分别生成三把密钥（文件名自定义，别互相覆盖）：&lt;/p&gt;</description></item><item><title>用 conda 固定默认环境 normal</title><link>https://jiangbyte.github.io/p/%E7%94%A8-conda-%E5%9B%BA%E5%AE%9A%E9%BB%98%E8%AE%A4%E7%8E%AF%E5%A2%83-normal.html</link><pubDate>Thu, 01 Oct 2026 00:00:00 +0800</pubDate><guid>https://jiangbyte.github.io/p/%E7%94%A8-conda-%E5%9B%BA%E5%AE%9A%E9%BB%98%E8%AE%A4%E7%8E%AF%E5%A2%83-normal.html</guid><description>&lt;h2 id="先说目标"&gt;先说目标&lt;/h2&gt;&#10;&lt;p&gt;机器上同时有三套 Python 很容易搅在一起：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;系统自带的 &lt;code&gt;/usr/bin/python3&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;conda 的 &lt;code&gt;base&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;自己建的业务 / 学习环境&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;想要的结果很简单：&lt;strong&gt;不管终端还是 Cursor，一律只用名为 &lt;code&gt;normal&lt;/code&gt; 的 conda 环境&lt;/strong&gt;，不要再落到 &lt;code&gt;base&lt;/code&gt; 或系统 Python 上。&lt;/p&gt;&#10;&lt;p&gt;下面以 miniforge（路径 &lt;code&gt;/home/charlie/miniforge3&lt;/code&gt;）为例，过程对 Anaconda / Miniconda 同样适用，改一下前缀即可。&lt;/p&gt;&#10;&lt;h2 id="创建-normal-环境"&gt;创建 &lt;code&gt;normal&lt;/code&gt; 环境&lt;/h2&gt;&#10;&lt;p&gt;选用相对稳妥的 3.12：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;conda create -n normal &lt;span class="nv"&gt;python&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3.12 -y&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;conda create -n normal python=3.12 -y&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;创建完成后确认：&lt;/p&gt;&#10;&lt;figure&#10; class="code-block code-block--chroma code-block--line-numbers"&#10; data-code-block&#10; data-language="bash"&#10;&gt;&#10; &lt;figcaption class="code-block__toolbar"&gt;&#10; &lt;span class="code-block__language"&gt;bash&lt;/span&gt;&#10; &lt;button class="code-block__copy" type="button" data-code-copy&gt;复制&lt;/button&gt;&#10; &lt;/figcaption&gt;&#10; &lt;div class="code-block__viewport"&gt;&#10; &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="ln"&gt;1&lt;/span&gt;&lt;span class="cl"&gt;conda env list&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;2&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# base /home/charlie/miniforge3&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# normal /home/charlie/miniforge3/envs/normal&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10; &lt;/div&gt;&#10; &lt;pre class="code-block__fallback" hidden aria-hidden="true"&gt;&lt;code class="language-bash"&gt;conda env list&#10;# base /home/charlie/miniforge3&#10;# normal /home/charlie/miniforge3/envs/normal&lt;/code&gt;&lt;/pre&gt;&#10; &lt;button class="code-block__expand" type="button" data-code-expand hidden&gt;展开全部&lt;/button&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;解释器路径固定为：&lt;/p&gt;</description></item></channel></rss>