@everything
在编辑器 / 资源管理器 / Git 视图中按 Ctrl+L,把当前代码引用(路径:行号 或 路径:行号-行号)以纯文本形式插入到活动集成终端的光标处,不执行回车,焦点跳到终端——配合 Claude Code / Codex 等 AI 终端工具使用。
默认输出(Claude Code 风格):@src/foo.ts:42
功能
- 编辑器场景:根据光标 / 选区生成引用
- 无选中:
@src/foo.ts:42
- 单行部分选中:
@src/foo.ts:42:10-25(行号:起始列-结束列)
- 多行选中:
@src/foo.ts:42-58(end 在行首时不纳入下一行)
- 资源管理器场景:单选 / 多选文件,生成多个空格分隔的引用
- SCM(Git)视图场景:正确解析变更文件的真实路径(非
.git 临时路径)
- 路径含空格时自动用双引号包裹:
"@my dir/foo.ts:10"
- 无活动终端时自动创建
- 不自动回车,让你继续输入问题
快捷键
| 快捷键 |
场景 |
命令 |
Ctrl+L |
编辑器 |
@everything: Send Reference |
Ctrl+L |
资源管理器 |
@everything: Send File Reference |
Ctrl+L |
SCM 视图 |
@everything: Send File Reference |
关于 Ctrl+L 的覆盖
本扩展默认覆盖 VSCode 原生的 Ctrl+L(expandLineSelection,扩展选区到行)。如果不习惯,可以恢复原生行为,在 keybindings.json(命令面板搜索 Open Keyboard Shortcuts (JSON))中加入:
[
{ "key": "ctrl+l", "command": "expandLineSelection", "when": "editorTextFocus" }
]
或者在键盘快捷方式 UI(Ctrl+K Ctrl+S)里把 @everything 的绑定改为你喜欢的按键。
配置项
前缀 at-everything.,在 settings.json 中配置:
| 配置项 |
类型 |
默认 |
作用 |
at-everything.prefix |
string |
"@" |
路径前缀。空串 -> 无 @ |
at-everything.separator |
string |
":" |
路径与行号分隔符。设为 "#L" -> GitHub 风格 |
at-everything.appendSpace |
boolean |
true |
引用末尾是否追加空格 |
示例
{
// Claude Code 风格(默认)
"at-everything.prefix": "@",
"at-everything.separator": ":",
"at-everything.appendSpace": true
// -> @src/foo.ts:42
}
{
// GitHub 风格
"at-everything.prefix": "",
"at-everything.separator": "#L",
"at-everything.appendSpace": false
// -> src/foo.ts#L42
}
输出格式速查
| 场景 |
选中状态 |
输出(默认配置) |
| 编辑器 |
光标无选中 |
@src/foo.ts:42 |
| 编辑器 |
单行部分选中(10~25 列) |
@src/foo.ts:42:10-25 |
| 编辑器 |
多行选中(42~58 行) |
@src/foo.ts:42-58 |
| 资源管理器 |
单选/多选文件 |
@src/foo.ts @README.md |
| SCM 视图 |
选中变更文件 |
@src/foo.ts |
| 路径含空格 |
任意 |
"@my dir/foo.ts:10" |
开发 / 调试 / 打包
npm install
npm run build # 一次性构建(esbuild -> dist/extension.js)
npm run watch # 监听重建
# F5 -> 启动 Extension Development Host
npm run package # vsce package -> 生成 .vsix
code --install-extension at-everything-1.0.0.vsix
License
MIT (c) Eureka1024