在各种基于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"
对于整个样品。