加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

在从历史记录中提取的多行zsh命令中插入换行符

发布时间:2020-12-14 02:19:06 所属栏目:Linux 来源:网络整理
导读:有时我在zsh中使用多行命令: ? echo a multiline command 从历史搜索中拉出命令后编辑命令时,我可以更改各行的内容.但是,我无法弄清楚如何插入另一行: # I want to insert another line after "multiline"...? echo a multiline # but hitting
有时我在zsh中使用多行命令:
? echo 
> a 
> multiline 
> command

从历史搜索中拉出命令后编辑命令时,我可以更改各行的内容.但是,我无法弄清楚如何插入另一行:

# I want to insert another line after "multiline"...
? echo 
> a 
> multiline   # but hitting <return> here just runs the command,even though there's a backslash at the end of the line
> command

如何在从历史记录中拉出的多行命令的中间插入换行符?

解决方法

您可以使用self-insert-unmeta绑定Alt Return以插入文字换行而不接受命令:
bindkey '^[^M' self-insert-unmeta

要使用您的示例:在光标位置按下Alt Return(#)

% echo 
a 
multiline #
command

会得到你这个:

% echo 
a 
multiline 
#
command

这不仅适用于编辑历史记录,也适用于键入命令时.因此,您可以像时尚一样在脚本中准备几个命令,并使用单个Return接受它们.

例如,在此示例中按Alt Return而不是#:

% echo command 1#
echo command 2#
echo command 3

将执行与命令echo命令1相同的操作; echo命令2; echo命令3并产生此输出:

command 1
command 2
command 3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读