edit_file(T-03;出处 Keelson EditFileTool.cs,借鉴 coxswain edit.ss):把文件里一段一字不差的
原文换成另一段。
为什么是精确原文、不是行号也不是 diff:行号会漂、改错行不报错;模型生成的 diff 常常是坏的、模糊匹配会打歪。 精确原文要么原样对上,要么什么都不发生。⚠️ 不唯一就拒(默默改第一处,模型无从察觉);要全改显式传 all。
0 次时按顺序给三种诊断(⛔ 拿诊断去做模糊匹配):① old 每行都带 read_file 的 L数字: 前缀;
② 空白归一化后能对上(附行号);③ 都不是 ⇒「先 read_file 看实际内容」。
新鲜度闸在匹配之前(建立在过期内容上的编辑可能照样对得上)。
edit_file(T-03;出处 Keelson `EditFileTool.cs`,借鉴 coxswain `edit.ss`):把文件里一段**一字不差**的 原文换成另一段。 为什么是精确原文、不是行号也不是 diff:行号会漂、改错行不报错;模型生成的 diff 常常是坏的、模糊匹配会打歪。 精确原文要么原样对上,要么什么都不发生。⚠️ 不唯一就拒(默默改第一处,模型无从察觉);要全改显式传 all。 0 次时按顺序给三种诊断(⛔ 拿诊断去做模糊匹配):① old 每行都带 read_file 的 `L数字:` 前缀; ② 空白归一化后能对上(附行号);③ 都不是 ⇒「先 read_file 看实际内容」。 新鲜度闸在匹配**之前**(建立在过期内容上的编辑可能照样对得上)。
(diagnose text old shown)0 次时的诊断(只诊断,⛔ 拿它去匹配)。⇒ [code message]
0 次时的诊断(只诊断,⛔ 拿它去匹配)。⇒ [code message]
(edit_file {:as args2846 :or {all false} :keys [path old new all]})把文件里的一段原文替换成另一段。old 必须与文件内容一字不差(含缩进与换行;不要带 read_file 输出里的「L行号: 」前缀),而且在文件里只出现一次 —— 出现多次时多带几行上下文让它唯一,或者传 all=true 全部替换。改一两处用它,不要用 write_file 重写整个文件。改之前先用 read_file 看一眼 —— 没读过的文件改不了。文件原来的换行、编码与 BOM 原样保留。
把文件里的一段原文替换成另一段。old 必须与文件内容一字不差(含缩进与换行;不要带 read_file 输出里的「L行号: 」前缀),而且在文件里只出现一次 —— 出现多次时多带几行上下文让它唯一,或者传 all=true 全部替换。改一两处用它,不要用 write_file 重写整个文件。改之前先用 read_file 看一眼 —— 没读过的文件改不了。文件原来的换行、编码与 BOM 原样保留。
(line-numbered? s)每一行(末尾换行之后的空串不算)都以 L数字: 开头吗(允许行首空白;至少一行)。
每一行(末尾换行之后的空串不算)都以 `L数字:` 开头吗(允许行首空白;至少一行)。
(occurrences hay needle)不重叠地找出全部出现位置("aa" 在 "aaa" 里算一次:与「全部替换」的实际次数一致)。
不重叠地找出全部出现位置("aa" 在 "aaa" 里算一次:与「全部替换」的实际次数一致)。
(plan-edit w {:keys [path old new all]})路径策略 ⇒ 存在 / 目录 ⇒ 读 ⇒ 解码 ⇒ 新鲜度(在匹配之前)⇒ 匹配 ⇒ 编码 ⇒ 语法闸。无副作用。
路径策略 ⇒ 存在 / 目录 ⇒ 读 ⇒ 解码 ⇒ 新鲜度(在匹配之前)⇒ 匹配 ⇒ 编码 ⇒ 语法闸。无副作用。
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |