使用各种基于 GNU Readline 的 CLI,如果有一种方法可以在您键入时自动关闭括号和引号,这将大大加快我的速度。
因此,在 Bash(或其他 CLI)上键入'
或(
实际上会附加右引号或括号''
,或者()
将光标放在两者之间以进行书写。
我环顾四周,试图找出任何相关的东西(例如~/.inputrc
设置),但没有找到任何东西,我想知道这是否可以实现。任何意见将不胜感激。
使用各种基于 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
在插入括号/引号后发送回命令模式,然后重新进入插入模式,这应该将光标定位在刚刚输入的字符内。
完全按照自己的意愿去做是不可能的,但是有一种解决方法。把它放在 inputrc 中:
"\C-x\"": "\"\"C-b"
跑:
info readline "comm" "readline init" "sample"
对于整个样本。