既存のプロンプトコマンドラインを複数行に分割

既存のプロンプトコマンドラインを複数行に分割

\ enterコマンドラインの最後に入力してbash他の行からコマンドを続行できることを知っています。しかし、どのように分割できますか?早くすでに完全に入力されたコマンドラインは2つの部分に分かれていますか?

thenたとえば、残りの部分を切り取って再入力する必要なく、最初にこの行を破る方法は何ですか?

$ if true; then ls; fi

答え1

edit-and-execute-command通常、++ にマップされる を使用して、Ctrl次のことができます。xeエディタで現在のコマンドを開きます。。このコマンドはエディタを終了すると実行されます。

答え2

新しいチーム文字はControl-Jとも呼ばれるLF(Line Feed)です。Ctrl+を押すと、キーを押したのと同じようにJコマンドが実行されます。テキストLF文字を挿入するには+ +を押します。コマンド+(accept-lineReturnCtrlV CtrlJCtrlVquoted-insert)文字通り、次の文字を挿入します。したがって、行を分割するには \ Ctrl+と入力しますV

これを頻繁に行う場合は、マクロにすることができます。

bind '"\e\C-j": "\\\C-v\C-j\C-b\C-b"'

答え3

注 - この回答はviとvimに固有のものです。

set -o vi    # edit commands using vi
VISUAL=/usr/bin/vim

現在入力している行を編集するには、ESC(入力モードviまたはvimコマンドモード)を押して、またはvを入力しますvi

すべてのvi / vim編集コマンドが有効であることに注意してください。例えば

  • ESC+A 現在の入力ラインの末尾に配置します。
  • ESC+0 行の先頭にカーソルを置きます。

関連情報