用于调用bash命令的文本编辑器模式

时间:2013-08-26 05:45:40

标签: linux bash command-line command vi

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

然而,有可能进入一个合法的“文本编辑器模式”,你甚至不必输入\只需按Enter就足够了

例如..你在命令行输入命令然后在输入参数之前按下一些魔术按钮,你可以进入类似vi的模式然后你输入东西到“vi模式”然后你退出然后您在“vi模式”中输入的文本将变为命令的参数,然后按Enter键,然后执行命令

是否可以在bash命令行中执行此操作?如果是的话,我该怎么做?

3 个答案:

答案 0 :(得分: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模式,因此像C-xC-e命令一样使用emacs。

如果你真的喜欢vi,你也可以将你的bash设置为vi模式:set -o vi。这允许您在不调用显式编辑器的情况下对vi方式进行法线编辑。

答案 1 :(得分:1)

Bash可以通过以下方式模拟vim模式(虽然不是很好)

set -o vi

答案 2 :(得分:1)

您可以使用vi命令在fc或默认编辑器中编辑上一个命令。这会弹出一个编辑器窗口,退出时会执行编辑过的命令。该模式可以反复使用以编辑复杂的命令。