3517

18 分钟

#Bash 的 bind 命令

bind [OPTION]... [KEY:ACT]

功能

设置 Readline 快捷键绑定和变量。

类型

Bash 内置命令。

参数

  • OPTION - 选项:
    • -m keymap - 在本命令执行期间,使用 KEYMAP 作为键盘映射;可接受的键盘映射名称包括 emacsemacs-standardemacs-metaemacs-ctlxvivi-movevi-commandvi-insert
    • -l - 列出函数名
    • -P - 列出函数名称和绑定
    • -p - 以命令行的格式列出函数和绑定
    • -S - 列出调用宏的键序列及其值
    • -s - 以命令行的格式列出调用宏的键序列及其值
    • -V - 列出变量名称和值
    • -v - 以命令行的格式列出变量名称和值
    • -q func - 查询绑定 func 的快捷键
    • -u func - 取消所有绑定 func 的快捷键
    • -r keyseq - 取消所有 keyseq 快捷键绑定的操作
    • -f filename - 从 filename 文件读取绑定
    • -x keyseq:command - 绑定快捷键 keyseq 和命令 command
    • -X - 以命令行的格式列出 -x 绑定的快捷键
  • KEY - 快捷键
  • ACT - 快捷键触发的动作;可以是命令或函数

#示例

查看绑定

$ bind -p

"\C-g": abort
"\C-x\C-g": abort
"\e\C-g": abort
"\C-j": accept-line
"\C-m": accept-line
...

查询绑定

$ bind -q yank                          # 查看哪个快捷键是“粘贴”:Ctrl + L
yank can be invoked via "\C-y".
$ bind -q kill-line                     # 查看哪个快捷键是“剪切到行末”:Ctrl + K
kill-line can be invoked via "\C-k".
$ bind -q backward-kill-line            # 查看哪个快捷键是“剪切到行首”:Ctrl + X + ESC
backward-kill-line can be invoked via "\C-x\C-?".

设置绑定

$ bind '\C-x:backward-kill-line'        # 将“剪切到行首”绑定到 Ctrl + X

#手册

更新: 2026/4/24

作者: PlanC

创建: 2026/4/24