如何將歷史記錄中的整個命令插入 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'
讓它在重複時插入以前的條目是留給讀者的練習;-)