EmoArt
发布
术语表

emoji shortcode - :smile: 到底是什么意思

最近更新: 2026-05-21·约 4 分钟

本文约 4 分钟读完。

在 Slack 中输入 :fire: 就会出现 🔥。背后的机制就是 emoji shortcode - 一个建立在 Unicode 之上的小巧而强大的约定层。emoji shortcode 是用冒号分隔的短文本字符串,兼容的应用会自动将其转换为 emoji 字形。 它们起源于聊天应用,作为一种无需点击 emoji 选择器的高效输入方式延续至今。

定义

emoji shortcode 是用冒号包裹的文本标识符 (例如 :thumbsup:),应用在渲染或发送时会将其替换为对应的 emoji。 这种替换发生在应用层,而非 Unicode 层。 不同的应用维护着不同的 shortcode 注册表,常见 emoji 有大量重叠,而较少见的 emoji 则存在差异。

历史

shortcode 从早期的文本表情符号 (:):D) 和 IRC 时代的昵称补全模式演变而来。 冒号包裹的形式由 Campfire (37signals 的早期聊天应用) 推广,并在 2013 年 Slack 发布时作为核心输入机制被采用。 此后,shortcode 扩展到了 GitHub、Discord、Mattermost、Rocket.Chat 等平台。

主要 shortcode 注册表

CLDR Short Names

Unicode 的 Common Locale Data Repository (CLDR) 为每个 emoji 提供官方短名称,被许多应用用作参考 shortcode 集。 CLDR 名称已本地化为数十种语言,因此「smiling face」在日语、法语、西班牙语等中都有对应译名。

Slack

Slack 维护自己的 shortcode 集,最初源自 EmojiOne (现为 JoyPixels)。Slack 还支持每个工作区上传自定义 emoji, 使用与内置 emoji 相同的冒号语法。一个工作区中的 :lgtm: 可能渲染为自定义审批图标,而在另一个工作区中只是纯文本。

Discord

Discord 使用类似的 shortcode 模型,输入第二个字符后即触发自动补全。自定义服务器 emoji 和动画 emoji 将语法扩展到了 Unicode 字形之外。

GitHub

GitHub 维护着一份有文档记录的 shortcode 列表,用于 issue、pull request、评论和提交消息。 常见的有::white_check_mark: ✅、:warning: ⚠️、:rocket: 🚀、:bug: 🐛。 该列表与 CLDR 名称相似但不完全相同。

Mattermost / Rocket.Chat

开源聊天平台维护自己的注册表,通常与 Slack 的集合兼容以便于迁移。

命名惯例

  • 小写字母,单词用下划线分隔::smiling_face:
  • 热门 emoji 的别名::+1::thumbsup: 都指向 👍
  • 肤色变体::wave: 对应默认 👋,某些应用中 :wave::skin-tone-3: 对应 👋🏽
  • 自定义 emoji 在支持的应用中使用相同语法::shipit::lgtm::partyparrot:

shortcode 在哪些场景有效、哪些无效

场景shortcode 支持备注
Slack、Discord✅ 原生支持输入时即时转换
GitHub markdown✅ 原生支持显示时渲染
Notion、Linear✅ 原生支持冒号触发内联选择器
纯文本文件❌ 不支持保持为字面文本
iMessage、WhatsApp❌ 不支持使用系统 emoji 选择器
电子邮件 (大多数客户端)❌ 不支持使用系统选择器

实际的效率提升

  • 双手不离键盘,无需用鼠标去点选择器
  • 输入时可按部分名称搜索
  • 自定义工作区 emoji 成为团队的一等词汇
  • 可组合性:shortcode 在 markdown、代码审查、异步消息和机器人回复中都能使用

局限性

  • 名称在不同应用间存在差异 - 一个工具中的 :thumbsup: 在另一个中可能是 :+1:
  • 在应用间复制粘贴会丢失 shortcode (大多数应用在保存时将其转换为 Unicode emoji)
  • 纯文本导出会完全丢失自定义 emoji - 它们显示为原始的 :custom_name: 文本
  • 自动补全偶尔会替换你不想要的 shortcode (尤其是像 :p 这样的短 shortcode)

常见误解

  • ❌「shortcode 是 Unicode 的一部分」→ ✅ 它们是应用层的约定
  • ❌「所有应用都识别相同的 shortcode」→ ✅ 有大量重叠,但也有许多应用特有的名称
  • ❌「自定义 shortcode 是可移植的」→ ✅ 它们依赖于定义它们的应用或工作区

相关术语

  • 码位 - shortcode 解析后对应的底层 Unicode 值
  • ZWJ - 某些 shortcode 解析序列中使用的连接符

这篇文章对你有帮助吗?