使用各种基于GNU Readline的CLI,它会非常有用 如果有方法有括号和引号,请加快速度 键入时自动关闭。
因此,实际上在Bash(或其他CLI)上键入'
或(
附加结束引号或括号''
或()
并放置光标
在写作之间。
我已经环顾了一段时间试图找出任何相关内容
(例如~/.inputrc
设置),但没有找到任何东西,我想知道是不是
完全可以实现。任何意见将不胜感激。
答案 0 :(得分:3)
这有点棘手,但可行。作为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
以回退到命令模式,然后重新进入插入模式,这应该将光标定位在刚刚键入的字符内。
答案 1 :(得分:0)
完全按照自己的意愿行事是不可能的,但有一个解决方法。 把它放在inputrc:
"\C-x\"": "\"\"C-b"
执行命令
info readline "comm" "readline init" "sample"
整个样本。