5

bash を介して複数行のコマンドを入力したいとします。行末に \ を追加して新しい行を入力できることを知っています。

ただし、\ を入力する必要さえなく、Enter キーを押すだけで十分な正当な「テキスト エディター モード」に入ることが可能ですか?

たとえば、コマンドラインにコマンドを入力し、パラメータを入力する前に魔法のボタンを押すと、vi のようなモードに入り、「vi モード」に入力して終了し、入力したテキストが表示されます。 「viモード」では、コマンドのパラメーターに変わり、Enterキーを押すと、コマンドが実行されます

bashコマンドラインでそれを行うことは可能ですか? もしそうなら、どうすればいいですか?

4

3 に答える 3

6

参照man bash:

   edit-and-execute-command (C-xC-e)
          Invoke  an  editor  on the current command line, and execute the
          result as shell commands.   Bash  attempts  to  invoke  $VISUAL,
          $EDITOR, and emacs as the editor, in that order.

デフォルトでは、bash は emacs モード用に構成されているため、emacs は C-xC-e コマンドと同様です。

vi が本当に好きなら、bash を vi モードに設定することもできますset -o vi: これにより、明示的なエディターを呼び出さずに vi の方法で通常の行編集を行うことができます。

于 2013-08-26T05:50:13.487 に答える
1

viコマンドを使用して、または既定のエディターで前のコマンドを編集できますfc。これにより、エディター ウィンドウが開き、終了すると、編集されたコマンドが実行されます。このモードは、複雑なコマンドを編集するために繰り返し使用できます。

于 2013-08-26T22:18:02.983 に答える
1

Bash は vim モードをエミュレートできます (あまりうまくいきませんが):

set -o vi
于 2013-08-26T05:55:42.853 に答える