自动关闭GNU Readline



在各种基于GNU Readline的CLI上工作如果有括号和引号的方法,请加快我的速度键入时自动关闭。

因此,在Bash(或其他CLI)上键入'(实际上附加右引号或括号''()并放置光标在写作之间。

我四处寻找了很长一段时间,试图找出任何相关的东西(例如~/.inputrc设置),但没有找到任何东西,我想知道这是否是完全可以实现。如有任何意见,我们将不胜感激。

这有点棘手,但可行。作为bash命令:

bind '"(" "C-v()e[D"'
bind '""" "C-v"C-v"e[D"'

作为.inputrc中的设置(因此任何使用readline的程序都会获得行为):

"(": "C-v()e[D"
""": "C-v"C-v"e[D"

您可以在每个键前面加上Control-v,以键入"纯"引号和左括号,而不会触发自动关闭行为。

以上假设使用Emacs键绑定。对于vi绑定,请使用

bind '"(": "C-v()ei"'
bind '""" "C-v"C-v"ei"'

"(": "C-v()ei"
 """: "C-v"C-v"ei"

本质上,只需将[D替换为i;不发送转义序列来向左移动光标,只需发送e,在插入括号/引号后返回到命令模式,然后重新进入插入模式,该模式应将光标定位在刚刚键入的字符内。

做你想做的事是不可能的,但有一个解决办法。将其输入rc:

"C-x"": """C-b"

运行:

info readline "comm" "readline init" "sample"

对于整个样品。

最新更新