如何删除 shell 中单词的剩余部分?

如何删除 shell 中单词的剩余部分?

我想知道是否有一个键绑定可以删除单词在壳中。

我在这里说的“剩余”是指留在右边行光标。

示例(_|_是光标):

> mv _|_john.csv ~/.hidden
... CTRL-something ...
> mv ~/.hidden

一种Ctrl+的“轻量”版本K(它将整个尾随字符删除直到换行符)。

答案1

bash用于readline(3)仅将字母数字定义为单词组成字符的行编辑。

M-d现在,如果您来自世界,则删除下一个单词的键绑定是emacs使用Esc+dAlt+ d

现在,因为john.csv根据定义是由两个单词组成的,所以您需要按两次键。

答案2

Alt+d将删除单词的剩余部分。但是,由于.单词以 a 结尾,因此您需要按两次才能删除john.csv

答案3

如果您已将编辑模式设置为vi(使用set -o vi),则可以使用d删除命令。首先,输入Esc进入命令模式。然后dw会删除一个短单词 — 可以是连续的字母数字字符序列,也可以是连续的非字母数字(非空白)字符序列,以先到者为准。在您的示例中,如果您输入dw,它会删除john并留下mv _|_.csv ~/.hidden。第二个dw会删除.,第三个将删除csv  (即,csv以及其后的空格)。

如果要删除的“单词”(文件名)足够短,您可以轻松计算出它包含的短单词,则可以通过键入来简化此过程3dw。但更好的解决方案可能是键入dW(大写“W”)以删除一个长单词 - 一串连续的非空白字符(无论它们是否是字母数字) 以下连续的空白序列。

相关内容