关于 bash 或 vim 也有一些类似的问题,但我问的是整个系统。
有没有办法让ctrl+backspace或shift+backspace删除整个前一个单词?
例如,当我在浏览器中输入时,它也应该在那里工作。我可以做些什么来实现它?
如果这很重要的话,我会使用 Linux。
答案1
不幸的是,没有“整个系统”。一些图形程序是用 GTK 工具包编写的,并使用 GTK 提供的文本字段(和键盘快捷键);其他图形程序是用 Qt 编写的,使用 Qt 的文本输入;浏览器通常会做自己定制的事情(尽管它们至少会尝试模仿 GTK 或 Qt 快捷键);而基于终端的程序(如 Bash)则与其他程序完全不同。
在大多数图形程序中,使用Ctrl←Backspace删除最后一个单词直到标点符号。这是 GTK、Qt、Chrome、Firefox 和最多其他工具包。
在网络浏览器中,上述快捷方式应该有效……但请注意,网站通常有花哨的文本输入字段,它们会实现他们自己的快捷键覆盖浏览器的功能。例如,在 SuperUser 上,“写答案”框使 Ctrl+Z(撤消)的工作方式与浏览器通常的工作方式完全不同。
在 Bash(以及其他使用 Readline 的程序)中,使用Alt←Backspace删除最后一个标点符号 – 是的,Alt,而不是 Ctrl – 或者CtrlW删除至最后一个空间(例如,在输入路径时,一个人将整个路径作为单个“单词”删除,而另一个人仅删除最后一个组件。)
在各种全屏终端程序(如 Vim、Emacs、Nano 等)中,没有通用的快捷键——实际上每个程序的操作都不同。(有时甚至不同的区域之内同一个应用程序的工作方式不同。)有时相同的“Emacs 风格” Alt+Backspace 和 Ctrl+W 会起作用,有时则不会。
在使用原始基于行的 tty 输入的终端程序中,使用CtrlW。 (这和 Ctrl+U 是 tty 本身提供的唯一快捷方式。)