我知道我可以\
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+ V(quoted-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
(进入vi
或vim
命令模式),然后键入v
或vi
。
请注意所有 vi/vim 编辑命令都有效。例如
ESC
+A
放置到当前键入行的末尾。ESC
+0
将光标置于行首。