5

假设我想通过 bash 输入多行命令我知道我可以在行尾附加 \ 以输入新行

但是是否有可能进入一个合法的“文本编辑器模式”,你甚至不必输入 \ 并且只需按 enter 就足够了

例如..您在命令行中输入命令,然后在输入参数之前按下一些魔术按钮,该按钮允许您进入类似 vi 的模式,然后您将内容输入“vi 模式”,然后退出,然后输入您输入的文本在“vi模式”变成命令的参数然后你按回车然后命令执行

是否可以在 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 like 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 回答