假设我想通过 bash 输入多行命令我知道我可以在行尾附加 \ 以输入新行
但是是否有可能进入一个合法的“文本编辑器模式”,你甚至不必输入 \ 并且只需按 enter 就足够了
例如..您在命令行中输入命令,然后在输入参数之前按下一些魔术按钮,该按钮允许您进入类似 vi 的模式,然后您将内容输入“vi 模式”,然后退出,然后输入您输入的文本在“vi模式”变成命令的参数然后你按回车然后命令执行
是否可以在 bash 命令行中执行此操作?如果是这样,我该怎么做?
假设我想通过 bash 输入多行命令我知道我可以在行尾附加 \ 以输入新行
但是是否有可能进入一个合法的“文本编辑器模式”,你甚至不必输入 \ 并且只需按 enter 就足够了
例如..您在命令行中输入命令,然后在输入参数之前按下一些魔术按钮,该按钮允许您进入类似 vi 的模式,然后您将内容输入“vi 模式”,然后退出,然后输入您输入的文本在“vi模式”变成命令的参数然后你按回车然后命令执行
是否可以在 bash 命令行中执行此操作?如果是这样,我该怎么做?
见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 方式进行正常的行编辑。
您可以vi
使用该命令在或默认编辑器中编辑上一个fc
命令。这会弹出一个编辑器窗口,当你退出它时,它会执行编辑的命令。该模式可以反复使用来编辑复杂的命令。
Bash 可以通过以下方式模拟 vim 模式(虽然不是很好):
set -o vi