03. 给助手上下文
用 @ 附上文件
把助手指向确切的文件——或确切的几行——而不是指望它自己找。
概念
在输入栏里输入 @,会在当前工作区打开模糊文件选择器。选中文件后插入 @path 片段。发送时这条引用仍在消息里,助手从你点名的文件开始,而不是先搜整棵树。
你也可以自己键入路径。选择器是为了让你不必记住全名。
为何重要
精确引用比大范围搜索更省。助手把这一回合花在你要的改动上,而不是定位文件。行范围更强:它说的是「这个函数」,不是「这个模块」。
已经知道文件时用 @。不知道时用普通文字问。
如何附上文件
- 在输入栏里输入
@。继续打字时,下拉列表会列出匹配的文件。 - 用
↑/↓移动(Ctrl+P/Ctrl+N,或Ctrl+K/Ctrl+J)。PageUp/PageDown(或Ctrl+U/Ctrl+D)翻一页。 - 按
Tab或Enter把高亮的文件插入为片段,然后继续写请求。 - 按
Esc关闭下拉列表,不插入。
@src/main.rs explain the startup path同一条输入可以附上多个文件。每次 @ 都会再打开选择器。
目录
以 / 结尾的查询只列出目录:
@src/- 在目录上按
Tab或Enter会进入该目录(查询变成@src/…/)。 - 在目录上按
→会填入路径且不带尾斜杠,下一次列表会同时显示其中的文件和文件夹。若只要目录,再键入/。 - 在文件上按
→与Tab相同:插入片段。
行范围
标出行号有两种办法。
自己键入。路径后面加 :N 或 :N-M(从 1 起算、含两端):
@src/main.rs:10
@src/main.rs:10-50在列表里挑。下拉列表里高亮某个文件时,按 : 或 Ctrl+L。会打开带语法高亮的查看器:
j/k移动光标。/在文件内搜索。v开始可视选区。Enter确认,并把@path:10或@path:10-12写到片段上。Esc取消,引用保持原样。
隐藏文件与 gitignore 文件
默认情况下选择器遵守 .gitignore,并跳过点文件。在查询前加 ! 即可包含它们:
@!.env
@!.github
@!.config/钻入时 ! 仍留在标记上(是 @!src,不是 @src)。
发送之后
片段是消息的一部分。助手把它当作指向该文件(或那些行)的指针,并从那里读取。你不必点名某个内部工具。
光标在文件片段上时按 Enter,会把片段展开回纯文本 @path,方便发送前改引用。