Lac*_*cho 3 command-line bash shortcut-keys
当在终端中时,我可以使用Ctrl+w删除整个单词或 IP(.是每个八位字节的分隔符)。但是,如果我尝试Alt+d向右移动提示,终端会识别“。” in IP为一个分隔符,只删除一个chunk,直到删除.整个IP。
我如何可以调整使终端只承认空白的字的分离,甚至最好是有另一个快捷方式不同的分隔符:.,=,,,等?
它与使用 Ctrl+箭头(左和右)在终端中的操纵非常相似,并且行为基于为单词分隔符设置的内容相似。
我读到 Emacs 编辑器位于终端用来拥有这些快捷方式的后面,但我无法眨眼。
首先在终端中使用以下命令:
bind '"\ew": vi-forward-bigword'
Run Code Online (Sandbox Code Playgroud)
创建一个新的快捷键 -在本例中为Alt+ w- 将提示向前移动到当前或下一个单词的末尾。在这种情况下,单词(bigwords)由字母、数字和特殊字符(如“.”)组成。
现在你可以使用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"'
Run Code Online (Sandbox Code Playgroud)
最后,要永久进行这些更改,您所要做的就是将以下几行添加到您的~/.inputrc文件中(如果没有,请创建它):
"\ew": vi-forward-bigword
"\eq": "\ew \C-w"
Run Code Online (Sandbox Code Playgroud)