有时我在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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。