Answers:
这取决于您的Shell及其活动的命令行编辑模式。
对于具有Emacs命令行编辑模式的shell(set -o emacs在某些shell中),请使用Alt+D(出于某种原因,这在macOS上不起作用,但会打印字符∂,请Escd改用)。
对于vi命令行编辑模式(壳set -o vi在一些炮弹),使用Escdw(这个确实在MacOS工作,以及)。
对于tty行规则,^W删除前一个空格分隔的单词。
在vi插入模式下的编辑器中,^W向后删除到第一个数字或非数字序列的开头(在上foo-+-bar.. baz,它首先删除baz,然后是..,然后是bar,然后是-+-,然后是foo)。
在emacs编辑器中,^W从光标位置删除到标记(用设置的标记Ctrl+Space)。
有些行编辑器readline(在模式下)(在bash,gdb...下),zle(在zsh)使用(在下),pdksh在这种情况vi下的行为类似vi,而在emacs模式下的行为则在tty行规整下(不是emacs)。
libedit(使用BSD壳或(任选地)dash),tcshAT&T ksh,在emacs模式,举止像emacs,其中^W删除所述标记(最初在缓冲器的开头)。
要删除向前的单词,请在vi编辑器中以命令(常规)模式执行此操作,dw以删除到下一个数字或非数字序列的开头(或行的末尾)并dW删除到下一个非空格序列(^Wtty行规的的垂线)。
在emacs行编辑器,Meta-D将删除该结束的alnum字符下一序列。运动运算符(Meta-B,Meta-F)的行为类似。
命令行编辑器在vi模式下时的行为类似于vi,但是在emacs模式下,您有两个主要学校:tcsh学校和ksh学校。
该ksh学校(readline,ksh,yash)的行为大多喜欢emacs(fish的行为是它怎样对待非alnum,非空白字符都略有不同emacs和vi模式)。
在tcsh学校(tcsh,libedit,zsh),字运动是基于空格分隔的单词等等都是与tty线路学科的一贯^W在这方面。
在中zsh,可以为所有单词运动窗口小部件使用不同的单词样式自定义行为。
对于readline,您可以通过添加以下内容来获得tcsh学校(并Meta-D删除与该单词相同的单词Ctrl-W)~/.inputrc:
set keymap vi-move
"\e[EMACS~": emacs-editing-mode
set keymap emacs
"\e[VI~": vi-movement-mode
"\ed": "\e[VI~dW\e[EMACS~"
"\ef": vi-fWord
"\eb": vi-bWord
或者,^W通过以下方式将其他单词运动控件(如Meta-Backscape)对齐:
set keymap emacs
"\C-W": backward-kill-word
至于Meta关键是什么,请看那里。
在Linux中,尝试Ctrl+k从光标所在位置到单词末尾删除。
下面列出了一些其他快捷方式(在Linux中有效):
Ctrl+e ->将光标移到单词的末尾。Ctrl+t ->互换字母的位置。Ctrl+y ->将后缀“ hh”添加到当前单词。Ctrl+u ->删除整行。Ctrl+o ->与Enter键相同。Ctrl+p ->与上箭头按钮相同。Ctrl+a ->将光标移至命令的起始位置。Ctrl+d ->关闭终端。Ctrl+f ->将光标向前移动一个字符。Ctrl+h ->与Backspace键相同。Ctrl+j ->与Enter键相同。Ctrl+m ->与Enter键相同。Ctrl+b->与右箭头键相同。14- Ctrl+4 >删除单词Ctrl+k删除到行尾。Ctrl+u删除整行(如果光标位于末尾)。Ctrl+d发送EOF。Ctrl+e转到的端线,等等
bash中vi模式下,你可以使用dW删除这些