
Bashの現在のコマンドに履歴の完全なコマンドを挿入するには?
私はいくつかの調査で、前のコマンドの最初の単語と最後の単語を挿入する2つの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'
繰り返すと、前の項目を挿入することは読者に練習問題として残ります;-)