假设我想通过bash输入一个多行命令我知道我可以在行尾添加\来输入一个新行
然而,有可能进入一个合法的“文本编辑器模式”,你甚至不必输入\只需按Enter就足够了
例如..你在命令行输入命令然后在输入参数之前按下一些魔术按钮,你可以进入类似vi的模式然后你输入东西到“vi模式”然后你退出然后您在“vi模式”中输入的文本将变为命令的参数,然后按Enter键,然后执行命令
是否可以在bash命令行中执行此操作?如果是的话,我该怎么做?
答案 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
或默认编辑器中编辑上一个命令。这会弹出一个编辑器窗口,退出时会执行编辑过的命令。该模式可以反复使用以编辑复杂的命令。