在bash命令行中,如何删除光标前的所有字母?

61

如何在bash命令行中删除光标前的所有字母?我知道Ctrl-k可以删除光标后的所有字母。


1
相关问题 - Thor
Readline 处理键盘快捷键。另请参阅 man 3 readline。这些适用于许多交互式命令行工具,而不仅仅是 bash。 - Jack Wasey
4个回答

109

Ctrl-u - 剪切光标前的所有内容


Bash 的其他快捷键:

  • Ctrl-a 将光标移动到行首
  • Ctrl-e 将光标移动到行尾
  • Ctrl-b 将光标向后移动一个单词
  • Ctrl-f 将光标向前移动一个单词
  • Ctrl-w 剪切最后一个单词
  • Ctrl-k 剪切光标后的所有内容
  • Ctrl-y 粘贴最后一次剪切的内容
  • Ctrl-_ 撤销上一次操作

通过 bash shell 的 man 页面可以发现更多快捷键:man bash

额外的 bash 命令行快捷键速查表:http://www.bigsmoke.us/readline/shortcuts

请参阅此处的文档:http://www.gnu.org/software/bash/manual/bashref.html#Commands-For-Killing

必须提醒您:通过 Julia 的漫画学习 Bash、Linux 和技术:https://twitter.com/b0rk/media

Julia on Bash


7
在我的系统中,按下"ctrl-b"和"ctrl-f"会移动一个字符。 - Vaughn Cato
1
这些的“官方”文档在哪里?为什么你只展示了鱼而不告诉如何钓鱼呢? - qazwsx
4
你知道在zsh中相当于Ctrl+u的快捷键是什么吗? - qazwsx
2
在zsh中,Alt+w可以清除光标前的所有字符。 - xjcl
2
@qazwsx 至少在某些情况下,GNU readline 是相关的软件,由 GNU bash 维护者维护,并与之同步。请参见 https://tiswww.case.edu/php/chet/readline/rluserman.html 。此外,man 3 readline 充满了奇特之处。 - Jack Wasey
显示剩余6条评论

17

zsh中,按下Alt+w会清除光标前的所有字符。

与bash不同的是,这并不是剪切,而只是删除它们。

这适用于zsh的Emacs模式(默认模式),而不适用于Vi模式。


实际上,我最近了解到当 readline(实际上不是 bash)删除时,bash 会执行“cut”操作。在我的 Linux 机器上,我可以使用 control+W 剪切一个单词,并使用 control-Y 将其“粘贴”回来。有许多令人烦恼和晦涩的键组合,但学习一些重要的快捷键已经足够在 shell 中工作了。(如果你敢使用 readline 的 vim 模式,你可以将 yank 用于不同的含义。)我的头很疼,但光标键却不那么容易磨损。请参见 https://tiswww.case.edu/php/chet/readline/rluserman.html。 - Jack Wasey

6
热键Ctrl+U可以帮助您实现这一目标。

-2

Ctrl+x:删除光标前的所有输入内容


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接