GNU/Linux >> Linux の 問題 >  >> Linux

Bashの複数行コマンドで前の行を編集するにはどうすればよいですか?

残念ながら、それは bash までです 、端末ではありません。オプションは次のとおりです:

<オール>
  • 改行の代わりにセミコロンを使用してください。ただし、一度に画面行を上に移動することはできず、文字または単語の移動コマンドを使用する必要があります。 (奇妙なことに、zsh current 内ではなく、少なくとも履歴を編集するときに複合コマンド内を移動できます コマンド) 時々 fc (前のコマンドでエディターに放り込まれます) は、複合コマンドを処理する最も簡単な方法です。

  • Bash を使用している場合は、次のキーの組み合わせを使用してください:

    ctrl x e
    

    テキストエディタを使用して作業中のコマンドが開きます。ファイルを保存して終了します。 (Shell Hater のプレゼンテーションでコマンドを見つけました。) Zsh ユーザーにはこの代替手段があります。


  • 解決策は、複数行が正しくなるまでコマンドを入力しないことです。Ctrl と入力するだけです。 v Ctrl 次の行に行きたいとき。 メタ b 単語を戻します。

    @rici の回答の功績


    おかしなことに、Ctrl+C あなたが探しているものです。

    あなたがいるとき

    $ echo "foo bar
    > baz
    >
    

    Ctrl+C を押すだけです (編集されたコマンド ラインが一時停止します) Up を押します (前歴)。プロンプトは次のようになります:(>がないことに注意してください)

    $ echo "foo bar
    baz
    

    で移動できるようになりました そうですね ラインジャンプでも。

    癖が 1 つだけあります。別の行を追加するには最後の文字にいる必要があるため、移動して既存の行を編集します (Ctrl+A で開始します)。 ) Enter を押します それで十分か、終了する場合 (Ctrl+E ) Enter でさらに行を追加するには .もう 1 つの欠点は、Ctrl+_ (元に戻す) 最後の Ctrl+C からの変更のみを復元します


    Linux
    1. ファイルに複数の行を追加するにはどうすればよいですか?

    2. 前の bash コマンドの引数を思い出すにはどうすればよいですか?

    3. Linuxコマンドラインで複数のファイルの文字列を置き換える方法

    1. LinuxでBASHコマンドライン履歴をクリアする方法

    2. 複数行の出力を 1 行に連結する方法は?

    3. bashシェルを使用してコマンドを複数回実行する方法は?

    1. Linuxコマンドラインでファイルの特定の行を表示する方法

    2. Linux でファイルの行数を数える方法 (wc および nl コマンドの例)

    3. 変数を使用してBashを使用して複数行の文字列を記述する方法は?