編集をキャンセルしてコマンドを実行するにはどうすればよいですか?

編集をキャンセルしてコマンドを実行するにはどうすればよいですか?

キーを押した後にコマンドを実行しない方法はありますか?Ctrl+X Ctrl+E? ( edit-and-execute-command)

理想的には、gitのようにファイルを保存すると(vimでは:wqのように)ファイルが実行されますが、保存せずにファイルを閉じると(vimでは:q!のように)コマンドは実行されません。

答え1

コマンドの実行をキャンセルするには、ファイルの内容を完全に削除してファイルを保存してエディタを終了します。

興味深いことに、このアプローチでは、編集されていない元のコマンドはまだ履歴に保存されます。

注:この回答はコメントで提案されました。テストしてみた結果動作します。

答え2

#一般的な行編集中も、行の先頭にプレフィックスを追加する習慣がありました。これにより、複雑なコマンドを確認して、コマンドが正しいことを確認したり、コマンドの正確な構文を定式化して検証するために必要な他の情報ポイントで作業しながら、履歴にコマンドの「ドラフト」を保存したりできます。ドラフト注文。

コマンドの行を 1 つだけ編集するとし、vi次のようにします。

1Gi#Esc

その後、ファイルを保存すると、「ドラフト」コマンドは実行されずに履歴bashに保存されます。準備ができたら、コマンドに戻って先行を削除して#コマンドを実行できます。

関連情報