linux下快捷删除单词、行的命令
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 的快捷键)。