# 按 Enter 换行，Shift+Enter 在聊天中提交消息

**URL:** <https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280>\
**Category:** UX\
**Tags:** chat\
**Created:** [2023年十二月20日 04:40 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280 "2023-12-20T04:40:46Z")\
**Posts on this page:** 10\
**Page:** 2

<div class="post-metadata">

**Author:** ![meglio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/meglio/32/71444_2.png) [@meglio](https://meta.discourse.org/u/meglio)\
**Post date:** [2024年十二月27日 23:03 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/31 "2024-12-27T23:03:44Z")

</div>

附注：我想在 MacOS 上，如果配置了 Shift+Enter，Cmd+Enter 应该也能用来提交消息。

---

<div class="post-metadata">

**Author:** ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)\
**Post date:** [2024年十二月28日 07:11 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/32 "2024-12-28T07:11:26Z")

</div>

Shift+Enter 是添加换行符的标准操作，不会提交消息。如果使用 Shift+Enter 发送消息，可能会让很多人感到困惑，因为它会训练错误的肌肉记忆。当我想要确保程序 **不会** 发送消息时，我总是会使用 Shift+Enter。

Ctrl/Command+Enter 是提交内容（聊天消息、电子邮件等）的标准操作。在 Discord、Slack、Gmail、Google Chat、Thunderbird 以及大多数其他程序中都可以尝试这两种按键绑定。

编辑：Command+Enter 也可以用于 Discourse 帖子。

---

<div class="post-metadata">

**Author:** ![meglio](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/meglio/32/71444_2.png) [@meglio](https://meta.discourse.org/u/meglio)\
**Post date:** [2024年十二月28日 09:53 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/33 "2024-12-28T09:53:42Z")

</div>

没有标准，这就是为什么我要求进行设置然后完成它。如果我选择 Enter 来换行，我期望其他任何操作（例如提交）都不同。

如果 Shift+Enter 换行，而 Cmd+Enter 提交，这是糟糕的用户体验——这两者很容易混淆，我们又回到了不可靠的行为，这绝对不是“最不令人惊讶的”。

它必须介于 A) 单独按 Enter 和 B) 按下带有修饰键的 Enter 之间。这是区分换行和提交意图的唯一方法，这将使用户使用编辑器顺畅直观。

将“Enter”与“Shift-Enter”组合以产生换行，然后使用“Cmd+Enter”进行提交——我认为这是一个糟糕的主意。

---

<div class="post-metadata">

**Author:** ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)\
**Post date:** [2024年十二月28日 10:49 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/34 "2024-12-28T10:49:24Z")

</div>

> [@meglio](#):
>
> 顺便说一句：我想在 MacOS 上，如果配置了 Shift+Enter，Cmd+Enter 也应该可以提交消息。

是的，这正是我上面链接的那个拉取请求中所记录的。

---

<div class="post-metadata">

**Author:** ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)\
**Post date:** [2024年十二月28日 10:50 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/35 "2024-12-28T10:50:10Z")

</div>

> [@j127](#):
>
> Shift+Enter 是添加不提交消息的换行符的标准操作。如果使用 Shift+Enter 发送消息，可能会让很多人感到困惑，因为它会训练错误的肌肉记忆。当我想要确保程序 **不会** 发送消息时，我总是会使用 shift+enter。

这是一个选项，它将默认使用 Enter 发送，使用 Shift+Enter 换行。所以我不明白这怎么会让人感到困惑，因为他们必须 **选择** 这种行为。

---

<div class="post-metadata">

**Author:** ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)\
**Post date:** [2024年十二月28日 10:51 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/36 "2024-12-28T10:51:20Z")

</div>

鉴于默认行为不会对所有人产生改变，并且你们都可以作为此选项的用户向我提供反馈，我认为我很有可能会按原样合并此拉取请求。

---

<div class="post-metadata">

**Author:** ![j127](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j127/32/79093_2.png) [@j127](https://meta.discourse.org/u/j127)\
**Post date:** [2024年十二月28日 16:54 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/37 "2024-12-28T16:54:01Z")

</div>

> [@j.jaffeux](#):
>
> nit will default to enter to send, and shift+enter to linebreak

默认听起来不错，但我不会将发送设置为 Shift+Enter，因为这就像提供使用 ESC 提交而不是阻止提交的选项一样，这会以错误的方式训练某些用户的肌肉记忆。

> [@meglio](#):
>
> There is no standard

这就像 ESC 退出或 Ctrl+K 搜索一样——不是官方标准，但由于许多程序长期以来都这样做，所以用户期望如此。正如你上面提到的：“这似乎是 Telegram 到 Element 所有流行聊天中的一个相当标准的设置——即允许‘Cmd+Enter 发送，Enter 换行’。”

如果人们训练肌肉记忆，认为 Shift+Enter 发送消息，当他们发现其他程序会发生什么时，他们会感到不愉快的惊喜。

> [@meglio](#):
>
> Grouping “Enter” together with “Shift-Enter” to produce a newline, and then have “Cmd+Enter” to submit — is a terrible idea imo.

我不使用你提到的这两个程序，但 Slack、Google Chat、Skype、Apple Messages 以及大多数其他程序都使用 Enter 发送，而 Shift+Enter 创建新行。当 Enter 不提交时（Gmail、Discourse 帖子等），Ctrl/Command+Enter 会提交。

提供一个选项来关闭 Enter 的提交功能是有意义的，但我认为使用 Shift+Enter 来提交会给那些选择此选项但未意识到这会造成另一个肌肉记忆问题的人带来麻烦。

---

<div class="post-metadata">

**Author:** ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)\
**Post date:** [2025年一月22日 12:21 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/38 "2025-01-22T12:21:23Z")

</div>

我刚刚合并了这个，它复制了 Telegram 的行为：

> <https://github.com/discourse/discourse/pull/30473>
>
> Users can now decide if they want to send a message on:
> \- \<kbd\>enter\</kbd\>
> \- \<…kbd\>meta + enter\</kbd\>
> 
> If you choose \<kbd\>meta + enter\</kbd\>, \<kbd\>enter\</kbd\> will add a linebreak.
> 
> 
> \<img width="192" alt="Screenshot 2025-01-21 at 12 57 48" src="https://github.com/user-attachments/assets/abfd6f8b-83b3-4e6f-be67-8f63d536ca8a" /\>

请告诉我您的使用情况。

---

<div class="post-metadata">

**Author:** ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)\
**Post date:** [2025年一月22日 13:52 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/39 "2025-01-22T13:52:12Z")

</div>

~~此功能在 iPad 上应如何运作~~

算了，使用图标即可。没问题。

---

<div class="post-metadata">

**Author:** ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)\
**Post date:** [2025年二月21日 13:53 UTC](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280/40 "2025-02-21T13:53:09Z")

</div>

此主题在上次回复后 30 天自动关闭。不再允许回复。

[上一頁](https://meta.discourse.org/t/enter-to-newline-shift-enter-to-submit-message-in-chat/289280.md?page=1)
