Bashシェルから古い行を現在の行に挿入する方法は?

Bashシェルから古い行を現在の行に挿入する方法は?

!!Bashでシェル内でインタラクティブにコマンドを編集するときにコマンドラインをどのように拡張しますか?vi編集モードで作業しています。

新しいコマンドラインが入力されたら、前の行をインポートして拡張したいと思います。

コマンドを実行する前に拡張したいと思います。

ベストアンサー1

emacsモードで試すことができますAlt-^(に似ていますが、Ctrl-Alt-e動作するはずです)。ただ歴史的拡張)。

機能しない場合(たとえば、viモードで履歴拡張のデフォルトバインディングがない場合)、手動でバインディングを追加できます。

bind '"\e^": history-expand-line'

.bashrc どこかに

"\e^": history-expand-line

あなたの.inputrcから

直す。いくつかの注意:

  1. すべてが問題ない場合は、前のコマンドでシーケンスをAlt-^置き換えることができるはずです!!。たとえば、次のようにecho "!!"なります。echo "previous_command with args"
  2. 期待どおりに機能しない場合は、バインディングを確認できますbind -P | grep history-expand(次のような結果を返す必要がありますhistory-expand-line can be found on "\e^")。

おすすめ記事