将现有的提示命令行拆分为几行

将现有的提示命令行拆分为几行

我知道我可以\ enter在命令行末尾键入bash以在另一行中继续该命令。但我怎样才能分割一个迅速的命令行——已经完全输入——分成两部分?

例如,我如何才能在之前中断此行,then而不必剪掉其余部分并重新输入?

$ if true; then ls; fi

答案1

您可以使用edit-and-execute-command,通常映射到++ Ctrl,到xe在编辑器中打开当前命令。退出编辑器时将运行该命令。

答案2

A新队字符是 LF(换行),又名 Control-J。如果按Ctrl+ J,则会执行命令accept-line,与按键相同Return。要插入文字 LF 字符,请按Ctrl+ V Ctrl+ J。命令Ctrl+ Vquoted-insert) 按字面意思插入下一个字符。因此,要分割一行,您可以输入 \ Ctrl+ V

如果您经常这样做,您可以将其设为宏:

bind '"\e\C-j": "\\\C-v\C-j\C-b\C-b"'

答案3

注意 - 这个答案特定于 vi 和 vim

set -o vi    # edit commands using vi
VISUAL=/usr/bin/vim

要编辑当前键入的行,请点击ESC(进入vivim命令模式),然后键入vvi

请注意所有 vi/vim 编辑命令都有效。例如

  • ESC+A 放置到当前键入行的末尾。
  • ESC+0 将光标置于行首。

相关内容