首页 文章 精选 留言 我的

精选列表

搜索[ClaudeCode],共75篇文章
优秀的个人博客,低调大师

ClaudeCode-常用工作流

![封面图](https://developer.qcloudimg.com/http-save/yehe-1459060/8dd34743db8e96f8941201f10a5c0988.png) # 16 · 四个最常用的活儿:探索代码库、修 bug、重构、写测试 > 📚** 系列导**航:上一篇 [15 怎么提问和给指令] 教你「话怎么说」——把模糊需求拆成精确指令。这一篇换个角度:日常 80% 的活儿就那四类**,每一类我给你一个能直接抄的指令模**板,照着填空就能用。 兄弟们,今天聊点最实在的。 你回想一下,自己天天对着代码到底在干啥?说白了翻来覆去就四件事:**接手一个看不懂的项目、修一个莫名其妙的 bug、把一坨烂代码重构干净、给某个函数补上测试**。别的需求当然也有,但这四类加起来,占了咱们日常时间的大头。 上一篇讲的是通用的「说话技巧」,这一篇要落到具体场景——**这四类活儿各有各的标准打法,套路是固定的**。用 Claude Code 用久了,最后沉淀下来的就是四个模板,存在备忘录里,遇到对应场景直接调出来填空。 这么说吧:**通用技巧是内功,这四个模板是招式**。内功你已经练过了,今天把招式给你。 **看完这一篇,你会拿到:** - 四类高频任务(探索 / 修 bug / 重构 / 写测试)各一个可直接复制的指令模板 - 每一类「为什么这么打」的关键道理,不是死记模板 - 一张四类任务的速查卡,存下来随用随调 - 一个能照着跑、给了预期输出的完整实战(拿一个真 bug 走一遍修复流程) --- ## 01 先认住:四种活儿,四把工具 动手之前,先把这四类活儿的「性格」分清楚。它们对 Claude 的要求完全不一样,**用错套路,效果差一大截**。 **类比:工具箱里的四把工具,认准各自的用途。** 螺丝刀用来拧螺丝,扳手用来拧螺母,你拿扳手去拧螺丝当然别扭。探索、修 bug、重构、写测试,就是四把不同的工具——**关键不是「会不会用 Claude」,而是「这活儿该掏哪把工具」**。 它们最核心的区别在一个维度上:**这活儿动不动你的代码?** |活儿|动代码吗|Claude 主要在干啥|你最该盯的| | --- | --- | --- | --- | |探索代码库|不动(只读)|读文件、给你讲|它讲得对不对| |修 bug|动|定位根因 + 改|根因找对没、回归测试有没有| |重构|动(但行为不变)|等价改写|改完行为有没有变| |写测试|加文件|生成测试 + 覆盖边界|边界情况(edge case)覆盖全没| 看出来没?**探索是零风险的**(它只读不写),所以可以放心大胆问;**修 bug 和重构是动刀的**,得让它先讲清楚再动手;**写测试介于两者之间**,它新建文件不碰你原有代码,但你得盯它有没有偷懒只测「正常情况」。 记住这张表的判断逻辑,下面四节就是把每一把工具拆开教你怎么握。 > 💡** 一句话总**结:四类活儿先按「动不动代码」分清性格—**—探索零风险随便问,动刀的活儿先让它讲再让它**改。 --- ## 02 探索陌生代码库:从大到小,三层问下去 先说最高频的场景:**你接手一个完全陌生的项目,第一件事是搞懂它**。 这事儿以前怎么干?打开文件夹,对着几十个目录发懵,一个个点进去看,看俩小时还是云里雾里。**现在不用了——Claude Code 把当前目录当工作区,它能自己读遍整个项目,你只管问**。 **类比:新到一家公司,你不会一上来就钻进某个模块的源码,而是先找老员工问三层。** 第一层「咱们公司整个是做什么的、大架构长啥样」;第二层「负责支付的那块代码在哪儿」;第三层「一笔订单从下单到扣款,代码是怎么走的」。**从大到小、从面到线**,这就是探索的标准节奏。 按官方文档的演示,这三层分别对应三类问题: `给我一个这个代码库的整体概览,说说它的主要架构模式` `负责用户认证的代码在哪些文件里?这几个文件是怎么协同工作的?` `追踪一下登录流程,从前端一直到数据库是怎么走的` **一个稳妥的习惯是,前两层一定在 Plan Mode(规划模式)里问**——也就是上手前连按两次 `Shift+Tab` 切到规划模式(第一次进 acceptEdits,第二次才到 plan)。为啥?因为探索阶段我们只想让它读和讲,**不想它一激动就开始改文件**。Plan Mode 下它不会动你的源码,问得再多也不会改你一行代码。 比如接手一个三万行的老 Go 项目,第一天就可以这么干:先来一句「整体概览」摸清分了几个服务,再「负责 X 的代码在哪」逐个定位,最后挑核心链路「追踪一下这个请求怎么走的」。**半天就能摸到门道,搁以前没两三天下不来**。 这里直接给你**探索模板**,三层问题填好关键词就能用: `我刚接手这个项目,帮我快速上手。分三步:1. 给我整体架构概览,说清主要模块和它们的职责2. 负责 [你关心的功能,如「订单支付」] 的代码在哪些文件里3. 追踪 [某条核心流程,如「一笔订单的创建到支付」] 的完整执行路径用新手能懂的方式讲,先别改任何代码。` > 💡** 一句话总**结:探索就一个节奏—**—从大架构到具体文件再到执行链路,从大到小三层问下**去,前两层在 Plan Mode 里问最稳。 --- ## 03 修 bug:贴报错 → 找根因 → 改 → 加回归测试 修 bug 是另一类高频活儿,也是**最容易翻车的一类**。 为啥容易翻车?因为新手最常犯的错是:**贴个报错就甩一句「帮我修一下」,然后 Claude 给你一个「能让报错消失」的修法**。注意,「报错消失」不等于「问题解决」——很多时候它只是把症状盖住了,根因还在那儿埋着,下次换个姿势又炸。 **类比:身上疼去看医生。** 你不会进门就说「给我开点止疼药」,你会说清楚「哪儿疼、什么时候开始疼、做什么动作会更疼」,让医生**先诊断病因,再开方子**。修 bug 一模一样——**先让它找根因,别让它急着「止疼」**。 官方最佳实践里反复强调一条铁律,值得你贴墙上: > 修复它并验证构建成功。**解决根本原因,不要抑制错误。** 所以正确的修 bug 流程是四步,缺一不可: 1. **贴报错 + 复现步骤**:完整的报错信息、堆栈,外加「我做了什么才触发的」 1. **让它定位根因**:先别让它改,让它说清楚「为什么会错」 1. **给修复**:根因对了,再让它动手改 1. **加回归测试**:补一个能复现这个 bug 的测试,**保证以后不再犯同样的错** 第四步是新手最容易漏的,但**恰恰是最值钱的一步**。官方的提法很妙:让 Claude「**写一个失败的测试来复现问题,然后再修它**」——这样修完测试自动变绿,等于给这个 bug 上了把锁,以后谁再不小心改回去,测试立刻报警。 这个亏很多人都吃过。比如修一个日期解析的 bug,当时 Claude 三下五除二改好了,看报错没了就提交了。结果两周后另一个同事重构时把那行又改回去了,**同样的 bug 原地复活**——因为当初没留测试,没人知道那行代码碰不得。所以修任何 bug 都该带上第四步。 直接给你**修 bug 模板**: `我遇到一个 bug。报错信息:[完整粘贴报错和堆栈]复现步骤:[我做了什么才触发,是偶发还是必现]请你:1. 先定位根本原因,解释为什么会出错,先别改代码2. 给我修复方案,解决根因,不要只是把报错盖住3. 改完补一个能复现这个 bug 的回归测试,跑一遍确认通过` > 💡** 一句话总**结:修 bug 四步走—**—贴报错和复现步骤、先找根因、再改、最后补回归测**试;少了回归测试这把锁,同一个 bug 迟早复活。 --- ## 04 重构:先讲现状 → 定目标 → 小步改 → 改前改后都测 重构这活儿,**风险最高,因为它动的是「没坏的代码」**。 修 bug 好歹有个明确的「修好了」标准——报错没了、测试绿了。重构没有,重构的目标是「代码更干净,但**行为一个字都不能变**」。一旦行为变了,你就是在重构的名义下偷偷引入 bug,**这是最坑的一种 bug,因为没人会去测一段「只是整理了一下」的代码**。 **类比:给一个住人的房子重新装修,但不能让住户搬出去。** 你得保证水电照常、人照住,只是把墙刷新、把线理顺。重构就是「带住户装修」——**功能(住户的生活)必须全程不受影响**。 所以重构的安全打法是四步,核心是「**用测试把行为锁死**」: 1. **先让它解释现状**:搞清楚这段代码现在到底在干啥、有哪些隐藏行为 1. **说清重构目标**:你要的是「拆函数」「换现代写法」还是「去重复」?说具体 1. **小步改**:官方明确建议「以小的、可测试的增量进行重构」,**别让它一次性推翻重写** 1. **改前改后测试都过**:重构前先跑一遍测试存个基准,改完再跑,**两次结果必须一致** 第四步是重构的命根子。**如果这段代码现在没测试,那重构第一步不是改,而是先补测试**——先用测试把「现在的行为」拍下来当快照,重构后对着快照验,行为没变才算成功。这点跟官方最佳实践完全一致:给 Claude 一种能验证自己工作的方式,否则「看起来对」就是唯一信号,**而看起来对的重构,恰恰最容易藏雷**。 这里有个值得守的硬规矩:**没有测试覆盖的代码,别让 Claude 直接重构**。设想一下图快的场景,让它重构一个没测试的工具函数,它把一个边界分支「优化」掉了——那个分支看着像废代码,其实处理了一种罕见输入。**线上炸了才发现**。一律先补测试再重构,慢是慢一点,但再不会翻车。 直接给你**重构模板**: `我想重构 [文件 / 函数名]。重构目标:[具体说,如「拆成更小的函数」「换成现代写法」「消除重复」]要求:1. 先解释这段代码现在的行为,包括容易忽略的边界情况2. 如果它还没有测试,先补上覆盖现有行为的测试3. 小步重构,保持对外行为完全不变4. 重构前后都跑一遍测试,确认结果一致` > 💡** 一句话总**结:重构的命根子是**「行为不能**变」——先讲现状、再定目标、小步改**,用改前改后都过的测试把行为锁**死;没测试就先补测试再动手。 --- ## 05 写测试:重点是逼它覆盖边界情况 最后一类:**给代码补测试**。 写测试这事儿,Claude 干起来其实很顺手——它会去翻你现有的测试文件,照着你已经在用的框架、断言风格写,**风格自动对齐,不用你教**。但有个坑你必须知道:**你不特别交代,它默认只测「正常情况」**。 什么叫只测正常情况?比如一个除法函数,它给你测「6 除以 2 等于 3」——对是对,但**除以 0 呢?传进来负数呢?传个 null 呢?** 这些「边界情况(edge case)」才是真正会出 bug 的地方,也是测试最该覆盖的地方。 **类比:招个人来给产品做质检,你不能只让他试「正常操作」。** 真正值钱的质检是去试那些「作妖」的输入——空的、超长的、负的、乱码的。**会出问题的永远是边界,不是正常路径**。写测试的核心,就是逼 Claude 去测这些边界。 所以写测试模板的关键,就一句话:**显式要求它覆盖边界情况**。官方最佳实践给的好提示长这样——明确说清「测哪个函数、测什么场景、要不要 mock」: > 为 foo.py 编写测试,涵盖用户已注销的边界情况。避免 mock。 对照一下两种问法,差距一目了然: ``` 「给 divide 函数写测试,重点覆盖除数为 0、负数、非数字输入 这几种边界情况」 ``` 还有个小技巧:用 `@` 把目标文件直接点给它(写 `@src/utils/math.py`),它会先读完整文件再动手,**比你用文字描述「那个 math 文件里的 divide 函数」精准得多**。`@` 引用的用法前面篇章讲过,这里正好派上用场。 直接给你**写测试模板**: `给 @[文件路径] 里的 [函数名] 写测试。要求:1. 沿用项目现有的测试框架和断言风格2. 重点覆盖边界情况:[列出你能想到的,如「空输入、零、负数、超大值、类型不对」]3. 也帮我想想还有哪些我没列到的边界情况,一并测上4. 写完跑一遍,有失败的修到通过` 第 3 点是额外加的一招——**主动让它帮你补漏**。官方文档也提到,Claude 能分析代码路径、找出你可能遗漏的边界。写测试时基本都该带这句,**它经常能揪出你压根没想到的输入组合**,比一个人闷头列全多了。 > 💡** 一句话总**结:写测试别只说「写测试」—**—显式逼它覆盖边界情**况(空值、零、负数、类型错误),再让它帮你补你没想到的边界,正常路径反而最不重要。 --- ## 06 动手:拿一个真 bug 走一遍修复流程 光看模板不算会,得跑一遍。下面用「修 bug」这一类做实战——**它四步最全,跑通它,另外三类你自然就会套**。这里特意埋了个真 bug 给你修。 **第一步:建一个带 bug 的玩具项目**(Mac / Linux) `mkdir bug-democd bug-demoecho` `'def average(numbers):` `return` `sum(numbers) / len(numbers)' > calc.py` Windows 用户:`mkdir` 和 `cd` 照敲,`calc.py` 用记事本新建,贴入上面那两行 Python。 这个 `average` 函数算平均值,看着没毛病——**但传进去一个空列表,它会除以 0 崩掉**。这就是我们要修的 bug。 **预期**:`bug-demo` 文件夹里有个 `calc.py`,内容是 `average` 函数那两行。 **第二步:启动 Claude Code** `claude` **预期**:出现欢迎屏幕,底部有输入框。 **第三步:套用修 bug 模板,贴报错让它修** 在输入框里敲(这就是把第 03 节模板填好的样子): `我遇到一个 bug。报错信息:调用 average([]) 时报 ZeroDivisionError: division by zero复现步骤:给 calc.py 里的 average 函数传一个空列表就必现请你:1. 先定位根本原因,解释为什么会出错,先别改代码2. 给我修复方案,解决根因,不要只是把报错盖住3. 改完补一个能复现这个 bug 的回归测试,跑一遍确认通过` **预期**:Claude 会先告诉你根因——**空列表时 `len(numbers)` 是 0,除以 0 就崩了**;然后给一个 diff(比如空列表时返回 0 或抛一个更清楚的异常),停下来等你批准;批准后它还会新建一个测试文件(像 `test_calc.py`),里面有一条专门测空列表的用例。 **第四步:批准改动,看它跑测试** 看懂 diff 后选「同意 / Yes」。Claude 会接着运行刚写的测试。 **预期**:终端里能看到测试结果,类似: `test_calc.py::test_average_empty_list PASSEDtest_calc.py::test_average_normal PASSED` **看到测试全绿 = 这个 bug 被修好了,而且上了锁**——以后谁再把这行改回去,测试立刻变红报警。 **第五步:退出,确认文件真的改了** 退出 Claude(敲 `exit` 或按 `Ctrl+D`),回终端看: `cat calc.py` (Windows PowerShell 用 `type calc.py`) **预期**:`calc.py` 里 `average` 函数已经加了空列表的处理逻辑,目录下还多了个测试文件。**和你批准的 diff 对得上 = 修 bug 全流程跑通,恭喜!** **⚠️ 注意:** 如果第三步 Claude 没主动写测试,大概率是你的模板把第 3 点删了。**别省那一句**——回归测试这把锁,正是新手和老手的分水岭。 > 💡** 一句话总**结:修 bug 全流程亲手跑一遍—**—埋个真 bug、套模板让它先找根因再改、看着它补测试跑**绿,跑通这一类,另外三类照葫芦画瓢就会。 ![四类常用工作流速查卡](https://developer.qcloudimg.com/http-save/yehe-1459060/57b0d66fb2b55f2e7d8cc8493541b113.png) --- ## 07 小结 这一篇把你日常 80% 的活儿拆成了四类,每一类给了一套固定打法和一个能抄的模板: |活儿|一句话模板核心|最该盯的注意点| | --- | --- | --- | |探索代码库|「整体架构 → 负责 X 的代码在哪 → 追踪某条流程」|从大到小三层问,前两层在 Plan Mode| |修 bug|「贴报错和复现 → 先找根因 → 改 → 补回归测试」|解决根因别盖症状,回归测试别省| |重构|「讲现状 → 定目标 → 小步改 → 改前改后都测」|行为不能变,没测试先补测试| |写测试|「写测试,重点覆盖空值/零/负数/类型错误」|显式逼它测边界,再让它补漏| **你现在应该能:** 拿到任何一类高频任务,不再对着光标发懵——直接调出对应模板填空,知道每一步该让 Claude 先干什么、自己该盯什么。**这四个模板,是你之后绝大多数工作的脚手架**;熟了之后你会发现,再复杂的任务也无非是这四类的组合与串联。 这四个模板经得起天天调用的考验——**再花哨的任务,最后也还是绕回这四套打法。** --- 下一篇 **17「图片与多模态」**——前面全是「打字给指令」,但有些事文字说不清:一个报错截图、一张设计稿、一份数据库结构图。下一篇就教你**把图片直接喂给 Claude**,让它看着图干活。想想看:你手里那张让你头疼的报错截图,如果能直接甩给它,是不是省事多了?

优秀的个人博客,低调大师

ClaudeCode-界面与快捷键

![封面图](https://developer.qcloudimg.com/http-save/yehe-1459060/4b235cd036f3179e0b74bcb913000448.png) # 14 · 交互界面与快捷键:把手放对地方 > 📚** 系列导**航:上一篇 13 项目结构 带你看清 Claude Code 在你项目里都摆了哪些文件。这一篇换个视角——回到那个终端窗口本身,搞懂界面每一块是干嘛的,再把几个能让你「快一倍」的键盘动作焊进肌肉记忆。 「欸,你这 Esc 按一下和按两下不一样?」 「对,差远了。按一下是踩刹车——让 Claude 停下来;按两下是倒车——把整段对话退回到上一个点。」 「……我之前一直当成一个键在用。」 说句实话,这是新手最容易搞混的一句话。Claude Code 的界面看着简单,就一个输入框加几行字,**但底下藏着一整套键盘动作和特殊符号,知道的人用得飞起,不知道的人全靠鼠标和回车硬刚**。我头两周也这样——有一回它顺着我一句模糊的话开始疯狂改一堆文件,我盯着满屏滚动的输出干等了快三分钟,眼看越改越偏,才猛地想起来「我按个 Esc 不就停了吗」,那一刻是真有点想抽自己。 这一篇不教你提需求(那是下一篇的事),只干一件事:**让你把手放对地方**。 **看完这一篇,你会拿到:** - 一张「界面分区图」——输入框、状态行、模式提示分别在哪、看什么 - 一张能贴在显示器边上的**高频快捷键速查表**(Esc、Ctrl+C、Ctrl+D、Shift+Tab、上箭头……) - 输入框里 `@!` 两个特殊前缀怎么用,外加 `/` 和 `#` 是干嘛的一句话交代 - 多行输入到底怎么打(这个坑太多人踩过) --- ## 01 先看懂这块屏:界面分成哪几部分 先给结论:**Claude Code 的界面,你只需要认住三块——输入框、状态行、模式 / 权限提示**。其他的滚动区域都是它在跟你「说话」,不用专门学。 **类比:看汽车仪表盘。** 你开车不用认全所有指示灯,但方向盘、挡位、油表这几样必须一眼能找到。界面也一样,认住主操作区和几个关键读数就能开走。 `claude` 启动后,从下往上大致是这么个布局: ![交互界面分区与高频快捷键](https://developer.qcloudimg.com/http-save/yehe-1459060/69c6bbd4b938c38ae51e4dfd0a7dceb6.png) - **输入框**:最底下那一行,前面通常有个 `>` 提示符。**这是你跟 Claude 说话的唯一入口**,打字、贴代码、敲特殊命令全在这儿。 - **状态行 / 页脚**:紧贴输入框上下的那几行小字。它会显示一些上下文信息——比如当前在哪个目录、有没有后台任务在跑、如果你这个分支有打开的 PR,官方文档说还会在页脚显示一个可点击的「PR #编号」链接,下划线颜色代表审查状态(绿=已批准、黄=待审、红=请求改动、灰=草稿)。 - **模式 / 权限提示**:告诉你现在是「普通模式」还是「计划模式(plan)」还是「自动接受编辑(acceptEdits)」。**这块最该盯**——它决定了 Claude 接下来动手前问不问你。 这里有个新手特别容易慌的场景:**屏幕突然变花、或者一半空白了**。别以为崩了。官方给了个专门的键 `Ctrl+L`,强制重绘屏幕,输入和对话历史都保留。我自己最常撞上的就是在 tmux 里跑 Claude,切到别的窗口办点事、再切回来满屏乱码,第一次遇到我还真以为会话挂了、手都伸到重启上了,后来才知道一个 `Ctrl+L` 就干净了——现在屏幕一花我条件反射就按它。 > 💡** 一句话总**结:界面认住「输入框 + 状态行 + 模式提示」三块就够开工**,屏幕花了别慌`,Ctrl+`L 重**绘。 --- ## 02 高频快捷键:像换挡和喇叭,熟了不用低头看 这是本篇的核心。 **类比:车上的换挡杆和喇叭。** 新手开车眼睛老往挡位上瞟,老司机手一搭就知道在几挡,喇叭抬手就按——因为这些动作进了肌肉记忆,不占注意力。快捷键就是这么个东西:**头三天你得照着表按,按熟了,全程手不离键盘,眼睛只盯输出**。 下面这张表,全部按官方 `interactive-mode.md` / `keybindings.md` 核对过,挑的都是新手每天都会用到的。建议你**截图贴在显示器边上**,用一周就记住了: |快捷键|作用|什么时候按| | --- | --- | --- | |Esc|中断 Claude 当前的回答或工具调用|它跑偏了 / 你想改主意,刹车用| |EscEsc(输入框为空时)|打开回退菜单,跳回上一个点|想撤销刚才那轮、倒车回存档| |Ctrl+C|中断;没东西可中断时,第一次清空输入、第二次退出|想清掉已经打了一半的输入| |Ctrl+D|退出 Claude Code 会话|干完活,关门走人| |Shift+Tab|循环切换权限模式(default / acceptEdits / plan…)|想让它「先规划别动手」或「放开手脚自己改」| |↑ / ↓(上 / 下箭头)|翻命令历史(光标在边缘时)|重发上一条指令,不用重打| |Ctrl+L|重绘屏幕(保留输入和历史)|屏幕花了 / 半空白| |Ctrl+R|反向搜索命令历史|想找「我上次那条长指令」| |Ctrl+O|切换详细转录视图|想看它具体调了哪些工具| 挑三个最容易被搞混的,单独说清楚: ### Esc 一下 vs 两下:踩刹车还是倒车 官方文档把这俩写得明明白白,翻译成人话就是: - **`Esc` 按一下** = 踩刹车。Claude 正在回答或正在调工具,你一按它就停在当下,**已经做完的部分会保留**,你可以接着补一句重新指挥它。 - **`Esc` 按两下** = 倒车。但有个前提——**输入框必须是空的**。空的时候连按两下 Esc,会弹出回退菜单(就是第 07 篇讲过的检查点 / 回溯),让你跳回之前的状态。 > ⚠️ 这是最坑的一点(官方明确写了):如果输入框里**有文字**,连按两下 Esc 是「清空这段文字并存进历史草稿」,**不是**打开回退菜单。所以要回退,先把输入框清空。 新手很容易在这上面栽——输入框里打了半句话,想回退,狂按 Esc,结果文字没了、菜单也没出来,一脸懵。搞懂了就好办:**先清空,再双击 Esc**。 ### Ctrl+C vs Ctrl+D:清场还是退场 这俩都带点「停」的意思,但完全两码事: - **`Ctrl+C**` = 清场不离场。有任务在跑就中断任务;没任务时第一次按清掉你输入框里的字,**连按第二次才退出**。 - **`Ctrl+D**` = 直接退场。一下就退出整个会话(它发的是 EOF 信号)。 顺带说个冷知识:这两个键是官方文档里明确标注的「**保留快捷键**」,硬编码、**不能重新绑定**(同一批的还有 `Ctrl+M`,因为它在终端里等于回车)。所以哪个终端、哪个系统,`Ctrl+C` / `Ctrl+D` 的行为都一致,放心用。 ### Shift+Tab:一键切换「问不问你」 `Shift+Tab` 大概是日常用得最多的快捷键,没有之一。它在几个**权限模式**之间循环: - **default(默认)**:动手改文件前会停下问你。 - **acceptEdits(自动接受编辑)**:编辑类操作不再逐个问,提速用。 - **plan(计划模式)**:只出方案不动手,适合大改动前先对齐思路。 - 以及你额外开启的其他模式(如 `auto` / `bypassPermissions`)。 权限模式(Permission Mode),说白了就是「实习生动手前问不问你」的那个开关。 按一下 `Shift+Tab` 就在它们之间转圈,状态行会实时显示你当前在哪个模式。**这套模式具体每个是干嘛、怎么配,第 20 篇「权限配置」专门讲**,这里你只要记住:想换模式,`Shift+Tab` 转就完事了。 (一个平台差异:官方注明在某些 Windows 配置下(不支持 VT 模式的旧版终端、较老的 Node / Bun 运行时),这个键默认是 `Alt+M` 而不是 `Shift+Tab`,遇到不灵的换它试试。) > 💡** 一句话总**结`:Es`c 一下刹车两下倒车`、Ctrl+`C 清场` Ctrl+`D 退场`、Shift+Ta`b 切「问不问你」—**—这四个焊进肌肉记忆,你就出师一半**了。 --- ## 03 输入框里的特殊前缀:@ 和 ! 是两把快刀 光会按键还不够。Claude Code 的输入框其实是「智能」的——**某些符号打在开头,会触发完全不同的行为**。官方在「快速命令」里列得很清楚,对新手最有用的是这两个:`@` 和 `!`。 **类比:手机输入法里打 `@` 自动跳出联系人。** 你不用记全名,敲个 `@` 它就把候选人列出来给你选。`@` 在 Claude Code 里也是这个味道,只不过选的是文件。 ### `@`:精准点名一个文件 / 目录 直接在输入框里打 `@`,会触发**文件路径自动补全**——它会列出当前项目里的文件让你选,你接着打几个字母过滤,选中即可。 为什么要用它?因为**这是把一个具体文件「钉」进你这句话里最准的方式**。比如你想让它看某个文件: `@src/auth.ts 这里的登录逻辑有没有问题?` 这么打,Claude 明确知道你指的是哪个文件,不用它自己去猜、去全项目里翻。写复杂指令时基本离不开 `@`——**项目一大,文件重名的多,用大白话说「那个 auth 文件」它经常找错,`@` 一点名就没歧义了**。 ### `!`:不打扰 Claude,直接跑个 shell 命令 在输入框开头打 `!`,后面跟一条命令,就进入 **Shell 模式(Bash 模式)**:这条命令**直接在你的终端跑**,不经过 Claude 解释、也不用它批准,跑完的输出还会被加进对话上下文里。 `! git status` `! ls -la` 这玩意儿什么时候香?**当你想顺手看一眼仓库状态、又不想让 Claude 专门为这跑一趟、烧 token**。比如改到一半,想确认下当前 git 状态,直接 `! git status`,结果立刻出来,而且 Claude 也「看到」了这个输出,下一句它就能接着这个状态聊。 几个官方提到的实用细节: - 想退出 Shell 模式:按 `Esc`、`Backspace`,或在空提示上按 `Ctrl+U`。 - 它支持基于历史的补全:打一半命令按 `Tab`,能从你这个项目里之前跑过的 `!` 命令补全。 ### 那 `/` 和 `#` 呢? 你可能在别处见过这俩,这里一句话交代清楚,别混淆: - **`/`(斜杠开头)** = 调用命令 / Skill。打一个 `/` 会弹出一长串可用命令(`/help`、`/clear` 等)。**这套斜杠命令体系内容很多,我们留到第 36 篇「斜杠 / 命令」专门展开**,本篇你只要知道「`/` 是命令入口」就够了。 - **`#`(井号开头)** = 历史上有过「用 `#` 开头快速往记忆(CLAUDE.md)里记一条」的用法,**但不同版本行为有差异**。Claude Code 怎么「记住」你的偏好、CLAUDE.md 怎么写,是**第 18 篇「CLAUDE.md 使用指南」和第 25 篇「记忆系统」** 的正题,到那儿再系统讲。这里不展开,免得你按了发现版本对不上。 把四个前缀放一起对照,你就不会记串了: |开头符号|触发什么|一句话|本篇要不要细讲| | --- | --- | --- | --- | |@|文件路径自动补全|精准点名一个文件|✅ 上面讲了| |!|Shell 模式|直接跑 bash,输出进上下文|✅ 上面讲了| |/|命令 / Skill 菜单|控制会话的命令入口|❌ 留给第 36 篇| |#|(与记忆相关,版本相关)|往 CLAUDE.md 记东西|❌ 留给第 18 / 25 篇| > 💡** 一句话总**结`:`@ 点名文件`、`! 顺手跑命令,这俩是天天用的快刀`;`/ 和` `# 各有专篇**,本篇只认识它们存在就**行。 --- ## 04 多行输入:回车老是把话发出去,怎么办 这是个高频「卡点」,单独拎出来讲。 **问题来了**:你想给 Claude 一段比较长的、分好几行的指令,结果**按回车想换行,话却直接发出去了**——半句话就被提交了。新手十个里有八个第一周都中过这招。 原因很简单:**输入框里 `Enter` 默认就是「发送」**,不是「换行」。要换行,得用别的键。官方给了好几种打法,按「最不挑终端」到「最方便」排: |打法|怎么按|适用范围| | --- | --- | --- | |反斜杠转义|先打 \,再按 Enter|所有终端都行,记不住别的就记这个| |控制序列|Ctrl+J|任何终端都行,无需配置| |Shift+Enter|Shift+Enter|iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal、Windows Terminal开箱即用| |Option+Enter(macOS)|Option+Enter|macOS 上需先把 Option 配成 Meta 键| 一个稳妥的习惯:**记死一个 `\` + `Enter` 就够了**——因为它「在所有终端都工作」,换机器、换终端都不用重新适应。等你固定用某个终端了,再去试 `Shift+Enter` 那种更顺手的。 如果你用的是 VS Code、Cursor、Alacritty、Zed、Devin Desktop 这类(它们的内置终端默认不支持 `Shift+Enter` 换行),官方给了个一劳永逸的办法:运行 `/terminal-setup` 自动装上换行绑定。 还有个更舒服的玩法:嫌在小输入框里写长指令憋屈,可以按 `Ctrl+G`,**直接在你的默认文本编辑器里写**,写完保存就带回来了。写那种几十行、带格式的复杂需求时基本都这么干,比在终端里硬敲舒服太多。 > 💡** 一句话总**结:回车默认是「发送」不是「换行」;**换行记死` `\ +` Ente`r 万能**,长指令直接` Ctrl+`G 开编辑器写。 --- ## 05 动手:三分钟把这几个键全试一遍 光看不练,明天就忘。下面给一套**最小验证流程**,不依赖任何复杂项目,随便找个文件夹就能跑。打开终端跟着走。 **第一步:进任意一个有文件的文件夹,启动** `cd ~/Desktopclaude` **预期**:出现欢迎界面,最底下是输入框(前面一个 `>`)。 **第二步:试 `!` Shell 模式** 在输入框里打(注意 `!` 顶格开头): `! echo hello-shortcuts` 回车。**预期**:终端**直接**打印出 `hello-shortcuts`,并且这条命令和输出被记进了对话——证明 Shell 模式生效了,全程没惊动 Claude 去「解释」。 **第三步:试 `↑` 翻历史** 输入框空着的时候,按一下**上箭头 `↑**`。 **预期**:刚才那条 `! echo hello-shortcuts` 被原样调回输入框里。这就是命令历史,重发指令不用重打。先按 `Esc` 或 `Ctrl+U` 清掉它。 **第四步:试 `Shift+Tab` 切模式** 按一下 `Shift+Tab`,再按一下,再按一下。 **预期**:状态行里的模式提示在 `default` / `acceptEdits` / `plan` 之间循环变化(你启用了哪些模式就在哪些之间转)。**看到那行字在变,就说明你切对了**。多按几下转回 `default`。 **第五步:试多行输入** 打一个字母,然后按 `\` 再按 `Enter`,再打第二行: `第一行 \第二行` **预期**:`\` + `Enter` 让光标**换到了下一行**而不是把「第一行」发出去。这就对了。 **第六步:退出** 按 **`Ctrl+D**`。 **预期**:直接退出 Claude Code,回到普通终端。 跑完这六步,本篇讲的 `!`、历史、`Shift+Tab`、多行、退出,你就全亲手验证过一遍了。 ⚠️ 一个可能的小插曲:如果你在 macOS 上发现 `Option+Enter` 之类的 Option 键快捷键不灵,那是终端没把 Option 配成 Meta 键。这是终端设置问题、不是 Claude 的 bug——`\` + `Enter` 永远能用,先拿它顶着。 > 💡** 一句话总**结:照着这六步亲手跑一遍`,`!`、`↑ 历史`、Shift+Ta`b`、`\ +` Ente`r 换行`、Ctrl+`D 退**出就全过了一遍肌肉记**忆,比看十遍表都记得牢。 --- ## 06 进阶一句:所有键都能改 最后留个钩子。上面这些键全是**默认值**,但 Claude Code 支持自定义快捷键——觉得哪个键不顺手,可以改。 按官方文档(需要 **v2.1.18 或更高版本**,用 `claude --version` 查),运行: `/keybindings` 会创建 / 打开 `~/.claude/keybindings.json`,你在里面就能重新绑定。不过有几个键改不了——前面说的 `Ctrl+C`、`Ctrl+D` 是硬编码的保留键。 **给新手的建议是:先别急着改。** 默认配置是官方反复打磨过的,先用熟,等你明确感觉到「这个键我每天按、但位置别扭」了,再去动它。一般用上快一个月、才会真正想改某个键,在那之前默认的全够用。 > 💡** 一句话总**结:键不顺手能用` /keybinding`s 改,**但新手先把默认的用熟,别一上来就折腾配**置。 --- ## 07 小结 这一篇没教你怎么提需求,专门教你**把手放对地方**——界面看哪、键怎么按、特殊符号怎么用。 把核心动作收成一张表,揣兜里: ``` Esc ``` **你现在应该能:** 一眼认出界面的输入框、状态行和模式提示;用 `Esc` 精准刹车、`Shift+Tab` 切权限模式;用 `@` 点名文件、`!` 跑命令;不再被「回车把半句话发出去」坑到。**这些动作熟了之后,你跟 Claude Code 的交互会从「鼠标键盘来回切」变成「手不离键盘」**——效率的差距,就在这儿拉开。 --- 下一篇 **15「怎么提问和给指令」**——手放对地方了,接下来就是「嘴」的功夫了。同样一个需求,会问的人三句话搞定,不会问的人来回扯五轮还跑偏。下一篇咱们就聊:**到底怎么跟 Claude 说话,它才听得准、干得对?**

优秀的个人博客,低调大师

claudecode+deepseek平替硬核实战

> 不用 Anthropic API,不翻墙,不折腾——一行配置让 Claude Code 跑在 DeepSeek 上,成本打一折,能力不打折。 个人用户使用公网的deepSeek的token; 企业内网开发用户自建deepSeek模型,更加节约token; --- --- ![](https://developer.qcloudimg.com/http-save/yehe-9261324/326e9c2303551ea5a221b7aafe2c202d.png) ## 一、山重水复:Claude Code 的"看得见吃不着" > 山重水复疑无路,柳暗花明又一村。 周四凌晨两点,老李盯着终端里 claude --version 的输出,又瞥了一眼 Claude API 的计费面板,血压上来了。 事情是这样的:老李在 Twitter 上刷到 Claude Code 的 hooks 系统和 subagent 工作流,心痒得不行——想想看,自定义 hook 在每次提交前跑一轮安全审计、子代理并行扫代码库做架构分析,这工程体验简直是 AI 时代的"机械键盘",用过就回不去。 但现实很骨感: ![](https://developer.qcloudimg.com/http-save/yehe-9261324/d8015c95938074c4cfa3920d4fd4a867.png) **老李算了一笔账**:按日常 AI 编码量,一个月轻轻松松烧掉 500 万 tokens——Sonnet 4 官价下来就是 $90(约 650 元),这还只是保守估计。要是项目紧、重构多,月费轻松破 5000。 架构师的职业病犯了:有没有一个"反向代理"——保留 Claude Code 的工程能力,但把模型后端切到国内 API? 答案比老李想的简单得多。 --- ## 二、不畏浮云:Claude Code + DeepSeek 究竟是个什么玩法 > 不畏浮云遮望眼,自缘身在最高层。 先澄清一个概念:**Claude Code 不只是"Claude 模型的命令行"**。 Claude Code CLI 是一套完整的 AI 编码工作流引擎,它包括: ![](https://developer.qcloudimg.com/http-save/yehe-9261324/295d82e1d8d291f196661305916693cc.png) **关键认知**:模型层只是整个系统的最底层。上面三层——会话管理、智能体调度、工程能力——才是 Claude Code 的核心壁垒。 DeepSeek 做了一件聪明事:它提供了 /anthropic 端点,完全兼容 Anthropic Messages API 格式。这意味着 Claude Code CLI 不需要任何代码改动,只需要把 ANTHROPIC_BASE_URL 指向 DeepSeek,它就会像跟 Anthropic 服务器对话一样正常工作。 ![](https://developer.qcloudimg.com/http-save/yehe-9261324/2a0636303fe8319674248edea976d88e.png) **小结**: ![](https://developer.qcloudimg.com/http-save/yehe-9261324/861eaf3d4fdf8cbdc48c91e76491b54c.png) --- ## 三、欲穷千里目:为什么要这么玩 > 欲穷千里目,更上一层楼。 老李把理由归纳为三点,每一点都打在架构决策的痛点上: **三个使用场景,尤其适合这套方案**: ![](https://developer.qcloudimg.com/http-save/yehe-9261324/45d18adda6ee923f14475f9ede3d4c04.png) 用老李的话说:"Claude Code 是发动机,DeepSeek 是汽油。发动机没变,汽油从 98 号换成 92 号,日常通勤根本感觉不出来,但油费少了一大截。" --- ## 四、横看成岭:架构全景图 > 横看成岭侧成峰,远近高低各不同。 把整个方案摊开,架构出奇地简洁: ![](https://developer.qcloudimg.com/http-save/yehe-9261324/4c0c9d73e80b9c54ade8f5a0145d457e.png) **关键配置项解读**: ``` { ”env”: { ”ANTHROPIC_BASE_URL”: ”https://api.deepseek.com/anthropic”, ”ANTHROPIC_MODEL”: ”deepseek-v4-pro[1m]”, ”ANTHROPIC_DEFAULT_HAIKU_MODEL”: ”deepseek-v4-flash”, ”CLAUDE_CODE_SUBAGENT_MODEL”: ”deepseek-v4-flash”, ”CLAUDE_CODE_EFFORT_LEVEL”: ”max” } } ``` > ⚠️ 重要提示: ANTHROPIC_DEFAULT_OPUS_MODEL 和 ANTHROPIC_DEFAULT_SONNET_MODEL 也建议指向 deepseek-v4-pro[1m], 避免 Claude Code 在某些场景下尝试调用不存在的模型名。 --- ## 五、纸上躬行:手把手配置指南 > 纸上得来终觉浅,绝知此事要躬行。 老李把配置过程提炼成**三步走**,十分钟搞定。 ### 第一步:注册 DeepSeek 并获取 API Key > 📸 截图位置:DeepSeek 平台 → API Keys → 生成新 Key ![image.png](https://developer.qcloudimg.com/http-save/yehe-9261324/690c495efab09ebea210333ef87f50fb.png) ### 第二步:安装 Claude Code CLI ``` # 前提:Node.js 18+ 和 Git for Windows npm install -g @anthropic-ai/claude-code # 验证 claude --version ``` ![image.png](https://developer.qcloudimg.com/http-save/yehe-9261324/4f98b9b097c7fae70848f35073c926a1.png) ### 第三步:配置环境变量 编辑 C:\Users\你的用户名.claude\settings.json: ``` { ”env”: { ”ANTHROPIC_BASE_URL”: ”https://api.deepseek.com/anthropic”, ”ANTHROPIC_AUTH_TOKEN”: ”sk-你的DeepSeek-API-Key”, ”ANTHROPIC_API_KEY”: ”sk-你的DeepSeek-API-Key”, ”ANTHROPIC_MODEL”: ”deepseek-v4-pro[1m]”, ”ANTHROPIC_DEFAULT_OPUS_MODEL”: ”deepseek-v4-pro[1m]”, ”ANTHROPIC_DEFAULT_SONNET_MODEL”: ”deepseek-v4-pro[1m]”, ”ANTHROPIC_DEFAULT_HAIKU_MODEL”: ”deepseek-v4-flash”, ”CLAUDE_CODE_SUBAGENT_MODEL”: ”deepseek-v4-flash”, ”CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC”: ”1”, ”CLAUDE_CODE_EFFORT_LEVEL”: ”max” } } ``` 如果之前登录过 Claude 账号,先执行 /logout。 ### 验证 ``` cd /d/你的项目目录 claude ``` 进入交互界面后执行: ``` /status # 查看当前模型和配置 /init # 初始化项目 CLAUDE.md ``` 看到模型显示为 deepseek-v4-pro[1m] 即配置成功。 ![image.png](https://developer.qcloudimg.com/http-save/yehe-9261324/9ac3c2711931ea7a728eeafdd4c50cc2.png) --- ## 六、操千观剑:实战效果对比 > 操千曲而后晓声,观千剑而后识器。 老李在自己的 Spring Boot 项目上跑了几个典型场景,记录下真实体验: ### 场景一:代码审查(/code-review) Claude Code 的子代理并行扫描能力全部保留——5 个子代理同时跑 correctness、readability、architecture、security、performance 五个维度的审查,每个子代理走的是 deepseek-v4-flash,一轮完整审查下来**总 token 消耗约 5 万,成本不到 3 分钱**。 ### 场景二:Skills 工作流 老李仓库里 86 个自定义 Skills(从 Codex 迁移过来的),全部正常加载和调用。create-sa-doc、code-review-and-quality、debugging-and-error-recovery 这些复杂 Skill 的提示词模板完整执行,**Skill 系统的兼容性零损耗**。 ### 场景三:Git Worktree 隔离 子代理在独立 worktree 中修改代码,主会话不受影响——这个 Claude Code 的杀手级特性完全可用。Flash 模型跑子代理足够快,不会因为"降级"到 Flash 而出现代码质量问题。 ![](https://developer.qcloudimg.com/http-save/yehe-9261324/126d2aca1ff57a684be0087421f992a1.png) --- ## 七、洞见三条 > 问渠那得清如许,为有源头活水来。 ### 洞见一:模型不是护城河,工作流才是 ![](https://developer.qcloudimg.com/http-save/yehe-9261324/3f0bb52d46091b7c12c9daa7e2327fac.png) Claude Code 的壁垒不在 Claude 模型本身,而在它构建的那套工程化工作流——hooks、subagent、worktree、MCP。DeepSeek V4 作为"发动机"完全够用,但"底盘"和"变速箱"是 Claude Code 给的。 **指导意义**:选工具先看工作流引擎,再看模型。模型每季度更新一轮,但工作流一旦嵌入开发习惯就是长期资产。 ### 洞见二:经济型 AI 编码正在改变"什么值得自动化" ![](https://developer.qcloudimg.com/http-save/yehe-9261324/84a5167dc84ad60d3a28480fc0676752.png) 当子代理调用的边际成本降到几乎为零,你的自动化决策阈值会大幅降低。老李现在每次提交前都跑一轮完整的安全 + 性能审查——这在 Claude 原版上根本舍不得。 ### 洞见三:Anthropic 兼容 API 正在成为事实标准 ![](https://developer.qcloudimg.com/http-save/yehe-9261324/af28c98dd265b52cdb78bf36861a453f.png) DeepSeek 支持 Anthropic 兼容端点不是偶然。Anthropic Messages API 的 tool_use 和 streaming 设计在 AI 编码场景下体验最优,正在成为 MCP 生态之外的另一条事实标准。这意味着你今天配置的 ANTHROPIC_BASE_URL 未来可以指向任何兼容端点——**真正的模型自由**。 --- ## 八、路漫漫兮:总结与行动 > 路漫漫其修远兮,吾将上下而求索。 ![](https://developer.qcloudimg.com/http-save/yehe-9261324/53e7d01e1f08823bb16e5d84e4a1e71f.png) ### 思维导图总结 ![](https://developer.qcloudimg.com/http-save/yehe-9261324/f2f915b8ff49c23e29e04f9e7007cca4.png) --- **老李的最后一句**:别等了。Claude Code 的工程能力加上 DeepSeek 的价格,这套组合是目前国内 AI 编码最优解。十分钟搭好环境,剩下的交给工作流慢慢进化。 --- ![](https://developer.qcloudimg.com/http-save/yehe-9261324/0a68c9128d20f2fb286de43bd5e21a36.png)

优秀的个人博客,低调大师

🔥 SolonCode v2026.4.1 发布(比 ClaudeCode 简约的编程智能体)

1、关于 SolonCode(编程终端智能体) SolonCode 是基于 Java + Solon AI 开发的“Claude Code” 国产开源实现版本。 常见问题:它和 Claude Code、OpenCode 有什么不同? 功能上很相似,关键差异: 采用 Java 实现,100% 开源。 使用“全中文”提示词构建。 不绑定特定提供商。需要配置模型。模型迭代会缩小差异、降低成本,因此保持 provider-agnostic 很重要。 聚焦终端命令行界面 (CLI),通过系统命令运行。 支持 Web,ACP 协议进行远程通讯。 2、SolonCode 的差异化价值 SolonCode 选择用 Java 开发(支持 Java8 到 Java26 环境运行),带来了独特的优势: 企业级友好:JVM 生态成熟稳定,易于改造成其它形态的智能体,易于在服务器环境部署 私有化简单:一行命令即可完成安装或更新 资源占用低:内存占用小,启动速度快(启动内存 70Mb 左右) 跨语言支持:作为通用编码助手,支持任意编程语言 纯系统命令:可以在控制台、(任意)IDE 控制台、批处理调度中。无界面,即处处是界面 强沙盒模式:安全又放心 3、快速安装与开始 系统要求: Java 8+(支持 Java 8 到 Java 26 环境) 支持 macOS、Linux、Windows 安装命令(安装包自动下载约 23MB): # Mac / Linux: curl -fsSL https://solon.noear.org/soloncode/setup.sh * bash # Windows (PowerShell): irm https://solon.noear.org/soloncode/setup.ps1 * iex 快速安装与更新演示: 4、最近更新说明 完成 soloncode-cli “系统命令”化改造(重要) 添加 soloncode-code AgentRuntime.createSubagent 方法 添加 soloncode-clisoloncode run xxx脚本命令运行支持 优化 soloncode-code cwd 动态传递 优化 soloncode-code 引入工具网关,解决 mcp 过多时的问题 优化 soloncode-web ReActChunk 输出(token 与 sec) 调整 soloncode-core 进一步简化代码(合并一部分类) 调整 soloncode-cli 取消 init 初始化命令(改为自动了) 调整 soloncode-cli 默认会话改为 'default' 调整solon.code.cli配置节,更名为soloncode 修复 soloncode-cli 缩放窗口时,User 提示词会多次渲染的问题 5、开源项目地址 https://gitee.com/opensolon/soloncode https://github.com/opensolon/soloncode

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册