我正在输入该命令,我的光标位于“supprimer des warnings”的末尾
\n$ git commit -m "Nettoyage :\n> - Suppression de sources ou projets inutiles\n> - Corrections mineures sur les sources pour supprimer des warnings"\n
Run Code Online (Sandbox Code Playgroud)\n这时我注意到我应该在提交消息的开头写上“Nettoyage (deuxi\xc3\xa8me party)” 。
\n...但是,在我的命令的最后一行,我如何可以转到它的开头,在它的第一行编辑它?
\nSte*_*itt 54
不幸的是,Bash 中的命令输入是面向行的,您在输入多行命令时不能返回到上一行。
\n但是,您可以做的是使用到目前为止输入的完整命令启动编辑器。为此,请在 Emacs 模式(默认)下按CtrlxCtrle; 在 vi 模式下,按Escv。这将打开您的编辑器,其中包含您迄今为止输入的所有内容;修复需要修复的内容,完成命令,退出编辑器,Bash 将运行编辑后的命令。
\n在这种特殊情况下,您可以对整个git
提交消息使用编辑器:省略该-m
选项,git
将为您启动一个编辑器。
Jim*_* L. 14
按CtrlC,然后按Up,然后重新编辑命令,然后按Enter。
# git commit -m "Nettoyage :
> - Suppression de sources ou projets inutiles
> - Corrections mineures sur les sources pour supprimer des warnings
> - Autre chose^C
Run Code Online (Sandbox Code Playgroud)
通过按CtrlC该行的末尾,我会丢失该行,但只需按一下Up键,我就会返回:
# git commit -m "Nettoyage :
- Suppression de sources ou projets inutiles
- Corrections mineures sur les sources pour supprimer des warnings
Run Code Online (Sandbox Code Playgroud)
我的光标放在“ings”后面。然后,我可以使用 and 来回浏览所有三行文本,使用LeftorRight导航到命令的开头,使用or导航到命令的结尾,等等。HomeCtrlAEndCtrlE
据我所知,我没有使用任何奇特的阅读线设置。似乎是 FreeBSD 13.0 上 Bash 5.1.16 的标准行为。
你不知道。或者据我所知,我希望其他人能发表答案并证明我错了!到目前为止,我发现的最好的事情是点击Enter移动到新行(如果没有这个,在我的系统上,您不会在后面的步骤中返回完整的命令,而只能返回最后一个换行符输入之前的部分)并且然后Ctrl+D中止命令:
\n$ git commit -m "Nettoyage :\n> - Suppression de sources ou projets inutiles\n> - Corrections mineures sur les sources pour supprimer des warnings\n
Run Code Online (Sandbox Code Playgroud)\n现在按Enter:
\n$ git commit -m "Nettoyage :\n> - Suppression de sources ou projets inutiles\n> - Corrections mineures sur les sources pour supprimer des warnings\n>\n
Run Code Online (Sandbox Code Playgroud)\n现在Ctrl+ D:
\n$ git commit -m "Nettoyage :\n> - Suppression de sources ou projets inutiles\n> - Corrections mineures sur les sources pour supprimer des warnings\n> bash: unexpected EOF while looking for matching `"'\n
Run Code Online (Sandbox Code Playgroud)\n您现在可以按\xe2\x87\xa7(向上)返回到上一个命令,现在您将能够按预期编辑它:
\n$ git commit -m "Nettoyage :\n - Suppression de sources ou projets inutiles\n - Corrections mineures sur les sources pour supprimer des warnings\n
Run Code Online (Sandbox Code Playgroud)\n并不完美,但它可能可以作为一种解决方法。
\nEnter不要在第一行末尾点击,而是使用Ctrl+ V Ctrl+ J。这将插入一个换行符,而无需输入 bash 命令。>
不会打印新的提示(如),因为对于 bash,它仍然是相同的条目。如果您这样做了,那么在使用默认的 emacs 键绑定或使用 vi 键绑定时,您将能够使用Ctrl+返回到第一行。A^
以下是使用默认 emacs 绑定的 bash 示例:
如果您使用 zsh 而不是 bash,则可以使用向上/向下键,或使用默认 emacs 键绑定的Ctrl+ P/ Ctrl+ ,或使用 vi 键绑定的/在单个提示条目的行之间移动。Nj
k
如果您将 zsh 与 vi 键绑定一起使用,则还可以在正常模式下使用o
/O
在同一提示条目中的当前行下方或上方创建新行。这些是我通常在 zsh 中使用的键绑定:
-e
只需在命令末尾添加,git 就会将您带到带有-m
参数内容的编辑器。
以下是您在特定情况下可以采取的措施的示例: