聊天命令
aider 支持多种聊天命令,这些命令以斜杠 /
开头。你可以输入 /help
查看可用命令列表。
文件操作命令
/add <file1> <file2> ...
将文件添加到聊天会话中。aider 将能够查看这些文件的内容并编辑它们。
/add main.py util.py
/drop <file1> <file2> ...
从聊天会话中移除文件。aider 将不再查看或编辑这些文件。
/drop old_file.py
/clear
从聊天会话中移除所有文件。
/clear
/ls [<dir>]
列出当前目录或指定目录中的文件。
/ls
/ls src/components
/show [<file>]
显示当前会话中某个文件的内容。如果不指定文件,则显示所有文件。
/show
/show main.py
/files
列出当前会话中的所有文件。
/files
模型控制命令
/model <model_name>
切换使用的 AI 模型。模型名称可以是 OpenAI 模型(如 gpt-4
)或 Anthropic 模型(如 claude-2
)。
/model gpt-4
/models
列出可用的模型。
/models
版本控制命令
/diff
显示所有已编辑文件的 git diff。
/diff
/commit [<message>]
提交所有已编辑的文件。如果未提供提交消息,aider 会生成一个。
/commit
/commit "修复了登录页面的bug"
系统命令
/run <command>
在 shell 中运行命令并显示输出。
/run ls -l
/run python test.py
/help
显示帮助信息。
/help
/exit
退出 aider。
/exit
其他命令
/voice
切换语音模式(如果已配置)。
/voice
/tokens
显示当前对话的 token 使用统计。
/tokens
/history
显示当前对话的历史记录。
/history
/system
显示当前的系统提示信息。
/system
/undo
撤销上一次的代码编辑。
/undo
聊天内命令
斜杠命令
Aider 支持在聊天中使用斜杠开头的命令。
命令 | 描述 |
---|---|
/add | 将文件添加到聊天中,以便 aider 可以编辑或详细查看它们 |
/architect | 使用 2 个不同模型进入架构师/编辑器模式。如果未提供提示,则切换到架构师/编辑器模式。 |
/ask | 在不编辑任何文件的情况下询问关于代码库的问题。如果未提供提示,则切换到询问模式。 |
/chat-mode | 切换到新的聊天模式 |
/clear | 清除聊天历史记录 |
/code | 请求对代码进行更改。如果未提供提示,则切换到代码模式。 |
/commit | 提交在聊天之外进行的编辑到仓库(提交消息可选) |
/context | 进入上下文模式查看周围代码上下文。如果未提供提示,则切换到上下文模式。 |
/copy | 将最后一条助手消息复制到剪贴板 |
/copy-context | 以 Markdown 格式复制当前聊天上下文,适合粘贴到网页界面 |
/diff | 显示自上次消息以来的变更差异 |
/drop | 从聊天会话中移除文件以释放上下文空间 |
/edit | /editor 的别名:打开编辑器编写提示 |
/editor | 打开编辑器编写提示 |
/editor-model | 将编辑器模型切换到新的 LLM |
/exit | 退出应用程序 |
/git | 运行 git 命令(输出不包含在聊天中) |
/help | 询问关于 aider 的问题 |
/lint | 对聊天中的文件或所有未暂存文件进行 lint 和修复 |
/load | 从文件加载并执行命令 |
/ls | 列出所有已知文件并显示哪些包含在聊天会话中 |
/map | 打印当前仓库地图 |
/map-refresh | 强制刷新仓库地图 |
/model | 将主模型切换到新的 LLM |
/models | 搜索可用模型列表 |
/multiline-mode | 切换多行模式(交换 Enter 和 Meta+Enter 的行为) |
/paste | 从剪贴板粘贴图像/文本到聊天中。可为图像提供名称。 |
/quit | 退出应用程序 |
/read-only | 将文件添加为仅供参考,或将已添加的文件设为只读 |
/reasoning-effort | 设置推理努力级别(值:数字或 low/medium/high,取决于模型) |
/report | 通过打开 GitHub Issue 报告问题 |
/reset | 移除所有文件并清除聊天历史记录 |
/run | 运行 shell 命令并可选地将输出添加到聊天中(别名:!) |
/save | 将命令保存到文件,可重建当前聊天会话的文件 |
/settings | 打印当前设置 |
/test | 运行 shell 命令并在非零退出码时将输出添加到聊天中 |
/think-tokens | 设置思考令牌预算,例如:8096、8k、10.5k、0.5M 或 0 禁用。 |
/tokens | 报告当前聊天上下文使用的令牌数量 |
/undo | 撤销由 aider 完成的最后一次 git 提交 |
/voice | 录制并转录语音输入 |
/weak-model | 将弱模型切换到新的 LLM |
/web | 抓取网页,转换为 Markdown 并发送消息 |
您可以轻松地重新发送命令或消息。 使用上箭头 ⬆ 滚动浏览历史记录 或使用 CONTROL-R 搜索消息历史记录。
输入多行聊天消息
在聊天中发送多行长消息有以下几种方式:
- 直接将多行消息粘贴到聊天框中
- 在第一行单独输入
{
开始多行消息,在最后一行单独输入}
结束- 或者以
{tag
开头(”tag”可以是任意字母/数字组合)并以tag}
结尾。这在需要包含右大括号}
时特别有用
- 或者以
- 使用 Meta-ENTER 新建一行而不发送消息(某些环境下是 Esc+ENTER)
- 使用
/paste
命令从剪贴板粘贴文本到聊天框 - 使用
/editor
命令(如果终端支持,也可以按Ctrl-X Ctrl-E
)在编辑器中创建下一条聊天消息。详见编辑器配置文档 - 使用多行模式(multiline-mode),该模式会交换 Meta-Enter 和 Enter 的功能,使 Enter 插入新行,而 Meta-Enter 提交命令。启用方式:
- 在会话中使用
/multiline-mode
命令切换 - 使用
--multiline
参数
- 在会话中使用
带标签的示例:
{python
def hello():
print("Hello}") # 注意:包含右大括号
python}
用户常要求使用 SHIFT-ENTER 作为软换行。 遗憾的是,终端中没有可移植的方法来检测这个组合键。
使用 CONTROL-C 中断
当 aider 没有提供有用的响应时,随时可以使用 Control-C 安全地中断它。部分响应会保留在对话中,因此您可以在回复 LLM 时参考它,提供更多信息或方向。
快捷键绑定
交互式提示符基于 prompt-toolkit 构建,提供了 emacs 和 vi 风格的快捷键绑定。
Emacs 风格
上箭头
: 在当前消息中向上移动一行。下箭头
: 在当前消息中向下移动一行。Ctrl-上箭头
: 向后滚动查看之前发送的消息。Ctrl-下箭头
: 向前滚动查看之前发送的消息。Ctrl-A
: 将光标移动到行首。Ctrl-B
: 将光标向后移动一个字符。Ctrl-D
: 删除光标下的字符。Ctrl-E
: 将光标移动到行尾。Ctrl-F
: 将光标向前移动一个字符。Ctrl-K
: 删除从光标到行尾的内容。Ctrl-L
: 清屏。Ctrl-N
: 向下移动到下一条历史记录。Ctrl-P
: 向上移动到上一条历史记录。Ctrl-R
: 在命令历史中进行反向搜索。Ctrl-X Ctrl-E
: 在外部编辑器中打开当前输入内容。Ctrl-Y
: 粘贴(恢复)之前剪切的内容。
Vi 模式
要使用 vi/vim 键位绑定,请使用 --vim
参数运行 aider。
上箭头
: 在当前消息中向上移动一行下箭头
: 在当前消息中向下移动一行Ctrl+上箭头
: 向后滚动浏览之前发送的消息Ctrl+下箭头
: 向前滚动浏览之前发送的消息Esc
: 切换到命令模式i
: 切换到插入模式a
: 将光标向右移动一个字符并切换到插入模式A
: 将光标移动到行尾并切换到插入模式I
: 将光标移动到行首并切换到插入模式h
: 将光标向左移动一个字符j
: 将光标向下移动一行k
: 将光标向上移动一行l
: 将光标向右移动一个字符w
: 将光标向前移动一个单词b
: 将光标向后移动一个单词0
: 将光标移动到行首$
: 将光标移动到行尾x
: 删除光标下的字符dd
: 删除当前行u
: 撤销最后一次更改Ctrl+R
: 重做最后一次撤销的更改