在linux终端中允许换行的快捷方式是什么?

时间:2017-09-29 10:19:18

标签: linux terminal command shortcut

我正在寻找允许在终端中编写多行命令的两个快捷方式 我知道它存在,我多次使用它,但我无法重新评价它们,我也没有在谷歌中找到它们......

它的行为:
一旦在一行中间,它将“删除”正确的部分,当我们按下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,而无需安装特殊包。

3 个答案:

答案 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环境变量设置的编辑器中打开命令。