vi-modeを使用したzsh:コマンドラインを実行せずに後で使用できるように保存する方法

vi-modeを使用したzsh:コマンドラインを実行せずに後で使用できるように保存する方法

複雑なコマンドを入力して最初に別のコマンドを入力する必要があることに気付くことがよくあります。

ユーザーとして別のコマンドを入力してから、削除されたコマンドラインを使用viできてうれしいです。残念ながら私自身を含む誰も。0 Dpvizsh

これでI、コマンドの先頭にいくつかのコマンドを挿入して失敗し、別の操作を実行し、履歴から以前のコマンドを削除し、自分に尋ねます。xx同じことをするより簡単な方法はありますか?

重複ではありません!viモードを使用していると述べました。他の質問に対する回答はviモードには適用されません。言及していないにもかかわらず、emacsモードでのみ動作するため、誤解を招く可能性があります。人々が正解を見つけることができるように再度開いてください。

答え1

interactivecommentsシェルオプションの有効化

setopt interactivecomments

#コマンドラインで、通常/コマンドモードでタスクを使用します(例:EscFollowを押します#)。これは#行の前に挿入し、すぐにその行をコミットし(コメントなので無視されます)、コマンドライン履歴に追加します。これは1行ずつ機能します。つまり、残念ながら、複数行のコマンドをうまく処理できません。

#コメント化された(たとえば、コマンドライン履歴から取得された)行でこの操作を使用すると、その行#の先頭からその行が削除されコミットされます。

シェルinteractivecommentsオプションは対話型シェルではデフォルトでは設定されていませんが、非対話型シェルでは設定されます。

関連情報