一键导入
open
用系统编辑器打开文件。无参数时打开上一次对话产生或修改的文件;带参数时打开指定文件。编辑器优先级:subl > atom > zed > geditor > ghostwriter > glow > micro > nano > pico > marktext > typora > nvim > vim。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
用系统编辑器打开文件。无参数时打开上一次对话产生或修改的文件;带参数时打开指定文件。编辑器优先级:subl > atom > zed > geditor > ghostwriter > glow > micro > nano > pico > marktext > typora > nvim > vim。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
逐章反思,一次只扫一章,发现章节中遗漏的实体页面和改进建议。项目路径见 local/config/chapter-scan.config.md。
Wiki 编委审稿:检查近期 butler 工作是否违反质量规范,输出分级违规报告,给出具体纠正建议。项目路径见 local/config/editor.config.md。
升级当前 wiki 页面质量一档(stub→basic→standard→featured→premium)。诊断页面当前指标缺口,执行对应补充操作(扩写散文、补充引用、加节)。当用户说 /enrich PAGE 或 /enrich PAGE 目标档 时触发。
启动 Wiki 管家永续 loop。两队列系统(content/housekeeping)。每轮:W1队列选任务→W2执行→W3自评→记账,无需用户逐轮确认。每11轮discover+housekeeping-scan,每17轮执行ADM4-commit,每29轮W5反思,每37轮H17覆盖扫描。带 --auto 参数时忽略 fail 暂停 + 上下文将满时 ScheduleWakeup 自续。项目路径见 local/config.md。
启动或推进当前 Wiki 的 GROW 增长流程。读取 GROW.md 中的当前阶段,按 $MEMEX_ROOT/GROW.spec.md 执行下一个未完成的 Phase。BIRTH Phase 10 完成后调用。
启动 Wiki 管家永续 loop。两队列系统(content/housekeeping)。每轮:W1队列选任务→W2执行→W3自评→记账,无需用户逐轮确认。每11轮discover+housekeeping-scan,每17轮自动/wiki发布,每29轮W5反思,每37轮H17覆盖扫描。带 --auto 参数时忽略 fail 暂停 + 上下文将满时 ScheduleWakeup 自续。项目路径见 local/config.md。
| name | open |
| description | 用系统编辑器打开文件。无参数时打开上一次对话产生或修改的文件;带参数时打开指定文件。编辑器优先级:subl > atom > zed > geditor > ghostwriter > glow > micro > nano > pico > marktext > typora > nvim > vim。 |
| 调用 | 说明 |
|---|---|
/open | 打开上一次对话中产生或修改的文件 |
/open <路径> | 打开指定文件(支持相对路径、绝对路径、模糊描述) |
优先读取缓存,缓存未命中时才遍历候选列表:
CACHE_FILE="$HOME/.cache/claude_open_editor"
if [ -f "$CACHE_FILE" ]; then
EDITOR_CMD=$(cat "$CACHE_FILE")
else
_detect_editor() {
for candidate in subl atom zed geditor ghostwriter glow micro nano pico marktext typora nvim vim ; do
[ -z "$candidate" ] && continue
if command -v "$candidate" &>/dev/null; then
echo "$candidate"; return
fi
done
echo ""
}
EDITOR_CMD=$(_detect_editor)
[ -n "$EDITOR_CMD" ] && mkdir -p "$HOME/.cache" && echo "$EDITOR_CMD" > "$CACHE_FILE"
fi
若没有找到任何可用编辑器,向用户报告并退出。
缓存刷新:若用户在参数中指定了编辑器(如 use subl),以指定值为准并更新缓存:
echo "$EDITOR_CMD" > "$CACHE_FILE"
回顾当前对话中自己使用过的工具调用历史,找出最近一次通过 Edit、Write、NotebookEdit 工具操作的文件路径,即为目标文件。
若找到多个候选(同一对话中编辑了多个文件),展示列表让用户选择,默认选最后一个并告知用户。
参数可以是:
明确路径(绝对或相对):直接使用
文件名片段(如 config、SKILL):在当前目录递归搜索
find . -not -path '*/.git/*' -name "*${PARAM}*" -type f | head -10
模糊描述(如 grow phase 6 summary、上次改的 wiki 页面):按以下顺序搜索,任一命中则停止
1. 全局文件名匹配:用 find 递归搜索当前 wiki repo
FOUND=$(find . -not -path '*/.git/*' -type f -iname "*${PARAM}*" 2>/dev/null | head -20)
2. 多关键词组合:若参数含空格/连字符,分词后逐词过滤
if [ -z "$FOUND" ]; then
WORDS=$(echo "$PARAM" | sed 's/[-_]/ /g')
# 从全文件列表开始,逐词缩小范围
CANDIDATES=$(find . -not -path '*/.git/*' -type f 2>/dev/null)
for w in $WORDS; do
[ ${#w} -le 2 ] && continue # 忽略太短的词
CANDIDATES=$(echo "$CANDIDATES" | grep -i "$w")
done
FOUND=$(echo "$CANDIDATES" | head -20)
fi
3. 按修改时间排序(最近修改优先)
if [ -n "$FOUND" ]; then
FOUND=$(echo "$FOUND" | xargs -r stat -c '%Y %n' 2>/dev/null | sort -rn | head -10 | cut -d' ' -f2-)
fi
4. 兜底搜索 $MEMEX_ROOT:当前 repo 未搜到时
if [ -z "$FOUND" ] && [ -n "$MEMEX_ROOT" ]; then
FOUND=$(find "$MEMEX_ROOT" -not -path '*/.git/*' -type f -iname "*${PARAM}*" 2>/dev/null | head -20)
fi
5. 结果处理:
确定文件路径后,用检测到的编辑器打开:
"$EDITOR_CMD" "$FILE_PATH"
cursor、code、gedit):后台启动,不等待进程退出nvim、vim、nano):前台运行,等待用户退出判断是否为 GUI 编辑器:
case "$EDITOR_CMD" in
cursor|code|gedit|subl|atom)
"$EDITOR_CMD" "$FILE_PATH" &
echo "已用 $EDITOR_CMD 打开:$FILE_PATH"
;;
*)
"$EDITOR_CMD" "$FILE_PATH"
;;
esac
向用户报告: