在终端中,我可以使用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"