我找不到从bash做到这一点的方法。那么有没有办法定义一个bash readline快捷方式,它将在光标位置插入一个动态生成的字符串?
例如,我想插入日期:
bind '"\C-xx": my-dynamical-date'
aaa bbb
--------
^ cursor is here
# After pressing "\C-xx":
aaa Sun Apr 22 22:19:00 CST 2018 bbb
------------------------------------
^ cursor is here
那么如何定义 my-dynamical-date readline 命令呢?
有点傻,但可能是这样的:
它首先输入一个文字
$(date)
,然后调用shell-expand-line
并向前移动 5 个单词。要保存键绑定,请将以下内容添加到
inputrc
:您可以编写一个函数来编辑 readline 变量
READLINE_POINT
和READLINE_LINE
. 例如,在您的.bashrc
:这使用
-x
绑定选项来调用您的函数。我不知道有什么方法可以将等价物放入~/.inputrc
文件中。(例如,您当然不能只以 开头-x
)。