Discord Messaging Shortcuts
Beyond navigating between servers and controlling voice calls, these shortcuts cover the everyday mechanics of composing, editing, and responding to individual text messages within a channel — many conceptually similar in purpose to Slack's own messaging shortcuts, though Discord's specific implementation and terminology diverge in some genuine, worth-knowing ways.
| Action | Windows | Mac | Description |
|---|---|---|---|
| Upload a file to current channel | Ctrl+Shift+U (or click paperclip) | Cmd+Shift+U | Opens a file picker to attach an image or file to the message being composed in the current channel. |
| Edit your last message | Up Arrow (in empty message box) | Up Arrow (in empty message box) | Pressing Up Arrow while the message box is empty pulls your last sent message back into the composer with the cursor placed at the end, ready to correct a typo without a mouse trip up the channel history to find and hover over it. |
| Create a thread from a message | Hover message > Create Thread icon | — | Branches a focused sub-conversation off a specific message into its own contained thread, keeping a fast-moving channel's main view readable by moving a tangential discussion aside — added to Discord considerably later than Slack's own threading feature, with some interaction differences despite the shared underlying goal. |
| Pin a message | Hover message > Pin icon | — | Adds a message to the channel's dedicated pin list so it stays quickly reachable later, sparing you from scrolling back through a long conversation history to relocate it. |
| Reply to a specific message | Hover message > R, or click Reply icon | Hover message > R | Composes a reply visibly linked back to a specific earlier message, distinct from a thread since a reply stays inline in the main channel flow with just a small reference connector, rather than branching into its own separate contained space. |
| Open emoji picker in compose box | Ctrl+Shift+E (or type : for autocomplete) | Cmd+Shift+E | Opens the full emoji picker for inserting an emoji directly into a message being composed, distinct from reacting to an already-sent message with an emoji reaction. |
Editing your last message (Up Arrow, pressed with the compose box completely empty) pulls your most recently sent message back into the composer with the cursor placed at the end, ready to correct a typo without a manual scroll back up through channel history to find and hover over that specific message — functionally identical in behavior to the same shortcut in Slack, since both apps converged on this same empty-compose-box convention independently.
Uploading a file (Ctrl+Shift+U, or clicking the paperclip icon directly) opens a file picker to attach an image or document to the message currently being composed in the active channel.
Creating a thread from a specific message (hovering that message and clicking its Create Thread icon, with no default global keyboard shortcut) branches a focused sub-conversation off that message into its own contained space, keeping a fast-moving channel's main timeline readable by moving a tangential discussion aside — this serves the same underlying goal as Slack's own threading feature, though it's worth knowing Discord added threads to its feature set considerably later in its overall history than Slack did, and the two implementations differ in some interaction specifics even with a shared core purpose.
Replying to a specific message (hovering it and pressing R, or clicking its Reply icon) is worth distinguishing clearly from creating a thread: a reply stays inline within the main channel's continuous message flow, showing just a small visual connector line back to the original message it's responding to, while a thread branches the entire follow-up conversation into its own genuinely separate contained space. A reply is the lighter-weight option for a short, single response that doesn't need to be pulled fully out of the main channel view, while a thread is better suited to a longer, more involved tangential discussion that would otherwise clutter the main timeline if it stayed inline.
Pinning a message (hovering it and clicking its Pin icon) adds it to the channel's dedicated pin list, keeping it quickly reachable later without needing to scroll back through potentially months of conversation history to relocate it — opening the pin icon in the channel header shows every currently pinned message in that channel as a short, scannable list.
Opening the emoji picker while composing (Ctrl+Shift+E, or simply typing a colon to trigger inline autocomplete) inserts an emoji directly into the message currently being typed, worth distinguishing from reacting to an already-sent message with an emoji, which is a separate action performed by hovering that specific message rather than something done from within the compose box.
A meaningful distinction worth internalizing across replies and threads together: choosing the lighter-weight reply for a quick response and reserving the heavier thread specifically for something that genuinely warrants its own separated space is the kind of judgment call that, done consistently across an active server, keeps the main channel considerably more readable for everyone in it — overusing threads for content that could have stayed as a simple inline reply fragments a channel's conversation unnecessarily, while underusing them for something that really does need its own space clutters the main channel with a long, tangential back-and-forth that most channel members have no interest in following.
Discord's reply feature also includes an optional toggle for whether the replied-to person receives a notification specifically because of that reply, distinct from a general @mention — this matters for a busy channel where you want to visibly connect your message to an earlier one for context, without necessarily wanting to trigger a personal notification ping for the person being replied to, a small but genuinely useful bit of control not present in every messaging app's equivalent reply feature.
Message formatting in Discord follows broadly the same lightweight Markdown-style conventions found in Slack — asterisks for bold, underscores for italic, backticks for inline code, triple backticks for a full code block — typed directly rather than requiring a separate dedicated keyboard shortcut for each one, since Discord doesn't bind most of its text-formatting options to Ctrl-plus-letter combinations the way Slack does for bold and italic specifically. Someone arriving at Discord already familiar with Slack's typed Markdown conventions largely already knows Discord's equivalent syntax, even without the matching keyboard shortcuts layered on top of it.