为什么 Typora 句尾会出现向下箭头(Markdown 换行和分段的研究)

背景

当从 ChatGPT 复制回答到 Typora 时,经常会在句子的末尾看到向下箭头 符号,一开始以为是复制的格式有问题。最近仔细研究才发现原因。

回顾 Markdown 语法

在 Markdown 的严格语法中,有两种“换行”:

  1. 一种是句子末尾加两个空格再按回车,表示换行;
  2. 另一种是句子末尾按两下回车,打出一个空行,表示分段。
    分段的间距要比换行长。

在 Typora 这种所见即所得的编辑器中,Typora 为我们做出了简化:句子末尾直接按一下回车就是分段(在源码模式中体现为加了一行空行);而按住 shift + enter 才是换行(源码中是紧挨着上一行另起一行,但上一行的末尾并没有两个空格)。

为什么要做这种简化呢,因为很多人并不习惯在句尾按两下空格再回车,所以编辑器为我们做了简化。

Markdown 补充语法:

  1. 如果句尾不加两个空格直接回车,严格的 Markdown 语法是不会换行的,会把上下两句话放在 一行 中间用 空格 隔开。
  2. 打出多个空格只能算一个空格(可用   打出多个空格)
  3. 打出多个空行也只换一行(可用 <br> 空多行)

以上可在 Markdown 在线编辑器 尝试

底层原理

文本其实并没有换行一说,对于计算机,一个文本只有一行。只不过是中间的 \n 字符导致了换行(也可以理解成 <br>
那么对于 Markdown 的换行语法,实际上就是将 “两个空格 + 一个回车” 渲染成了一个 \n
对于分段,其实就是两个 \n

对比 Typora 和 Obsidian

Obsidain 同样做出了简化,不需要在句尾打两个空格。

Obsidain 没有 shift + enter,在 Obsidian 的编辑视图中,按一下回车是换行,按两下回车是分段。

总结:
Obsidain 的 enter = Typora 的 shift + enter
Obsidain 的两次 enter = Typora 的 enter

拓展

软换行与硬换行

软换行就是没有实际换行(没有 \n 字符),只是一行字符太长超出屏幕宽度,软件为了照顾用户的阅读体验,在视觉上折了一行。

硬换行就是有实际的 \n 字符。

\n\r\n 区别

符号名称含义常用系统
\nLF (Line Feed)换到下一行(纵向移动)Linux /macOS/ Unix
\rCR (Carriage Return)回到行首(横向位置归零)老版 Mac OS
\r\nCR + LF回到行首 + 下一行(完全换行)Windows

结论

Typora 句尾的向下箭头其实就是两个空格,表示此处有一个换行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值