Ash*_*her 31 linux gnome bash gnome-terminal
在 Bash 中输入跨越多行的命令时,如何编辑前几行?我是使用 GNOME 终端的 Linux Mint (Lisa) 用户。
例如,假设我输入:
$ echo "foo bar
> baz
>
Run Code Online (Sandbox Code Playgroud)
然后当我要输入命令的第三行时,突然意识到我希望“foo”和“bar”在不同的行上。我如何在“foo”和“bar”之间重新定位我的光标,以便我可以按回车键并将它们放在不同的行上?
(这并不像您想象的那样容易。向上箭头不起作用,Ctrl-P 也不起作用。所以请在发布前尝试一下!谢谢!)
gee*_*aur 24
不幸的是,这取决于bash,而不是终端。您的选择是:
使用分号代替换行符,尽管即使这样您也不能一次向上移动一个屏幕行,但必须使用字符或单词移动命令。(奇怪的是,zsh至少可以让您在编辑历史时在复合命令内移动,而不是在当前命令内移动。)有时fc(使用前一个命令将您扔到编辑器中)是处理复合命令的最简单方法。
如果您使用 Bash,请使用以下组合键:
ctrl x e
Run Code Online (Sandbox Code Playgroud)
它将打开您正在使用文本编辑器处理的命令。保存文件并退出。(我在Shell Hater 的演示文稿中找到了该命令。) Zsh 用户有这个替代方案。
有趣的Ctrl+C是,这就是你正在寻找的。
当你在
$ echo "foo bar
> baz
>
Run Code Online (Sandbox Code Playgroud)
只需按Ctrl+C(编辑的命令行将挂起)并按Up(以前的历史)。您的提示将是:(注意没有 >)
$ echo "foo bar
baz
Run Code Online (Sandbox Code Playgroud)
现在您Left Right甚至可以通过线路跳跃来移动。
只有一个怪癖,您必须在最后一个字符上添加另一行,因此请四处移动以编辑现有行(转到开头Ctrl+A),Enter 如果足够,请按一下或转到结尾 ( Ctrl+E) 以添加更多行Enter。另一个缺点是Ctrl+_(undo) 只恢复上次的更改Ctrl+C
| 归档时间: |
|
| 查看次数: |
17561 次 |
| 最近记录: |