Lac*_*cho 11 bash keyboard-shortcuts readline
当在终端中时,我可以使用Ctrl+w删除整个单词或 IP(.是每个八位字节的分隔符)。但是,如果我尝试Alt+d向右移动提示,终端会识别“。” in IP为一个分隔符,只删除一个chunk,直到删除.整个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"'
Run Code Online (Sandbox Code Playgroud)
最后,要永久进行这些更改,您所要做的就是将以下几行添加到您的~/.inputrc文件中(如果没有,请创建它):
"\ew": vi-forward-bigword
"\eq": "\ew \C-w"
Run Code Online (Sandbox Code Playgroud)
但我得到了这个结果:
添加后,Alt+w仍然不起作用,并且Ctrl+?和?错误不再起作用。终端输出;5D以及;5C当这些输出用于从单词移动到单词时......
两个版本有什么区别?
如果您是 Emacs 用户,您可能不想使用我的答案,但仍应在此页面上注明,因此如下:
\n\n您可以vi非常轻松地在 bash shell 中使用键绑定。类型set -o vi。将其添加到您的.bashrc如果您喜欢结果,
您的具体问题的答案,删除前进到下一个空格,可以通过dt<Space>(删除直到空格)或只是完成dE(删除到空格分隔的单词末尾)来完成。
使用标准vi键绑定\xe2\x80\x94,要习惯的主要事情(如果您已经是 vi 用户)是默认情况下您将处于插入模式。因此,要使用上述普通模式命令,<Esc>请先键入。Alt或者,您可以在键入命令的第一个字母时按住该键。例如,kvi命令是向上一行,所以<Alt>k可以像向上箭头\xe2\x80\x94 一样使用来返回历史记录中的上一个命令。
如果.inputrc存在,/etc/inputrc则不再读取,因此您将丢失当前使用的所有设置(.inputrc覆盖全局设置)。复制全局的并添加您的修改即可。然后它应该像以前一样工作,添加新的绑定。或者,或者只是将bind命令放入您的命令中.bashrc,每次您打开交互式 shell 时都会运行它 - 基本上与您现在的效果相同。
如果有人知道如何在 中“获取/包含”另一个配置文件.inputrc,我非常想听听。