⌘+k ctrl+k
1.4 (LTS)
搜索快捷键 cmd + k | ctrl + k
编辑

基于 linenoise 的 CLI 编辑器目前仅支持 macOS 和 Linux。

DuckDB 的 CLI 使用了一个基于 linenoise 的行编辑库,其快捷键基于 Emacs 模式的 readline。以下是可用命令列表。

移动

按键 操作
左 (Left) 向后移动一个字符
右 (Right) 向前移动一个字符
上 (Up) 向上移动一行。当处于第一行时,移动到上一条历史记录
下 (Down) 向下移动一行。当处于最后一行时,移动到下一条历史记录
Home 移动到缓冲区开头
End 移动到缓冲区末尾
Ctrl+Left 向后移动一个单词
Ctrl+Right 向前移动一个单词
Ctrl+A 移动到缓冲区开头
Ctrl+B 向后移动一个字符
Ctrl+E 移动到缓冲区末尾
Ctrl+F 向前移动一个字符
Alt+Left 向后移动一个单词
Alt+Right 向前移动一个单词

历史记录

按键 操作
Ctrl+P 移动到上一条历史记录
Ctrl+N 移动到下一条历史记录
Ctrl+R 搜索历史记录
Ctrl+S 搜索历史记录
Alt+< 移动到第一条历史记录
Alt+> 移动到最后一条历史记录
Alt+N 搜索历史记录
Alt+P 搜索历史记录

更改文本

按键 操作
Backspace 删除前一个字符
Delete 删除后一个字符
Ctrl+D 删除后一个字符。当缓冲区为空时,结束编辑
Ctrl+H 删除前一个字符
Ctrl+K 删除光标后的所有内容
Ctrl+T 交换当前字符和下一个字符
Ctrl+U 删除所有文本
Ctrl+W 删除前一个单词
Alt+C 将下一个单词转换为首字母大写
Alt+D 删除下一个单词
Alt+L 将下一个单词转换为小写
Alt+R 删除所有文本
Alt+T 交换当前单词和下一个单词
Alt+U 将下一个单词转换为大写
Alt+Backspace 删除前一个单词
Alt+\ 删除光标周围的空格

自动补全

按键 操作
Tab 自动补全。在自动补全时,循环切换到下一个条目
Shift+Tab 在自动补全时,循环切换到上一个条目
Esc+Esc 在自动补全时,撤销自动补全

其他

按键 操作
Enter 执行查询。如果查询未完成,则在缓冲区末尾插入换行符
Ctrl+J 执行查询。如果查询未完成,则在缓冲区末尾插入换行符
Ctrl+C 取消当前查询的编辑
Ctrl+G 取消当前查询的编辑
Ctrl+L 清屏
Ctrl+O 取消当前查询的编辑
Ctrl+X 在光标后插入一个换行符
Ctrl+Z 挂起 CLI 并返回 shell,使用 fg 重新打开

外部编辑器模式

使用 .edit\e 在外部文本编辑器中打开查询。

  • 当单独输入时,它会打开上一条命令进行编辑。
  • 当在多行命令内使用时,它会打开当前命令进行编辑。

编辑器将按照以下优先级从环境变量中获取:DUCKDB_EDITOR, EDITORVISUAL。如果均未设置,则使用 vi

此功能仅在基于 linenoise 的 CLI 编辑器中可用,该编辑器目前支持 macOS 和 Linux。

使用 Read-Line

如果您愿意,可以使用 rlwrap 直接在 shell 中使用 read-line。然后,使用 Shift+Enter 插入换行符,使用 Enter 执行查询。

rlwrap --substitute-prompt="D " duckdb -batch
© 2025 DuckDB 基金会,阿姆斯特丹,荷兰
行为准则 商标使用指南