聊天命令
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: 重做最后一次撤销的更改