bashコマンドを入力すると、3行目に達しました。しかし、見逃した部分を編集するために最初に戻るにはどうすればよいですか?

bashコマンドを入力すると、3行目に達しました。しかし、見逃した部分を編集するために最初に戻るにはどうすればよいですか?

コマンドを入力していますが、カーソルが最後にあります。「高度な警告」

$ git commit -m "Nettoyage :
>     - Suppression de sources ou projets inutiles
>     - Corrections mineures sur les sources pour supprimer des warnings"

これで文章を書かなければならないことに気付く時だ。「ネトヤジュ(deuxième party)」私のコミットメッセージの先頭に。

...しかし、コマンドの最後の行からコマンドの先頭に移動して最初の行を編集するにはどうすればよいですか?

答え1

残念ながら、Bashのコマンド入力は行指向であり、複数行コマンドを入力したときに前の行に戻る方法はありません。

ただし、これまで入力したコマンド全体を使用してエディタを起動するだけです。これを行うには、Emacsモード(デフォルト)でを押します。CtrlxCtrleviモードでは、を押しますEscv。これにより、これまでに入力したすべての内容を含むエディタが開き、解決する必要がある問題が解決されます。完全なコマンド、エディタを終了すると、Bashは編集されたコマンドを実行します。

この特別な場合は、gitコミットメッセージ全体に対してエディタを使用できます。この-mオプションを省略するとgitエディタが実行されます。

答え2

をタップCtrlCし、Up次にコマンドを再編集してをタップしますEnter

# git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings
>      - Autre chose^C

CtrlC行の終わりを押すと行が切れますが、Upキーを1回押すだけで戻ります。

# git commit -m "Nettoyage :
     - Suppression de sources ou projets inutiles
     - Corrections mineures sur les sources pour supprimer des warnings

私のカーソルは「ings」の後ろにあります。その後、およびLeftを使用して、3行のテキストのすべてを前後に移動したり、Rightコマンドの先頭に移動したり、コマンドの最後に移動したりするなどの操作を実行できます。HomeCtrlAEndCtrlE

私が知っている限り、私は素晴らしいreadline設定を使用しません。 FreeBSD 13.0のBash 5.1.16では標準動作のようです。

答え3

知りません。あるいは、私が知っている限り、他の人が答えを投稿して私が間違っていることを証明できることを願っています。これまでに見つけた最善の点は、[新しい行に移動]Enterをクリックしてから(これがなければ、私のシステムは後のステップでコマンド全体を再度受け取ることができず、前のセクションに入力された最後の改行のみが表示されます)Ctrl+Dコマンドを中断することです。 :

$ git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings

次に、[次へ]を押しますEnter

$ git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings
>

Ctrl+ D:

$ git commit -m "Nettoyage :
>      - Suppression de sources ou projets inutiles
>      - Corrections mineures sur les sources pour supprimer des warnings
> bash: unexpected EOF while looking for matching `"'

(上)を押すと前のコマンドに戻ります。期待どおりに編集できます。

$ git commit -m "Nettoyage :
     - Suppression de sources ou projets inutiles
     - Corrections mineures sur les sources pour supprimer des warnings

完璧ではありませんが、回避策として機能できます。

答え4

複数行の文字列を文字通り入力する代わりに、 Bash を使用できます。バックスラッシュエスケープ拡張文字列、良い

git commit -m $'Nettoyage :\n     - Suppression de sources ou projets inutiles\n     - Corrections mineures sur les sources pour supprimer des warnings'

これにより、複数行の文字列を1行にマージし、それを使用して\n改行を表すことができます。生成されたコマンドには、文字列に実際の改行文字が含まれます。

関連情報