阅读报错及 Cursor 实用功能#

导航条: 快速查找报错位置#

修改后的并不是必定成功. 例如, 你可能忘记为某个世界书条目设置是否启用, 忘记设置文件字段……

大多数错误会有我定义好的 YAML schema 给你及时报错:

../../../../_images/schema%E6%8A%A5%E9%94%99.png

但也存在一些 schema 不能检查的情况, 可能需要你自己查看报错信息来定位错误. 例如, 下图中脚本报错提示我们 "绿灯" 条目必须设置关键字 (世界书条目的激活):

../../../../_images/parse%E6%8A%A5%E9%94%99.png

报错中的 path, 其实就告诉了我们错误出在条目 ‣ 9 ‣ 激活策略 ‣ 关键字. 我们可以通过 Cursor 上方的导航条对此进行跳转:

../../../../_images/%E8%B7%B3%E8%BD%AC%E9%94%99%E8%AF%AF.png

你也可以使用资源管理器 ‣ 大纲来概览和索引内容:

../../../../_images/%E5%A4%A7%E7%BA%B2.png

时间线: 回退删改操作#

大纲旁边, 有 Cursor 为我们提供的时间线 功能, 它会记录我们对文件的更改历史, 允许我们回退不想要的更改:

../../../../_images/%E6%97%B6%E9%97%B4%E7%BA%BF1.png

这一定程度上省去了你备份文件的麻烦.

但是, 我们必须在 Cursor 中选中一个文件才能查看它的时间线. 那么如果我们将文件删除还清空回收站了, 岂不是没有办法查看到了?

如果你还能记住文件名的话, 恭喜你, 你仍然能找回它. 具体地, 我们用同样的文件名在同样的位置新建一个文件 (注意一定要是新建, 不要复制别的同名文件过来), 然后就会发现时间线中又出现它所有的历史记录了.

用 git 记录项目时间线#

Cursor 提供的时间线只是针对单个文件的, 但假如我们需要记录整个项目的修改情况呢? 为此我们可以通过左侧侧边栏创建 git 仓库, 则可以对项目进行存档:

../../../../_images/%E5%88%9D%E5%A7%8B%E5%8C%96%E4%BB%93%E5%BA%931.png

在初始化后, 我们就能对项目内文件进行提交等操作. 我推荐你在 AI 修改了项目且修改内容可以接受时, 记录对应的注释并提交内容:

../../../../_images/%E6%8F%90%E4%BA%A4commit1.png

在提交后, 我们将能在 Git Graph 插件所提供的界面中看到结果:

../../../../_images/%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E7%BB%93%E6%9E%9C1.png

提示

你自然可以通过 Learn Git Branching 进一步学习 git 来更好地管理项目.

一键折叠: 概览配置文件条目#

脚本提取出的世界书或预设配置文件以 YAML 格式存储, 因此我们可以方便地折叠每个层级结构——只需要左键行号右边的下箭头即可:

../../../../_images/%E6%8A%98%E5%8F%A0%E6%8C%89%E9%92%AE.png

我们可以Shift-左键下箭头来折叠/展开所有内容:

../../../../_images/%E6%8A%98%E5%8F%A0%E6%89%80%E6%9C%89.png

批量缩进: 快速编写 YAML#

YAML 对缩进的要求颇为严格. 如果你想在配置文件里做大型更改, 可以选择要缩进的多行内容, 然后 Ctrl-] 来增加一级缩进、Ctrl-[ 来减少一级缩进.

搜索替换#

在 Cursor 中, 你可以搜索当前文件 (Ctrl+F)、搜索当前文件夹 (Ctrl+Shift+F)、搜索文件名称 (Ctrl+Alt+F), 并支持替换搜索结果.

对于同步脚本而言, 你的搜索替换通常作用应该是在配置文件中批量修改一部分条目的设置, 例如批量禁止条目激活其他条目:

../../../../_images/%E6%89%B9%E9%87%8F%E7%A6%81%E6%AD%A2%E6%9D%A1%E7%9B%AE%E6%BF%80%E6%B4%BB%E5%85%B6%E4%BB%96%E6%9D%A1%E7%9B%AE.png

上图中的可选设置分别为:

  1. 区分大小写

  2. 全字匹配: 如搜索 word, 不会匹配文件里的 words

  3. 使用正则表达式

  4. 在选定内容中查找: 你在文件中先框选你要搜索的文本部分, 点击这个按钮, 然后搜索替换将只在你选择的地方进行——你于是可以仅对排在一起的角色条目进行批量!

例如, 我们使用 概率: .* 在选定内容中查找, 将其替换为 概率: 50, 则选定部分所有条目都会被设置为 50% 概率. 其中, .* 表示匹配任意字符、越多越好, 因此无论原本概率是多少都会被匹配.

../../../../_images/%E6%89%B9%E9%87%8F%E8%AE%BE%E7%BD%AE%E9%83%A8%E5%88%86%E6%9D%A1%E7%9B%AE%E6%A6%82%E7%8E%87%E4%B8%BA50.png

格式化文件#

对于一些不大不小的格式问题, YAML、JSON、Markdown 等都支持格式化. 我所提供的 Cursor 配置文件已经配置了 "保存时格式化" 功能, 因此你只需要在文件中按 Ctrl-S 即可格式化文件.

../../../../_images/%E6%A0%BC%E5%BC%8F%E5%8C%96%E5%89%8D1.png

比较文件#

Cursor 支持我们比较两个文件的内容. 例如, 你可能想要比较条目的中文版本和 ai 翻译版本

我们打开文件, 通过 :KBD:Ctrl-Shift-P 打开命令菜单, 输入 compare 以找到 :menuselection:文件:比较活动文件与...(File: Compare Active File With...), :KBD:回车, 然后选择我们要比较的文件, 则可以得到:

../../../../_images/%E6%AF%94%E8%BE%83%E6%96%87%E4%BB%B6.png

提示

为了方便你比较原文和翻译文件, 建议让 ai 以 ``中文#英文#英文无视原文译回中文` 的格式输出翻译结果, 这样 Cursor 能更好地对应两个文件具体哪一行对应哪一行.

上下移动几行文本#

通过 Alt-方向键上Alt-方向键下 可以移动几行文本, 因此你可以很方便地调整条目的顺序.

多行光标#

Cursor 支持多行光标同时删除、编辑文本, 自己查👿

Vim#

如果你还觉得不够, 可以自行学习 Vim、安装 Vim 扩展, 从此打字再也不碰鼠标(