linux下快捷删除单词、行的命令

发布于:2025-09-07 ⋅ 阅读:(17) ⋅ 点赞:(0)

Bash(和大多数终端默认使用的 readline)中的键绑定

注意:Alt 键在部分终端/桌面环境会被截获,这时可以先按 Esc 作为 Meta(Alt)的替代键,再按后续键(例如 Esc + d 相当于 Alt+d)。

一、在 readline(默认 Emacs 风格)下的常用键

  • 光标移动

    • Ctrl+A:跳到行首
    • Ctrl+E:跳到行尾
    • Ctrl+F:向前一个字符(等同 →)
    • Ctrl+B:向后一个字符(等同 ←)
    • Alt+F(Esc then f):向前一个单词
    • Alt+B(Esc then b):向后一个单词
  • 删除 / 杀死 (kill)

    • Ctrl+U:删除(kill)从光标到行首的内容(你之前用到的)
    • Ctrl+K:删除(kill)从光标到行尾的内容(如果在行首,等于是清空整行)
    • Ctrl+W:删除(kill)光标左侧的一个单词(向后删词,基于空白分隔)
    • Alt+D(Esc then d):删除(kill)从光标到下一个单词末尾(向前删词)
    • Ctrl+D:删除光标下的字符(在空行会发送 EOF)
    • Ctrl+H 或 Backspace:删除光标左侧的字符
  • 复制/粘贴(readline 的 kill-ring)

    • Ctrl+Y:粘贴(yank),把最近一次 kill 的内容粘回来
    • M-y(Alt+y,或 Esc then y):在连续粘贴时旋转 kill-ring(类似 yank-pop)
  • 其他有用操作

    • Ctrl+T:交换当前字符与前一个字符(transpose-chars)
    • Alt+T(Esc then t):交换当前单词与前一个单词(transpose-words)
    • Ctrl+_ 或 Ctrl+X Ctrl+U:撤销(undo)
    • Ctrl+L:清屏(等同 clear)

二、举例说明

  • 删除从光标到行尾:按 Ctrl+K
    例如句子 “sudo apt install package”,光标在 “install” 后面,按 Ctrl+K 会删除 " install package"(取决光标位置)。
  • 删除当前光标左侧的单词(比如光标在 “package” 末尾):按 Ctrl+W(会删除 “package”)
  • 删除光标右侧的单词:按 Alt+D(或 Esc then d)

三、在 Bash 使用 vi 模式(如果你习惯 vi 操作)
启用:set -o vi
用法(先按 Esc 回到普通模式,再输入命令):

  • dd:删除整行
  • D 或 d$:删除从光标到行尾
  • d0:删除从光标到行首
  • dw:删除从光标到下一个单词开头(通常到单词边界)
  • db:删除到前一个单词开头
  • x:删除当前字符
  • p:粘贴(put)

回到 emacs 模式:set -o emacs

四、查看/修改当前绑定

  • 查看绑定:
    bind -P | grep ‘kill|yank|delete|transpose’
  • 查看某个命令是哪个键:
    bind -q backward-kill-word
  • 设定自定义绑定示例(把 Alt+Backspace 绑定到 backward-kill-word):
    bind ‘“\e\C-?”: backward-kill-word’

五、常见问题与提示

  • 如果 Alt 组合不起作用,试试 Esc 再按键(Esc 作为 Meta 前缀)。
  • 不同终端或桌面环境(如 GNOME Terminal、Terminator)可能对 Alt/Meta 有不同默认行为,可在终端设置中调整。
  • Ctrl+S / Ctrl+Q 是终端流控,按 Ctrl+S 会“卡住”输出,按 Ctrl+Q 恢复(这不是 readline 的快捷键)。

网站公告

今日签到

点亮在社区的每一天
去签到