如何在OSX终端及通用终端中实现多行输入(类Chrome Shift+Enter效果)
嘿,这两个问题其实在OSX终端里都有很直接的解决办法,我来给你详细说下:
在OSX终端输入多行内容的几种方法
用反斜杠
\续行:在当前行的末尾输入\,然后按回车,终端就会进入续行模式(显示>提示符),你可以继续输入下一行内容。比如:echo "我是第一行内容 \ 我是第二行内容 \ 我是第三行内容"执行后会输出合并后的完整内容,这种方式适合写较长的命令或脚本片段。
用引号包裹内容:如果用单引号或双引号把要输入的内容括起来,直接按回车就能换行,直到你输入闭合的引号为止。比如:
echo "这是第一行 这是第二行 这是第三行"每按一次回车就会自动换行,终端会一直显示续行提示符,直到你输入对应的结束引号再回车,才会执行命令。
用
cat命令输入多行文本到文件:如果只是想输入多行内容并保存到文件,可以执行cat > 文件名.txt,然后直接按回车输入每一行内容,输入完成后按Ctrl+D结束输入,所有内容就会被保存到指定文件里。
实现类似Chrome Shift+Enter的多行输入效果
在OSX终端里,默认情况下按下Option+Enter(也就是Alt+Enter)就能实现和Chrome里Shift+Enter一样的效果——换行但不立即执行命令。
比如你正在输入一段较长的命令,写到一半想换行继续编辑,按下Option+Enter就会直接跳到下一行,终端显示续行提示符,你可以继续输入内容,等全部编辑完成后再按回车执行整个命令。
如果你的终端是zsh(OSX现在默认的shell),这个快捷键一般是默认开启的。如果没生效,可以打开终端的「偏好设置」→「键盘」选项,查看「换行但不发送」对应的快捷键,确认是不是Option+Enter,也可以根据自己的习惯修改这个快捷键。
内容的提问来源于stack exchange,提问作者Lev




