我正在寻找允许在终端中编写多行命令的两个快捷方式 我知道它存在,我多次使用它,但我无法重新评价它们,我也没有在谷歌中找到它们......
它的行为:
一旦在一行中间,它将“删除”正确的部分,当我们按下Enter按钮时,它不会执行命令,而是转到一个新行(如果我很好,则以'>'开头)记住)。
当我们完成后,我们按下第二个快捷方式,然后粘贴之前删除的部分,并将Enter键行为作为原始回复。
(我认为它类似于Ctrl + j / ctrl + f,但它不是,我也试过很多组合,但从未成功过)
希望你记住它们,你会度过我的一天。谢谢!
在这样的命令上(调用ros服务,提供参数):
rosservice call /operatorshift/updateProgramSteps "category: ''
name: ''
steps:
- command: ''
args: ''
othersarg ''"
steps参数是一个数组,我想提供多个步骤,而不删除和重写下一行。
行为如下:
我将光标移动到第5行的末尾(args:''[HERE]),然后按第一个快捷键。该命令看起来像:
rosservice call /operatorshift/updateProgramSteps "category: ''
name: ''
steps:
- command: ''
args: ''
我按“输入”,不是执行命令,而是添加新行(并且'>'字符出现在我的光标左侧,而不是我的计算机名称)。我可以写另一个“步骤”,如果我想要按“输入”许多时间,所以我的终端看起来像这样:
rosservice call /operatorshift/updateProgramSteps "category: ''
name: ''
steps:
- command: ''
args: ''
> - command: 'example'
> args: ''
>
然后我完成了编辑这个命令,所以我按下第二个快捷方式,检索第一个已删除的内容,“enter”键获取其默认行为(执行命令)
rosservice call /operatorshift/updateProgramSteps "category: ''
name: ''
steps:
- command: ''
args: ''
> - command: 'example'
> args: ''
othersarg ''"
(不确定'>'在按下第二个快捷方式后停留在屏幕上)
我记得在Ubuntu 14.04和16.04上使用默认shell,而无需安装特殊包。
答案 0 :(得分:1)
只需输入“\”,按住后输入“>”你提到的符号会出现
答案 1 :(得分:0)
可能是heredoc吗?
$ cat << EOF
> \$ Working dir "$PWD" `pwd`
> EOF
$ Working dir "/home/user" /home/user
答案 2 :(得分:0)
遗憾的是,我认为最简单的解决方案是使用bash的“编辑并执行命令”功能;从手册中:
编辑并执行命令(C-xC-e)
在当前命令行上调用编辑器,然后将结果作为shell命令执行。 Bash尝试以此顺序调用$ VISUAL,$ EDITOR和emacs作为编辑器。
如果在vi模式下使用bash,则只需在正常模式下按v
即可调用它。
这将在由$VISUAL
或$EDITOR
环境变量设置的编辑器中打开命令。