在Bash中输入跨多行的命令时,如何编辑前几行?我是使用GNOME Terminal的Linux Mint(Lisa)用户。
例如,假设我输入:
$ echo "foo bar
> baz
>
然后,当我要键入命令的第三行时,突然意识到我希望“ foo”和“ bar”位于单独的行上。如何将光标重新定位在“ foo”和“ bar”之间,以便可以按Enter键并将它们放在单独的行上?
(这不像您想的那样容易。向上箭头不起作用,Ctrl-P也不起作用。因此,请在发布之前尝试一下!谢谢!)
在Bash中输入跨多行的命令时,如何编辑前几行?我是使用GNOME Terminal的Linux Mint(Lisa)用户。
例如,假设我输入:
$ echo "foo bar
> baz
>
然后,当我要键入命令的第三行时,突然意识到我希望“ foo”和“ bar”位于单独的行上。如何将光标重新定位在“ foo”和“ bar”之间,以便可以按Enter键并将它们放在单独的行上?
(这不像您想的那样容易。向上箭头不起作用,Ctrl-P也不起作用。因此,请在发布之前尝试一下!谢谢!)
Answers:
不幸的是,这取决于bash
终端,而不是终端。您的选择是:
使用分号代替换行符,尽管即使这样您也不能一次向上移动屏幕行,但必须使用字符或单词运动命令。(奇怪的是,zsh
至少在编辑历史记录时,您可以在复合命令中移动,而不能在当前命令中移动。)有时fc
(将您与前一条命令一起放入编辑器中)是处理复合命令的最简单方法。
如果使用的是Bash,请使用以下组合键:
ctrl x e
它将使用文本编辑器打开您正在处理的命令。保存文件并退出。(我在Shell Hater的演示文稿中找到了该命令。)Zsh用户具有此替代方法。