删除输入并前进到下一个空格

删除输入并前进到下一个空格

在终端中,我可以使用Ctrl+w删除整个单词或 IP(.每个八位字节的分隔符),当向左移动提示符时。但是,如果我尝试使用Alt+d向右移动提示符,终端会将 IP 中的“.”识别为分隔符,并且只删除一个块,直到删除.整个 IP。

我该如何调整,以便终端仅识别单词分隔符的空格,或者更好地为不同的分隔符提供另一个快捷方式:.,,,等等?=,

它与在终端中使用 Ctrl+箭头(左和右)进行操作非常相似,并且根据单词分隔符的设置,行为也类似。

我读到 Emacs 编辑器位于用于使用这些快捷方式的终端后面,但我无法使用它。

答案1

首先在终端中使用以下命令:

bind '"\ew": vi-forward-bigword'

创建一个新的快捷键 -在本例中Alt为 + w- 它将提示向前移动到当前单词或下一个单词的末尾。在本例中为单词 (大词)由字母、数字及特殊字符(如“.”)组成。

现在您可以使用Alt+w后跟Ctrl+w来完成您的愿望。

在我的回答中查看更多信息这里


此外,在我查看之后此问答,我了解到以下内容:

使用bind,您可以绑定按键来执行以下三件事之一,但没有它们的组合

  • 执行 readline 命令: bind '"key": command'
  • 执行一系列击键:bind '"key":"keystrokes"'
  • 执行 shell 命令:bind -x '"key": shell-command'

因此,现在,如果您想将这两个按键(Alt+w后跟Ctrl+ w)组合成一个新的按键,您将需要绑定一个新的按键(在我的示例中为Alt+ q)来执行前面的按键,如下所示:

bind '"\eq": "\ew \C-w"'

最后,要永久地进行这些更改,您需要做的就是将以下几行添加到您的~/.inputrc文件中(如果您没有,请创建它):

"\ew": vi-forward-bigword
"\eq": "\ew \C-w"

相关内容