03. 给助手上下文

用 @ 附上文件

把助手指向确切的文件——或确切的几行——而不是指望它自己找。

概念

在输入栏里输入 @,会在当前工作区打开模糊文件选择器。选中文件后插入 @path 片段。发送时这条引用仍在消息里,助手从你点名的文件开始,而不是先搜整棵树。

你也可以自己键入路径。选择器是为了让你不必记住全名。

为何重要

精确引用比大范围搜索更省。助手把这一回合花在你要的改动上,而不是定位文件。行范围更强:它说的是「这个函数」,不是「这个模块」。

已经知道文件时用 @。不知道时用普通文字问。

如何附上文件

  1. 在输入栏里输入 @。继续打字时,下拉列表会列出匹配的文件。
  2. / 移动(Ctrl+P / Ctrl+N,或 Ctrl+K / Ctrl+J)。PageUp / PageDown(或 Ctrl+U / Ctrl+D)翻一页。
  3. TabEnter 把高亮的文件插入为片段,然后继续写请求。
  4. Esc 关闭下拉列表,不插入。
@src/main.rs explain the startup path

同一条输入可以附上多个文件。每次 @ 都会再打开选择器。

目录

/ 结尾的查询只列出目录:

@src/
  • 在目录上按 TabEnter 会进入该目录(查询变成 @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,方便发送前改引用。