在 Cursor 中使用 PRECC
PRECC 最初是作为 Claude Code 的 PreToolUse 钩子构建的,但其底层技能库——cargo-wrong-dir、git-wrong-dir、npm-wrong-dir、jj-translate 等——与编辑器无关。通过一小段 shell 代码片段,你可以将 Cursor 集成终端中输入的每个命令都路由到 precc-hook,让那些为 Claude Code 节省 token 的相同重写规则同样在 Cursor 上生效。
Requires
precc≥ 0.3.45. Earlier versions don’t plant the integration scripts under<data_dir>/integrations/cursor/. Runprecc updateto upgrade if you have an older release.
覆盖范围
此集成会捕获你在 Cursor 终端中输入的命令。在 zsh 上,它会在你按下回车之前自动重写命令行;在 bash 上,它只能发出警告(DEBUG trap 是在命令定型之后才触发的)。Cursor 的智能体以 bash -c 子进程生成的命令不会加载你的交互式 shell 初始化文件,因此钩子无法看到它们;要弥合这一缺口需要一个 PATH 垫片,目前该目录尚未提供。Cursor 的非 shell 工具调用(文件编辑、代码搜索)同样不在覆盖范围内。
安装
zsh(自动重写)
source ~/.local/share/precc/integrations/cursor/precc-preexec.zsh
运行一次 precc init —— 它会将脚本安装到上述路径(使用 precc 存储中的 <data_dir>,因此 CLAUDE_CONFIG_DIR 等配置隔离会被遵守)。然后将 source 行添加到 ~/.zshrc。precc-hook 和 jq 必须在 PATH 中;如果任一缺失,脚本会安全地不执行任何操作。
bash(仅警告)
source ~/.local/share/precc/integrations/cursor/precc-preexec.bash
运行一次 precc init —— 它会将脚本安装到上述路径。然后将 source 行添加到 ~/.bashrc。DEBUG 陷阱会将建议的改写输出到 stderr,但不会自动应用;你可以手动复制该建议。
验证
在 Cursor 的终端中,执行 cd /tmp(或任意 Rust 项目之外的目录),输入一个 Rust 构建命令然后按下回车。在 zsh 上,缓冲区应原地变为 PRECC 重写后的形式(通常是 cd PATH && … 风格的前置)。在 bash 上,你应该会在 stderr 上看到一行 [precc] suggested rewrite: …。
注意事项
- 会引入
precc-hook的每次按键延迟。钩子的目标是 p50 < 5 ms,但在冷缓存下 p99 会更高;请参阅本书中关于钩子延迟的说明。 - 此路径不上报遥测。钩子会以它检测到的任何
agent_class上报,但那不会是claude-code——你在 Cursor 上节省的部分不会出现在公开统计页面上。 - 重写原因会通过
zle -M闪现一次按键时长。安静而非模态。 - 要覆盖智能体场景,下一步计划是引入
PATH垫片(在~/.precc/bin/cargo、~/.precc/bin/git、…… 处放置包装器)。