如何将历史记录中的整个命令插入到 Bash 中的当前命令中?
我做了一些研究并确定了两个 GNU Readline 键绑定,它们将插入上一个命令的第一个和最后一个单词。不幸的是,我不知道如何为这些键绑定提供参数n
(如何?),即使我知道,从历史记录中插入长命令也是不可行的。
Ctrl-Alt-y
将第一个参数插入到上一个命令中。使用参数 n,插入上一个命令中的第 n 个单词。
Alt-.
Alt-_
将最后一个参数插入到上一个命令中。使用参数 n,插入上一个命令中的第 n 个单词。
GNU Readline 是否支持将历史记录中的整个命令插入到当前命令中?
免责声明:我不是在寻找 Bash 命令替换。
答案1
答案2
您可以自己创建绑定。您只需决定将其绑定到哪个键即可。示例为Ctrl-T
insert_last_line(){
local l=$READLINE_LINE p=READLINE_POINT h=$(fc -nl -0)
READLINE_LINE=${l:0:p}${h#* }${l:p}
}
bind -x '"\C-T": insert_last_line'
让它在重复时插入以前的条目是留给读者的练习;-)