【问题标题】:What is the shortcut to allow new lines in linux terminal?在 linux 终端中允许换行的快捷方式是什么?
【发布时间】:2018-03-11 05:42:00
【问题描述】:

我正在寻找允许在终端中编写多行命令的几个快捷方式。
我知道它存在,我用过很多次,但我记不起它们,我在 google 上也找不到它们......

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

【问题讨论】:

  • 你用什么外壳?使用zsh,您可以使用 Alt+Enter 或 ESC+Enter 添加换行符。
  • 我使用 bash,因为它是 ubuntu 上的默认 shell,但感谢您的提示!
  • @MatEhickey 你得到答案了吗? ESC+Enter 或 Alt+Enter 有人为您工作吗?

标签: linux terminal command shortcut


【解决方案1】:

只需输入“\”,当你按下输入时,你提到的“>”符号就会出现

【讨论】:

  • 那只是在命令结束时,我描述的行为精确地适用于命令中间。
  • 例如,我想在这个命令中附加一些“- 0”,而不删除自己的其余部分:rosservice call /operatorshift/addPlane "category: 'a' program: 'abk' plane: name : 'plan2' point1: - 0 point2: - 0 point3: - 0" (我不能在stackoverflow cmets上使用换行符吗?...)
  • 对不起,我不明白你的问题。您能写出您希望该命令的外观吗?只需在您想要换行的地方写下类似 [ENTER] 的内容。
【解决方案2】:

遗憾的是,我认为最简单的解决方案是使用 bash 的编辑和执行命令功能;来自手册:

编辑和执行命令 (C-xC-e)

在当前命令行上调用编辑器,并将结果作为 shell 命令执行。 Bash 尝试按顺序调用 $VISUAL、$EDITOR 和 emacs 作为编辑器。

如果您在 vi 模式下使用 bash,您只需在普通模式下按 v 即可调用它。

这将在由$VISUAL$EDITOR 环境变量设置的编辑器中打开您的命令。

【讨论】:

  • 您好,这实际上是一个非常好的解决方法!不是我记得的确切内容(不是打开编辑器,而是在当前终端中编辑它,将历史记录保留在屏幕中)。差异很小,所以我认为这个答案可能是最接近这个答案的!谢谢!
【解决方案3】:

可能是heredoc 吗?

$ cat << EOF
> \$ Working dir "$PWD" `pwd`
> EOF
$ Working dir "/home/user" /home/user

【讨论】:

  • 这可能是编写大型命令的解决方案,但我不知道它如何用于编辑现有命令(无需手动复制/粘贴)。顺便说一句,我不知道,在很多情况下它可能很有用,谢谢!
  • 您到底在寻找什么?
猜你喜欢
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
相关资源
最近更新 更多