Linux 终端:如何在没有回车的情况下添加换行符 return?

Linux terminal: how to add a newline without a carriage return?

在 Linux 终端中,如何在不发出回车 return/issuing 命令的情况下添加换行符(换行符?)?

例如,在我的例子中,我想在 git 提交注释中添加几行,如下所示:

$ git commit -m "1. Removed comment blocks
  2. updated .gitignore
  3. added goto statement to hander
  --Miklas"

如何在不实际输入命令的情况下为多行注释添加这些换行符?

我用谷歌搜索并尝试了很多方法(shift+return、alt+return、ctrl+return.. 等),但没有成功。 Tyvm 基思:^)

Shell 通常支持多行连续命令。如果shell“检测到”前面的命令不“完整”并且您键入回车,它会打印PS2并让您继续输入命令。默认 PS2="> ".

# I type:
# git commit -m "message<enter><enter>description"<enter>
$ git commit -m "message
> 
> description"
no changes added to commit

它也适用于 shell 运算符,例如 forwhileifcase:

$ for i in 1 2 3
> do
> echo $i
> done
1
2
3

我找到了一个显示该行为的 youtube video

您也可以在 bash 中使用 C-ish 引用:

git commit -m $'message\n\ndescription\n'

我有时使用进程替换 printf:

git commit -m "$(printf "%s\n" "message" "" "description")"

最后你可以输入:

git commit

应该打开一个完整的文件编辑器,默认情况下 vim。在该编辑器中键入你想要的多行消息,保存并退出编辑器,文件内容将作为提交消息。