Lzh on GitHub

差异/快速编辑

了解 Roo Code 的“快速编辑”功能如何使用差异(diffs)来实现更快、更安全的文件修改。学习匹配精度和配置选项。
默认设置
快速编辑(使用 “启用通过差异编辑” 设置)在 Roo Code 中默认启用。你通常不需要更改这些设置,除非你遇到特定问题或想要尝试不同的差异策略。

Roo Code 提供了一个高级设置,用于更改它编辑文件的方式,即使用差异(diffs)而不是重写整个文件。启用此功能可带来显著优势。

每个提供商的设置差异编辑配置是按每个 API 配置文件 设置的,允许你为不同的提供商和模型自定义编辑行为。

启用通过差异编辑

点击齿轮图标 ⚙️ 打开 Roo Code 面板设置。将显示“提供商”部分。选择你想要配置的特定 API 配置配置文件。

当 “启用通过差异编辑” 被选中时:

  1. 更快的文件编辑: Roo 通过仅应用必要的更改来更快地修改文件。
  2. 防止截断写入: 系统自动检测并拒绝 AI 写入不完整文件内容的尝试,这种情况可能在使用大文件或复杂指令时发生。这有助于防止文件损坏。
禁用快速编辑
如果你取消选中“启用通过差异编辑”,Roo 将恢复为使用 write_to_file 工具为每次编辑写入整个文件内容,而不是使用 apply_diff 应用有针对性的更改。这种全写方法对于修改现有文件通常较慢,并导致更高的令牌使用。

匹配精度

此滑块控制 AI 识别的代码部分在应用更改之前必须与文件中的实际代码匹配的紧密程度。

  • 100%(默认): 要求精确匹配。这是最安全的选择,将不正确更改的风险降至最低。
  • 较低值(80%-99%): 允许“模糊”匹配。Roo 即使代码部分与 AI 预期的内容有微小差异,也可以应用更改。如果文件已略微修改,这可能很有用,但会增加在错误位置应用更改的风险。

使用低于 100% 的值时要格外小心。 较低的精度可能偶尔是必要的,但务必仔细审查提议的更改。

在内部,此设置会调整一个 fuzzyMatchThreshold,该阈值与 Levenshtein 距离等算法一起使用,以比较代码相似性。