Markdown 箭头符号
Markdown 里怎么写箭头?
Markdown 本身没有专门的箭头语法,不像加粗有 **、链接有 []()。但好消息是,你可以通过几种变通方式在 Markdown 里显示箭头,而且大多数方法用起来比想象中简单。
目前主流的做法有四种:
- 直接复制粘贴 Unicode 箭头字符(最简单,推荐新手用)
- HTML 实体编码(兼容性好,适合写文档)
- Emoji 语法(GitHub、Discord 等平台专用)
- LaTeX 数学箭头(适合数学公式和逻辑推导)
下面我逐一讲清楚每种方法怎么用、适合什么场景。
方法一:直接复制 Unicode 箭头字符
这是最直接的方式——你需要什么箭头,直接从下面表格里复制粘贴到你的 Markdown 文件里就行。不需要记任何代码,也不需要特殊语法。
说实话这个方法我用得最多,因为 Markdown 文件本质上就是纯文本,而 Unicode 字符在所有文本编辑器里都能直接输入。你在 GitHub README 里写 A → B,渲染出来就是带箭头的文字。
常用箭头速查表
| 箭头 | 字符 | 说明 |
|---|---|---|
| → | → | 右箭头 |
| ← | ← | 左箭头 |
| ↑ | ↑ | 上箭头 |
| ↓ | ↓ | 下箭头 |
| ↔ | ↔ | 左右双向箭头 |
| ↕ | ↕ | 上下双向箭头 |
| ↗ | ↗ | 右上箭头 |
| ↘ | ↘ | 右下箭头 |
| ↖ | ↖ | 左上箭头 |
| ↙ | ↙ | 左下箭头 |
| ⇒ | ⇒ | 双线右箭头 |
| ⇐ | ⇐ | 双线左箭头 |
| ⇑ | ⇑ | 双线上箭头 |
| ⇓ | ⇓ | 双线下箭头 |
| ⇔ | ⇔ | 双线双向箭头 |
| ➜ | ➜ | 粗体箭头 |
| ➤ | ➤ | 三角箭头 |
| ⟶ | ⟶ | 长右箭头 |
| ⟵ | ⟵ | 长左箭头 |
| ⟷ | ⟷ | 长双向箭头 |
有一点要注意:有些比较冷门的 Unicode 箭头(比如一些带修饰的变体箭头),在个别渲染器里可能显示不出来,变成一个小方框。不过上面表格里列的这些常用箭头,基本上所有平台都支持。
对了,如果你需要更多特殊箭头,可以去 unicode.org 的 Arrows 区块定义 查看完整的 Unicode 箭头列表,那里有好几百种变体。
方法二:HTML 实体编码
如果你不想复制粘贴,或者需要在代码里保持可读性(毕竟 Unicode 字符在代码编辑器里不太好辨认),可以用 HTML 实体。
Markdown 支持内嵌 HTML,所以 HTML 实体在绝大多数 Markdown 渲染器里都能正常工作。比如你写 →,渲染出来就是 → 右箭头。
基本箭头 HTML 实体
| 箭头 | HTML 实体 | 效果 |
|---|---|---|
| 右箭头 | → | → |
| 左箭头 | ← | ← |
| 上箭头 | ↑ | ↑ |
| 下箭头 | ↓ | ↓ |
| 双向箭头 | ↔ | ↔ |
| 上下箭头 | ↕ | ↕ |
还有用数字编码的方式,比如 → 也等于 → 右箭头。数字编码用的是 Unicode 的十进制值,好处是它不局限于有名字的实体——理论上所有 Unicode 箭头都能用数字编码表示。
| 箭头 | 十进制编码 | 十六进制编码 |
|---|---|---|
| → | → | → |
| ← | ← | ← |
| ↑ | ↑ | ↑ |
| ↓ | ↓ | ↓ |
| ↔ | ↔ | ↔ |
| ⇒ | ⇒ | ⇒ |
| ⇔ | ⇔ | ⇔ |
我之前有一阵子习惯用 HTML 实体,后来发现写 → 虽然代码里能看懂,但在纯文本编辑器里预览的时候还是一堆符号不好辨认。所以后来大部分场景我就直接复制 Unicode 字符了。不过 HTML 实体在需要明确标注"这里是个箭头"的正式文档里还是挺有用的。
顺便说一句,如果你对 HTML 符号编码感兴趣,Toptal 的 HTML Arrows 是目前最完整的在线参考,每种箭头都提供了 Unicode 编码、HTML 实体、CSS 代码等好几种格式。
方法三:GitHub Emoji 箭头语法
GitHub Flavored Markdown(以及 Discord、Slack 等平台)支持用 Emoji 短代码来输入箭头。这种方式的好处是语义清晰,写 :arrow_right: 一看就知道是什么意思。
GitHub Emoji 箭头
| 语法 | 效果 | 说明 |
|---|---|---|
:arrow_right: | ➡ | 右箭头 |
:arrow_left: | ⬅ | 左箭头 |
:arrow_up: | ⬆ | 上箭头 |
:arrow_down: | ⬇ | 下箭头 |
:arrow_upper_right: | ↗ | 右上箭头 |
:arrow_upper_left: | ↖ | 左上箭头 |
:arrow_lower_right: | ↘ | 右下箭头 |
:arrow_lower_left: | ↙ | 左下箭头 |
:left_right_arrow: | ↔ | 双向箭头 |
:arrow_double_up: | ⏫ | 双线上箭头 |
:arrow_double_down: | ⏬ | 双线下箭头 |
:triangular_flag_on_post: | 🚩 | 旗标(有时用于标注) |
需要注意,Emoji 语法只在支持 Emoji 渲染的平台上有效。你在 GitHub 的 README、Issue、PR 描述里用没问题,但如果你是在本地用 Typora 写文档然后导出 PDF,Emoji 箭头可能渲染出不同的样式(变成彩色 Emoji 图标而不是纯文本箭头)。
实测发现 GitHub 上的 Emoji 箭头和 Unicode 箭头的视觉效果不太一样——Emoji 版本更像是图标,而 Unicode 版本更像是文本字符。具体用哪种看你个人偏好和文档风格。如果你在写正式的技术文档,Unicode 字符通常更合适;如果是 GitHub README 或者比较轻松的内容,两种都可以。
方法四:LaTeX 数学箭头
如果你的 Markdown 编辑器支持 LaTeX/MathJax(比如 Obsidian、Typora、Jupyter Notebook),那数学模式下的箭头是另一个强大的选择。这在写数学笔记、逻辑推导或者算法分析时特别好用。
数学箭头要用 $...$(行内公式)或 $$...$$(独立公式)包裹:
常用数学箭头
| LaTeX 代码 | 效果 | 说明 |
|---|---|---|
$\rightarrow$ | → | 右箭头 |
$\leftarrow$ | ← | 左箭头 |
$\Rightarrow$ | ⇒ | 双线右箭头(推导) |
$\Leftarrow$ | ⇐ | 双线左箭头 |
$\Leftrightarrow$ | ⇔ | 双线双向箭头(等价) |
$\mapsto$ | ↦ | 映射箭头 |
$\hookrightarrow$ | ↪ | 带钩右箭头 |
$\uparrow$ | ↑ | 上箭头 |
$\downarrow$ | ↓ | 下箭头 |
$\nearrow$ | ↗ | 右上箭头 |
$\searrow$ | ↘ | 右下箭头 |
$\longmapsto$ | ⟼ | 长映射箭头 |
$\xrightarrow{text$ | →(text) | 带文字的箭头 |
向量箭头
| LaTeX 代码 | 效果 | 说明 |
|---|---|---|
$\vec{a}$ | a⃗ | 向量 a |
$\overrightarrow{AB}$ | AB→ | 从 A 到 B 的向量 |
$\overleftarrow{AB}$ | ←AB | 反向向量 |
LaTeX 箭头有个前提:你的 Markdown 渲染器必须支持 MathJax 或 KaTeX。GitHub 原生不支持 LaTeX 数学公式(不过 2022 年后部分场景已支持),所以在 GitHub 上用 LaTeX 箭头可能会直接显示为原始代码。如果你主要在 Obsidian 或 Typora 里写东西,那就放心用,这两个都支持 LaTeX。
四种方法怎么选?
很多教程会直接丢一堆代码给你,但不说什么时候该用哪个。这里简单总结一下我的建议:
日常写文档、做笔记 → 直接复制 Unicode 字符。最简单,哪里都能用,没有兼容性问题。
写 GitHub README 或团队文档 → HTML 实体或 Unicode 都行。HTML 实体的好处是代码里一眼能看出这是个箭头;Unicode 的好处是更简洁。
在 GitHub/Discord/Slack 里写评论 → Emoji 语法。这些平台对 Emoji 支持最好,而且语义清晰。
写数学笔记或逻辑推导 → LaTeX 数学箭头。数学模式下的箭头是专业的数学符号,而且在公式排版里和其他数学元素配合得最好。
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Unicode 复制粘贴 | 零门槛,全平台通用 | 代码里不好辨认 | 日常文档、笔记 |
| HTML 实体 | 代码可读性好,兼容性强 | 需要记代码名 | 正式文档、技术文档 |
| Emoji 语法 | 语义清晰,GitHub 原生支持 | 仅限支持 Emoji 的平台 | GitHub、Discord、Slack |
| LaTeX 数学箭头 | 专业数学符号,支持带文字箭头 | 需要渲染器支持 MathJax | 数学公式、逻辑推导 |
不同平台的兼容性
因为 Markdown 的渲染器有很多种,同一个箭头在不同平台上的表现可能不一样。我实际测试了几个主流平台:
| 方法 | GitHub | Obsidian | Typora | VS Code 预览 |
|---|---|---|---|---|
| Unicode 字符 | ✅ | ✅ | ✅ | ✅ |
| HTML 实体 | ✅ | ✅ | ✅ | ✅ |
| Emoji 语法 | ✅ | ❌ 显示代码 | ❌ 显示代码 | ❌ 显示代码 |
| LaTeX 箭头 | ⚠️ 部分支持 | ✅ | ✅ | ✅(需插件) |
可以看出,Unicode 字符和 HTML 实体是最稳的方案,基本上所有平台都能正常显示。Emoji 语法只在 GitHub 风格的渲染器里有效。LaTeX 则需要 MathJax/KaTeX 支持。
所以如果你不确定你的文档最终会在什么平台上展示,优先用 Unicode 字符或 HTML 实体,这两个是最安全的选择。关于 HTML 在 Markdown 中的更多用法,可以看看我之前写的 markdown html 语法 相关内容。
箭头在 Mermaid 流程图中的用法
说到 Markdown 里的箭头,还有一个场景不能忽略——Mermaid 流程图。如果你在 Markdown 中用 Mermaid 画流程图,箭头的写法又不一样了:
```mermaid
graph LR
A[开始] --> B[处理]
B --> C{判断}
C -->|是| D[结束]
C -->|否| B
Mermaid 用 `-->` 表示实线箭头,`-.->` 表示虚线箭头,`==>` 表示粗线箭头。这和我们上面说的 Unicode/HTML 箭头是完全不同的体系——Mermaid 箭头是流程图语法的一部分,不是文本符号。
关于 Mermaid 流程图的详细用法,我在 [markdown 流程图](/markdown/diagram/) 那篇有详细介绍,这里就不展开了。
## 快速参考:最常用的箭头
如果你只是想快速找一个箭头用,直接从下面挑:
| 你想要的 | 复制这个 | 或者写这个 |
|---------|---------|-----------|
| 右箭头 | → | `→` |
| 左箭头 | ← | `←` |
| 上箭头 | ↑ | `↑` |
| 下箭头 | ↓ | `↓` |
| 双向箭头 | ↔ | `↔` |
| 推导箭头 | ⇒ | `⇒` |
| 等价箭头 | ⇔ | `⇔` |
说实话,Markdown 箭头符号这件事本身不难,难的是信息太分散——有的教程只讲 HTML 实体,有的只讲 Unicode,还有的混着说。我把所有方法整理在一起,就是想让你不用再东翻西找,一篇搞定。
## 参考来源
- [Unicode Arrows 区块定义](https://unicode.org/charts/PDF/U2190.pdf) — Unicode 官方 Arrows 字符区块规范
- [GitHub Flavored Markdown Spec](https://github.github.com/gfm/) — GitHub 官方 Markdown 规范,定义了 Emoji 语法等扩展
- [Markdown Guide — Hacks](https://www.markdownguide.org/hacks/) — Markdown Guide 官方关于符号和 HTML 实体的说明
- [Toptal HTML Arrows](https://www.toptal.com/designers/htmlarrows/arrows/) — 最完整的 HTML 箭头符号编码参考
- [MathJax 官方文档](https://docs.mathjax.org/) — LaTeX 数学箭头在 Web 环境中的渲染支持说明