Skip to main content

提示词历史

Caret 的提示词历史系统让您可以像使用终端(bash、zsh)一样导航和重用之前的消息。无需每次重新输入常用命令或提示词,大大提高工作效率。

工作原理

当输入框获得焦点时,您可以使用键盘的上/下箭头键浏览之前输入的消息。

基本用法

上箭头 (↑):移动到上一条消息。持续按下可以回溯到更早的消息。

下箭头 (↓):移动到下一条消息。在最近的消息之后再按一次会返回到当前正在输入的文本。

实际使用示例

1. 输入"显示项目中所有 TypeScript 文件"并发送
2. 输入"读取 package.json 文件"并发送
3. 输入"在 README.md 中添加使用说明"并发送

在输入框中:
↑ 一次 → 显示"在 README.md 中添加使用说明"
↑ 再一次 → 显示"读取 package.json 文件"
↑ 再一次 → 显示"显示项目中所有 TypeScript 文件"
↓ 一次 → 返回"读取 package.json 文件"

主要功能

永久保存

输入的消息会自动保存,即使关闭并重新启动 VS Code 也会保留。关闭项目后再打开,您仍然可以立即调用之前使用的提示词。

这是按工作区(workspace)管理的,因此项目 A 的历史记录和项目 B 的历史记录是分别保存的。

自动去重

如果连续输入相同的消息,历史记录中只会保存一次。例如,连续三次输入"运行测试",历史记录中也只会记录一条,避免不必要的重复。

❌ 不会重复保存:
输入"npm run test"
再次输入"npm run test" → 不会添加到历史记录

✅ 会重复保存:
输入"npm run test"
输入"显示文件列表"
再次输入"npm run test" → 会添加到历史记录(中间有其他命令)

仅保存用户输入

历史记录中只保存您输入的消息。AI 的响应不会被保存,因此使用箭头键浏览时,您只能看到自己输入的内容。

最多 1000 条记录

最多可以保存 1000 条消息历史记录。超过 1000 条后,最旧的记录会自动删除,以便高效管理内存。

按照一般使用模式,1000 条足够使用数月之久。

与终端的一致性

Caret 的提示词历史功能与 bash 或 zsh 等终端 shell 的命令历史完全相同。您可以在 Caret 中获得与在终端中使用 history 命令或使用上/下箭头浏览之前命令相同的体验。

这种一致性让开发者无需学习新的界面,可以立即使用已经熟悉的方式。

实战活用技巧

自动化重复工作

重复执行相同或相似的任务时,历史记录功能会非常有帮助。

工作场景: 对多个文件应用相同的模式

1. 输入"为 UserController.ts 的所有函数添加类型注释"
2. 任务完成后
3. 使用 ↑ 键调用之前的消息
4. 将"UserController"修改为"ProductController"
5. 发送

以这种方式可以快速应用到多个文件

重用实验性提示词

当您想要重用之前产生良好结果的提示词时,可以轻松从历史记录中找到。

两周前使用的有效提示词:
"请审查代码。从性能、可读性、安全性角度分析
并提供按优先级排列的改进建议"

想在其他项目中重用这个模式时:
按 ↑ 键浏览,或寻找相近时期输入的内容

重新开始项目时

长时间后重新打开项目时,查看历史记录可以快速了解之前正在进行的工作。

时隔 2 周重新开始项目:
使用 ↑ 键查看最近的历史记录
→ "在认证系统中添加 JWT refresh token"
→ "实现 Redis 会话存储"
→ 啊,原来是在做认证系统!

键盘快捷键参考

操作
↑ (上箭头)移动到上一条消息
↓ (下箭头)移动到下一条消息
Enter发送当前显示的消息
Esc取消历史记录浏览并返回当前输入

与 Cline 的区别

Cline 没有提示词历史功能。要重用之前输入的消息,每次都需要从头开始重新输入。

Caret 的历史记录系统完全解决了这一不便,大大减少了重复输入的工作。

常见问题

Q: 历史记录保存在哪里?

A: 自动保存在 VS Code 的工作区存储中。无需单独管理文件,VS Code 会自动处理。

Q: 可以删除或初始化历史记录吗?

A: 目前是自动管理的。超过 1000 条限制时旧记录会自动删除,删除工作区时历史记录也会一起删除。

Q: 可以在不同项目之间共享历史记录吗?

A: 历史记录是按工作区独立管理的,每个项目都有单独的历史记录。这有助于为每个项目保持适当的上下文。

Q: 输入敏感信息(如 API 密钥)会留在历史记录中吗?

A: 是的,所有输入的内容都会被保存。不建议在提示词中直接输入敏感信息。请使用环境变量或配置文件。

Q: 多行输入也会保存到历史记录吗?

A: 是的,多行输入的消息会以完全相同的形式保存。使用 ↑ 键调用时,换行符也会原样恢复。


提示词历史是 Caret 的独有功能。 您可以在 AI 聊天中使用终端中熟悉的上/下箭头键导航。