50个Claude Code日常使用技巧与最佳实践
50个Claude Code日常使用技巧与最佳实践
50个Claude Code日常使用技巧与最佳实践 50个Claude Code日常使用技巧与最佳实践 Modified March 20 使用 @ 直接引用文件:@src/auth/middleware.ts 负责会话处理。@ 前缀会自动解析为文件路径,因此 Claude 确切知道该去哪里查找。 Claude可以自行对代码库进行grep和搜索,但它仍需缩小候选范围并确定正确的文件。每一步搜索都要消耗令牌和上下文。从一开始就为Claude指明正确的文件可以跳过整个过程。 26. 用模糊的提示探索陌生的代码 “你会对这个文件做哪些改进?”是一个很棒的探索性提示。并不是每个提示词都要很具体。当你希望对现有代码有全新的视角时,一个模糊的问题能让Claude有空间提出你可能想不到要问的问题。 我在开始接触一个不熟悉的仓库时会使用这个工具。Claude能指出我初次阅读时会遗漏的模式、不一致之处和改进机会。 27. 使用Ctrl+G编辑计划 当Claude提出一个计划时,按Ctrl+G可在文本编辑器中打开该计划进行直接编辑。在Claude编写任何一行代码之前,添加约束条件、删除步骤、调整方法。当计划大体正确,但你想微调几个步骤而无需重新解释整个内容时,这个功能非常有用。 28. 运行 /init,然后将结果一分为二 CLAUDE.md是位于项目根目录的一个Markdown文件,它为Claude提供持久化指令:构建命令、编码标准、架构决策、仓库约定。Claude在每次会话开始时都会读取该文件。/init会根据你的项目结构生成一个初始版本。它会提取构建命令、测试脚本和目录布局。 输出内容往往会显得冗长。如果你无法解释某一行存在的原因,就删除它。去除冗余,补充缺失的内容。有关这些文件的结构,请参阅 how to write a great CLAUDE.md file. 29. 对CLAUDE.md中的每一行内容进行严格检验 对于CLAUDE.md中的每一行内容,都要问一问:没有这一行,Claude会不会出错?如果Claude本身已经能正确完成某些任务,那么这条指令就是冗余的。每一行不必要的内容都会削弱重要内容的效果。在合规性下降之前,大约有150 200条指令的预算,而系统提示已经占用了其中约50条。 30. Claude犯错后,说“更新你的”CLAUDE.md 这样就不会再发生这种事了 当Claude犯错时,就说“更新CLAUDE.md文件,以免此类情况再次发生”。Claude会自行制定规则。在下一次会话中,它会自动遵循该规则。 随着时间的推移,你的CLAUDE.md会成为一份由实际错误塑造的动态文档。为了防止其无限增长,可使用@imports(提示 32)来引用单独的文件,比如@docs/solutions.md,来获取模式和修复方法。 31. 使用.claude/rules/ 来存放仅在某些情况下适用的规则 将Markdown文件放在.claude/rules/中,按主题组织说明。默认情况下,每个规则文件在每次会话开始时都会加载。若要使某个规则仅在Claude处理特定文件时加载,请添加路径前导元数据: Code block YAML Copy paths: " / .ts" TypeScript conventions Prefer interfaces over types. 这能让你的主CLAUDE.md保持简洁。Claude读取.ts文件时加载TypeScript规则,读取.go文件时加载Go规则。Claude从不处理它未涉及语言的约定。 32. 使用@imports来精简CLAUDE.md 参考文档 @docs/git instructions.md。你也可以参考@README.md,@package.json,甚至 @ /.claude/my project instructions.md。 Claude在需要时读取文件。将@imports视为“如果你需要,这里有更多上下文”,而不会让Claude每次会话读取的文件变得臃肿。 33. 使用 /permissions 允许安全命令 别再通过点击“批准”来运行 了。 允许你将受信任的命令列入白名单,这样你就能保持工作流程的顺畅。对于不在名单上的任何命令,你仍会收到提示。 34. 当你希望Claude自由工作时,请使用/sandbox。 运行 /sandbox 以启用 OS 级别的隔离。写入操作仅限于您的项目目录,网络请求仅限于您批准的域名。它在 macOS 上使用 Seatbelt,在 Linux 上使用 bubblewrap,因此限制适用于 Claude 生成的每个子进程。在自动允许模式下,沙盒命令运行时无需权限提示,这让您在有防护措施的情况下拥有近乎完全的自主权。 对于无监督工作(夜间迁移、实验性重构),可在 Docker 容器中运行 Claude。容器能提供完全隔离、轻松回滚的功能,让你有信心让 Claude 运行数小时。 35. 为重复性任务创建自定义子Agent 与即时使用子Agent( 19)不同,自定义子Agent是预先配置好的代理,保存在.claude/agents/ 中。例如,带有Opus和只读工具的安全审查Agent,或带有Haiku以提高速度的快速搜索Agent。 使用 /agents 来浏览和创建它们。对于需要自己文件系统的Agent,你可以设置隔离:工作树。 36. 为你的堆栈选择合适的MCP服务器 值得首先考虑的MCP服务器包括:用于浏览器测试和UI验证的Playwright、用于直接进行模式查询的PostgreSQL/MySQL、用于阅读错误报告和线程上下文的Slack,以及用于设计到代码工作流程的Figma。 Claude Code支持动态工具加载,因此服务器仅在Claude需要时才加载其定义。如需查看可用内容的完整列表,请参阅 the best MCP servers in 2026. 37. 设置输出样式 运行 /config 并选择你偏好的风格。内置选项包括解释性(详细、循序渐进)、简洁性(简短、注重行动)和技术性(精确、适合使用行话)。 你还可以在 /.claude/output styles/目录下创建自定义输出样式文件。 38. 使用CLAUDE.md获取建议,挂钩需求 CLAUDE.md仅作参考。Claude大约80%的情况下会遵循它。钩子是确定性的,100%执行。如果某件事必须每次都毫无例外地发生(格式化、代码检查、安全检查),就将其设为钩子。如果是Claude应该考虑的指导建议,CLAUDE.md就可以。 39. 使用PostToolUse钩子进行自动格式化 每次Claude编辑文件时,你的格式化工具都应自动运行。在.claude/settings.json中添加一个PostToolUse钩子,以便在Claude编辑或写入任何文件后运行Prettier(或你的格式化工具): Code block JSON Copy { "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "npx prettier write \\\\"$CLAUDE FILE PATH\\\\" 2 /dev/null || true" } ] } ] } } || true 可以防止钩子失败阻塞 Claude。你也可以链接其他工具。添加 npx eslint fix 作为第二个钩子条目。 如果您打开了一个编辑器并正在编辑相同的文件,建议在Claude运行时关闭保存时格式化功能。一些开发者反馈,编辑器保存操作可能会使提示缓存失效,从而迫使Claude重新读取文件。请让钩子来处理格式化。 40. 使用PreToolUse钩子阻止破坏性命令 在Bash中使用PreToolUse钩子阻止rm rf、drop table和truncate模式。Claude甚至不会尝试执行这些操作。该钩子在Claude执行工具之前触发,因此在破坏性命令造成损害之前就会被拦截。 Code block JSON Copy { "hooks": { "PreToolUse": [ { "matcher": "Bash", "type": "command", "command": "if echo \\\\"$TOOL INPUT\\\\" | grep qE 'rm rf|drop table|truncate'; then echo 'BLOCKED: destructive command' &2; exit 2; fi" } ] } } 将这个添加到项目中的.claude/settings.json文件中。你可以使用/hooks交互式设置,或者直接告诉Claude:“添加一个PreToolUse钩子,阻止rm rf、drop table和truncate命令。” 41. 通过钩子在压缩过程中保留重要上下文 在长时间对话中,当上下文被压缩时,Claude可能会跟不上你正在处理的内容。带有紧凑匹配器的通知钩子会在每次上下文压缩触发时自动重新注入你的关键上下文。 告诉Claude:“设置一个通知钩子,在压缩后提醒你当前任务、修改的文件以及任何约束条件。”Claude将在你的设置中创建该钩子。适合重新注入的内容包括:当前任务描述、你已修改的文件列表以及任何严格约束条件(如“不要修改迁移文件”)。 在持续数小时的会话中,这一点最为重要,因为在这种情况下你正深入研究某个功能,无法承受Claude思路中断的后果。 42. 始终手动审核认证、支付和数据变更 Claude擅长处理代码。决策则需要人来做。认证流程、支付逻辑、数据变更、破坏性数据库操作。无论其他方面看起来多么出色,都要对这些进行审查。一个错误的认证范围、一个配置错误的支付Webhook,或者一个悄悄删除列的迁移操作,都可能让你失去用户、金钱或信任。再多的自动化测试也无法捕捉到所有这些问题。 43. 使用 /branch 尝试不同的方法,而不会丢失当前的方法 /branch(或 /fork)会在当前节点创建对话的副本。在分支中尝试有风险的重构。如果成功,就保留;如果失败,原始对话不受影响。这与回退( 3)不同,因为两条路径都保持活跃。 44. 当你无法完全明确某个功能的规格时,让Claude来对你进行访谈 你知道自己想构建什么,但感觉没有掌握Claude出色完成构建所需的所有细节。那就让Claude来提问吧。 Code block Markdown Copy I want to build [brief description]. Interview me in detail using the AskUserQuestion tool. Ask about technical implementation, edge cases, concerns, and tradeoffs. Don't ask obvious questions. Keep interviewing until we've covered everything, then write a complete spec to SPEC.md. 规范完成后,启动一个全新的会话,以干净的上下文和完整的规范来执行。 45. 让一个Claude撰写,另一个Claude审核 先是一个Claude实现该功能,另一个Claude则以资深工程师的视角,基于全新上下文进行评审。评审者对实现过程中的简化处理一无所知,会对每一处此类处理提出质疑。 这一思路同样适用于测试驱动开发(TDD):会话A编写测试用例,会话B编写代码以通过这些测试。 46. 以对话方式审查拉取请求 不要让Claude进行一次性的PR审查(不过如果你想的话也可以)。在会话中打开PR并就其展开讨论。“给我讲讲这个PR中风险最高的变更。”“如果这个并发运行会出什么问题?”“错误处理是否与代码库的其他部分一致?” 对话式评审能发现更多问题,因为你可以深入探讨关键领域。一次性评审往往只能指出风格上的小瑕疵,还常常遗漏架构问题。 how to write a great CLAUDE.md file @docs/solutions @docs/git instructions @README @package the best MCP servers in 2026 使用 @ 直接引用文件:@src/auth/middleware.ts 负责会话处理。@ 前缀会自动解析为文件路径,因此 Claude 确切知道该去哪里查找。 Claude可以自行对代码库进行grep和搜索,但它仍需缩小候选范围并确定正确的文件。每一步搜索都要消耗令牌和上下文。从一开始就为Claude指明正确的文件可以跳过整个过程。 26. 用模糊的提示探索陌生的代码 “你会对这个文件做哪些改进?”是一个很棒的探索性提示。并不是每个提示词都要很具体。当你希望对现有代码有全新的视角时,一个模糊的问题能让Claude有空间提出你可能想不到要问的问题。 我在开始接触一个不熟悉的仓库时会使用这个工具。Claude能指出我初次阅读时会遗漏的模式、不一致之处和改进机会。 27. 使用Ctrl+G编辑计划 当Claude提出一个计划时,按Ctrl+G可在文本编辑器中打开该计划进行直接编辑。在Claude编写任何一行代码之前,添加约束条件、删除步骤、调整方法。当计划大体正确,但你想微调几个步骤而无需重新解释整个内容时,这个功能非常有用。 28. 运行 /init,然后将结果一分为二 CLAUDE.md是位于项目根目录的一个Markdown文件,它为Claude提供持久化指令:构建命令、编码标准、架构决策、仓库约定。Claude在每次会话开始时都会读取该文件。/init会根据你的项目结构生成一个初始版本。它会提取构建命令、测试脚本和目录布局。 输出内容往往会显得冗长。如果你无法解释某一行存在的原因,就删除它。去除冗余,补充缺失的内容。有关这些文件的结构,请参阅 how to write a great CLAUDE.md file. how to write a great CLAUDE.md file 29. 对CLAUDE.md中的每一行内容进行严格检验 对于CLAUDE.md中的每一行内容,都要问一问:没有这一行,Claude会不会出错?如果Claude本身已经能正确完成某些任务,那么这条指令就是冗余的。每一行不必要的内容都会削弱重要内容的效果。在合规性下降之前,大约有150 200条指令的预算,而系统提示已经占用了其中约50条。 30. Claude犯错后,说“更新你的”CLAUDE.md 这样就不会再发生这种事了 当Claude犯错时,就说“更新CLAUDE.md文件,以免此类情况再次发生”。Claude会自行制定规则。在下一次会话中,它会自动遵循该规则。 随着时间的推移,你的CLAUDE.md会成为一份由实际错误塑造的动态文档。为了防止其无限增长,可使用@imports(提示 32)来引用单独的文件,比如@docs/solutions.md,来获取模式和修复方法。 @docs/solutions 31. 使用.claude/rules/ 来存放仅在某些情况下适用的规则 将Markdown文件放在.claude/rules/中,按主题组织说明。默认情况下,每个规则文件在每次会话开始时都会加载。若要使某个规则仅在Claude处理特定文件时加载,请添加路径前导元数据: 这能让你的主CLAUDE.md保持简洁。Claude读取.ts文件时加载TypeScript规则,读取.go文件时加载Go规则。Claude从不处理它未涉及语言的约定。 32. 使用@imports来精简CLAUDE.md 参考文档 @docs/git instructions.md。你也可以参考@README.md,@package.json,甚至 @ /.claude/my project instructions.md。 @docs/git instructions @README @package Claude在需要时读取文件。将@imports视为“如果你需要,这里有更多上下文”,而不会让Claude每次会话读取的文件变得臃肿。 33. 使用 /permissions 允许安全命令 别再通过点击“批准”来运行 了。 允许你将受信任的命令列入白名单,这样你就能保持工作流程的顺畅。对于不在名单上的任何命令,你仍会收到提示。 34. 当你希望Claude自由工作时,请使用/sandbox。 运行 /sandbox 以启用 OS 级别的隔离。写入操作仅限于您的项目目录,网络请求仅限于您批准的域名。它在 macOS 上使用 Seatbelt,在 Linux 上使用 bubblewrap,因此限制适用于 Claude 生成的每个子进程。在自动允许模式下,沙盒命令运行时无需权限提示,这让您在有防护措施的情况下拥有近乎完全的自主权。 对于无监督工作(夜间迁移、实验性重构),可在 Docker 容器中运行 Claude。容器能提供完全隔离、轻松回滚的功能,让你有信心让 Claude 运行数小时。 35. 为重复性任务创建自定义子Agent 与即时使用子Agent( 19)不同,自定义子Agent是预先配置好的代理,保存在.claude/agents/ 中。例如,带有Opus和只读工具的安全审查Agent,或带有Haiku以提高速度的快速搜索Agent。 使用 /agents 来浏览和创建它们。对于需要自己文件系统的Agent,你可以设置隔离:工作树。 36. 为你的堆栈选择合适的MCP服务器 值得首先考虑的MCP服务器包括:用于浏览器测试和UI验证的Playwright、用于直接进行模式查询的PostgreSQL/MySQL、用于阅读错误报告和线程上下文的Slack,以及用于设计到代码工作流程的Figma。 Claude Code支持动态工具加载,因此服务器仅在Claude需要时才加载其定义。如需查看可用内容的完整列表,请参阅 the best MCP servers in 2026. the best MCP servers in 2026 37. 设置输出样式 运行 /config 并选择你偏好的风格。内置选项包括解释性(详细、循序渐进)、简洁性(简短、注重行动)和技术性(精确、适合使用行话)。 你还可以在 /.claude/output styles/目录下创建自定义输出样式文件。 38. 使用CLAUDE.md获取建议,挂钩需求 CLAUDE.md仅作参考。Claude大约80%的情况下会遵循它。钩子是确定性的,100%执行。如果某件事必须每次都毫无例外地发生(格式化、代码检查、安全检查),就将其设为钩子。如果是Claude应该考虑的指导建议,CLAUDE.md就可以。 39. 使用PostToolUse钩子进行自动格式化 每次Claude编辑文件时,你的格式化工具都应自动运行。在.claude/settings.json中添加一个PostToolUse钩子,以便在Claude编辑或写入任何文件后运行Prettier(或你的格式化工具): || true 可以防止钩子失败阻塞 Claude。你也可以链接其他工具。添加 npx eslint fix 作为第二个钩子条目。 如果您打开了一个编辑器并正在编辑相同的文件,建议在Claude运行时关闭保存时格式化功能。一些开发者反馈,编辑器保存操作可能会使提示缓存失效,从而迫使Claude重新读取文件。请让钩子来处理格式化。 40. 使用PreToolUse钩子阻止破坏性命令 在Bash中使用PreToolUse钩子阻止rm rf、drop table和truncate模式。Claude甚至不会尝试执行这些操作。该钩子在Claude执行工具之前触发,因此在破坏性命令造成损害之前就会被拦截。 将这个添加到项目中的.claude/settings.json文件中。你可以使用/hooks交互式设置,或者直接告诉Claude:“添加一个PreToolUse钩子,阻止rm rf、drop table和truncate命令。” 41. 通过钩子在压缩过程中保留重要上下文 在长时间对话中,当上下文被压缩时,Claude可能会跟不上你正在处理的内容。带有紧凑匹配器的通知钩子会在每次上下文压缩触发时自动重新注入你的关键上下文。 告诉Claude:“设置一个通知钩子,在压缩后提醒你当前任务、修改的文件以及任何约束条件。”Claude将在你的设置中创建该钩子。适合重新注入的内容包括:当前任务描述、你已修改的文件列表以及任何严格约束条件(如“不要修改迁移文件”)。 在持续数小时的会话中,这一点最为重要,因为在这种情况下你正深入研究某个功能,无法承受Claude思路中断的后果。 42. 始终手动审核认证、支付和数据变更 Claude擅长处理代码。决策则需要人来做。认证流程、支付逻辑、数据变更、破坏性数据库操作。无论其他方面看起来多么出色,都要对这些进行审查。一个错误的认证范围、一个配置错误的支付Webhook,或者一个悄悄删除列的迁移操作,都可能让你失去用户、金钱或信任。再多的自动化测试也无法捕捉到所有这些问题。 43. 使用 /branch 尝试不同的方法,而不会丢失当前的方法 /branch(或 /fork)会在当前节点创建对话的副本。在分支中尝试有风险的重构。如果成功,就保留;如果失败,原始对话不受影响。这与回退( 3)不同,因为两条路径都保持活跃。 44. 当你无法完全明确某个功能的规格时,让Claude来对你进行访谈 你知道自己想构建什么,但感觉没有掌握Claude出色完成构建所需的所有细节。那就让Claude来提问吧。 规范完成后,启动一个全新的会话,以干净的上下文和完整的规范来执行。 45. 让一个Claude撰写,另一个Claude审核 先是一个Claude实现该功能,另一个Claude则以资深工程师的视角,基于全新上下文进行评审。评审者对实现过程中的简化处理一无所知,会对每一处此类处理提出质疑。 这一思路同样适用于测试驱动开发(TDD):会话A编写测试用例,会话B编写代码以通过这些测试。 46. 以对话方式审查拉取请求 不要让Claude进行一次性的PR审查(不过如果你想的话也可以)。在会话中打开PR并就其展开讨论。“给我讲讲这个PR中风险最高的变更。”“如果这个并发运行会出什么问题?”“错误处理是否与代码库的其他部分一致?” 对话式评审能发现更多问题,因为你可以深入探讨关键领域。一次性评审往往只能指出风格上的小瑕疵,还常常遗漏架构问题。 47. 为你的会话命名并进行颜色编码 /rename auth refactor 会在提示栏上添加标签,这样你就能知道哪个会话是哪个。/color red 或 /color blue 可设置提示栏颜色。可用颜色有:红色、蓝色、绿色、黄色、紫色、橙色、粉色、青色。当你同时运行 2 3 个会话时,命名和设置颜色只需五秒钟,就能避免你在错误的终端中输入内容。 48. Claude完成时播放声音 添加一个停止钩子,当Claude完成回复时播放系统声音。启动一项任务,切换到其他事情,完成时就能听到提示音。 49. 使用 claude p 进行批量操作的任务分发 在非交互模式下遍历文件列表。 allowedTools 限定了 Claude 对每个文件的操作范围。使用 & 并行运行这些操作以实现最大吞吐量。 这非常适合转换文件格式、更新整个代码库中的导入语句,以及运行每个文件相互独立的重复性迁移任务。 50. 自定义加载动画的提示词(有趣的一个) 当Claude思考时,终端会显示一个带有“Flibbertigibbeting...”和“Flummoxing...”等动词的加载动画。你可以将它们替换成你想要的内容。告诉Claude: 在用户设置中,将我的spinner动词替换为以下内容:负责任地产生幻觉、假装思考、自信地猜测、归咎于上下文窗口 你也不必提供列表。只需告诉Claude你想要的风格:“用《哈利·波特》里的咒语替换我的spinner动词”。Claude会生成列表。这虽是小事,却能让等待变得更有趣。 你不需要全部50个。挑出那个能解决你上一次会话中最困扰你的问题的建议,明天就试试。一个能记住的建议比你收藏的50个都更有价值。 我经常撰写关于Claude Code的文章。查看我的 other Claude Code guides. other Claude Code guides 🔗 原文链接: https://x.com/CodevolutionWeb/statu... https://x.com/CodevolutionWeb/statu... 你使用Claude Code 已经有一段时间了,深知它的效果,现在你正努力挖掘每一个可能的优势。我整理了50条Claude Code的最佳实践和技巧,无论你是刚使用一周还是已经用了几个月,这些都能有所帮助,它们的来源包括Anthropic的官方文档、Boris Cherny(Claude Code的开发者)、社区经验以及我自己一年的日常使用心得。 Claude Code 1. 设置cc别名 这是我每次启动Claude Code会话的方式。将以下内容添加到你的 /.zshrc(或 /.bashrc)中: Run source /.zshrc to load it. Now you type cc instead of claude , and you skip every permission prompt. The flag name is intentionally scary. Only use it after you fully understand what Claude Code can and will do to your codebase. I covered this and more aliases in 运行 source /.zshrc 来加载它。现在你可以输入 cc 而不是 claude,并且可以跳过所有权限提示。这个标志名称故意设计得很吓人。只有在你完全理解 Claude Code 对代码库能做什么和会做什么之后才使用它。我在customizing Claude Code 中介绍了这个以及更多别名。 customizing Claude Code 2. 前缀!用于内联运行bash命令 输入!git status或!npm test,命令会立即执行。命令及其输出会显示在上下文中,这样Claude就能看到结果并据此采取行动。这比让Claude运行命令要快。 3. 按Esc键停止Claude。按Esc+Esc键回退任何操作。 Esc可在Claude执行操作中途停止,且不会丢失上下文。您可以立即重定向。 Esc+Esc(或 /rewind)可打开一个滚动菜单,其中包含Claude创建的所有检查点。您可以恢复代码、对话,或两者皆恢复。“撤销该操作”也同样有效。有四个恢复选项:代码和对话、仅对话、仅代码,或从某个检查点开始向前总结。 这意味着你可以尝试一种你只有40%把握的方法。如果成功了,那就太好了。如果不行,就回退。不会造成任何损失。需要注意的是:检查点仅跟踪文件编辑。bash命令(迁移、数据库操作)所做的更改不会被记录。 若要继续之前的对话,claude continue 可恢复你最近的对话,而 claude resume 则会打开会话选择器。 4. 给Claude一个检查自身工作的方法 为Claude设置反馈循环,使其能够发现自身错误。在提示中包含测试命令、代码检查或预期输出。 Claude运行测试,发现失败之处,然后在你无需介入的情况下修复它们。Boris Cherny表示,仅这一点就能使质量提升2 3倍。对于UI更改,设置Playwright MCP服务器,这样Claude就可以打开浏览器,与页面进行交互,并验证UI是否按预期工作。这种反馈循环能够捕捉到单元测试遗漏的问题。 5. 为你的语言安装一个代码智能插件 LSP插件在每次编辑文件后都会让Claude自动进行诊断。类型错误、未使用的导入、缺少返回类型等问题,Claude在你还没注意到之前就会发现并修复。这是你能安装的影响最大的单一插件。 选择你的并运行安装命令: C 、Java、Kotlin、Swift、PHP、Lua和C/C++的插件也已提供。运行 /plugin 并转到“发现”标签页,即可浏览完整列表。你需要在系统上安装相应的语言服务器二进制文件(如果缺少,插件会提示你)。 6. 使用 gh