Guides

Why Ctrl+C doesn't copy in the terminal, and what does

You select some text in a terminal, press Ctrl+C, and nothing lands on the clipboard — or worse, the command you were running stops. It is not broken. In a terminal, Ctrl+C already had a job long before anyone copied text out of one, so each terminal has had to decide where copy and paste go instead. They did not all decide the same way.

Why Ctrl+C doesn't copy

Pressing Ctrl+C in a terminal sends the interrupt character to whatever is running, and the shell treats it as "stop this command". That is how you cancel a stuck download or a server you started by mistake, and nobody wants it to stop working. Ctrl+V has a meaning too: in Vim it starts block selection, which Windows Terminal's docs call out by name.

Terminals solve this in one of two ways. Most Linux terminals add Shift, so copy is Ctrl+Shift+C and paste is Ctrl+Shift+V. Windows Terminal makes Ctrl+C decide for itself: it copies when text is selected, and interrupts when nothing is.

Windows Terminal

  • Copy: Ctrl+C, Ctrl+Shift+C or Ctrl+Insert. With nothing selected, the docs say "the key chord is sent directly to the terminal" — so Ctrl+C still stops a command (actions).
  • Paste: Ctrl+V, Ctrl+Shift+V or Shift+Insert.
  • Right-click copies the current selection. Turn on copyOnSelect and selecting text copies it straight away, and right-click always pastes (interaction settings).
  • It warns before pasting text with more than one line, or more than 5 KiB of it. Both warnings are on by default — worth keeping, because each pasted line can run as a command the moment it arrives.

If you use Vim inside Windows Terminal, Ctrl+V pastes instead of starting block selection. The docs show how to unbind it in settings.json so the key reaches Vim.

GNOME Terminal

Copy is Shift+Ctrl+C and paste is Shift+Ctrl+V, and both are also on the right-click menu. GNOME's help is blunt about it: "The standard keyboard shortcuts, such as Ctrl+C, cannot be used to copy and paste text."

Konsole

  • Copy is Ctrl+Shift+C and paste is Ctrl+Shift+V, from the Edit menu (command reference).
  • The middle mouse button pastes, and Ctrl with the middle button pastes and adds a new line (mouse buttons).
  • Right-click opens a menu with Copy and Paste. When a program in the terminal uses the mouse itself, hold Shift while right-clicking to get the menu.

WezTerm

  • Copy is Ctrl+Shift+C and paste is Ctrl+Shift+V, on every system WezTerm runs on (default keys).
  • Selecting text with the mouse copies it as soon as you let go of the button, and the middle button pastes (mouse bindings).
  • Ctrl+Insert and Shift+Insert use the primary selection rather than the clipboard — see the next section.

Linux's second clipboard

Linux desktops usually have two places copied text can live. The clipboard is the one Ctrl+Shift+C and Ctrl+Shift+V use. The primary selection is filled simply by selecting text, and the middle mouse button pastes from it. The two are separate, which is why a middle-click can paste something different from Ctrl+Shift+V. WezTerm's default bindings show both side by side. Windows has only the clipboard.

If you use both Windows and Linux

The habit that causes trouble is Windows Terminal's Ctrl+C. It copies on Windows, and then on a Linux machine the same key stops the command you meant to copy from. The fix is free: use Ctrl+Shift+C and Ctrl+Shift+V everywhere. Windows Terminal accepts both by default, and so do GNOME Terminal, Konsole and WezTerm, so one pair of keys works in all four.

Where CPT fits

In Cross Platform Terminal, copy is Ctrl+Shift+C and paste is Ctrl+Shift+V on Windows and Linux alike, and Ctrl+C always goes to the shell. That is the same pair the free terminals above already accept, so it is not a reason to switch on its own. CPT is for people who want the whole terminal — layout, shortcuts and settings — to be the same program on both systems; see the same terminal setup on Windows and Linux for that, including the free ways to get there.

CPT is a paid subscription with no free tier and no trial, and there is no macOS build yet. For copy and paste alone, learning Ctrl+Shift+C and Ctrl+Shift+V in the terminal you already have is the answer.

In short

  • Ctrl+C doesn't copy because it stops the running command.
  • Windows Terminal: Ctrl+C copies only when something is selected.
  • GNOME Terminal, Konsole and WezTerm: Ctrl+Shift+C and Ctrl+Shift+V.
  • On Linux, select text and middle-click to paste it without copying first.
  • Using both systems: Ctrl+Shift+C and Ctrl+Shift+V work in all of them.