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

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

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

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

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

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

我正在尝试在 Ubuntu 10 中实现这一点。

这里:https://askubuntu.com/questions/577433/deleting-input-forward-to-the-next-space这是我在 Ubuntu 14 的其他论坛中建议的。

我试过这个:

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

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

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

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

但我得到的结果是:

添加后,Alt+w仍然不起作用,并且Ctrl+错误不再起作用。终端输出;5D以及;5C当它们用于从一个单词移动到另一个单词时......

这两个版本有什么区别?

答案1

如果您是 Emacs 用户,您可能不想使用我的答案,但仍应在此页面上注明,因此如下:

您可以vi非常轻松地在 bash shell 中使用键绑定。类型set -o vi.bashrc如果您喜欢结果,请将其添加到您的中。

您的具体问题的答案,即向前删除到下一个空格,可以通过dt<Space>(删除直到空格)或仅dE(删除到空格分隔的单词末尾)来完成。

使用标准vi键绑定 - 要习惯的主要事情(如果您已经是 vi 用户)是默认情况下您将处于插入模式。因此,要使用上述普通模式命令,请先键入<Esc>。或者,您可以Alt在键入命令的第一个字母时按住该键。例如,kvi 命令是向上一行,因此<Alt>k可以像向上箭头一样使用,以返回历史记录中的一个命令。

答案2

这也可以使用查找空间、前进、删除单词来完成。

"\eq": "\C-]\ \C-f\C-w"

答案3

如果.inputrc存在,/etc/inputrc则不再读取,因此您将丢失当前使用的所有设置(.inputrc覆盖全局设置)。复制全局的并添加您的修改即可。然后它应该像以前一样工作,添加新的绑定。或者,或者只是将bind命令放入您的命令中.bashrc,每次您打开交互式 shell 时都会运行它 - 基本上与您现在的效果相同。

如果有人知道如何在 中“获取/包含”另一个配置文件.inputrc,我非常想听听。

相关内容