Multi-Cursor Editing on Mac: Which Apps Actually Do It

Difficulty
Advanced

Step by step

  1. 20 sec

    Correct the premise before you start

    macOS has no system-wide multi-cursor editing. No shortcut gives you two cursors in TextEdit, Notes, Mail, or a Safari text field. Multi-cursor is something each editor builds for itself, so the keys depend entirely on which app the cursor is sitting in.

    Note: Guides promising this in any Mac text field are describing one app they forgot to name. Check the app before you check the shortcut.
  2. 20 sec

    Place extra cursors in Xcode

    In Xcode, hold Control and Shift and click to place an additional cursor. Repeat for as many cursors as you need. Type once and every cursor types the same thing. Click once without modifiers to collapse back to a single cursor.

    Note: Xcode also does column work: hold Option and drag to select a rectangle of characters spanning several lines at once.
  3. 30 sec

    Add cursors in Visual Studio Code

    In Visual Studio Code, hold Option and click to add a cursor. Press Command + Option + Up Arrow or Down Arrow to stack a cursor on the line above or below. Press Command + D to add a cursor at the next occurrence of the current selection.

    Note: Command + D repeated is how you rename a variable in eight places without a dialog. Press it once too often and Command + U steps back.
  4. 20 sec

    Add cursors in Sublime Text

    In Sublime Text, hold Command and click to add a cursor anywhere in the file. Press Command + D to add the next occurrence of the current selection. Hold Option and drag to make a column selection, which resolves into one cursor per line.

    Note: Sublime shipped multiple selection years before it became a standard editor feature, and the keys have not moved since.
  5. 15 sec

    Find the keys in any other editor

    Other editors carry the same feature under their own keys. Open the app Edit menu and look for a Selection or Multiple Cursors submenu, which lists each command with its shortcut printed beside it. Failing that, the keybindings pane in the app settings holds the authoritative list.

    Note: Nova, BBEdit, and the JetBrains editors all support multiple cursors. None of them agree on the modifier, so read the menu rather than a list typed from memory.
  6. 20 sec

    Use column selection where it exists

    Option and drag gives a rectangular selection in Xcode, Sublime Text, and Terminal. In Visual Studio Code the equivalent is Shift and Option and drag. Inside an editor a column selection becomes one cursor per line, so you can type straight down a column.

    Note: In Terminal the rectangle is selection only. There is no cursor to multiply, so you get a clean copy of columnar output and nothing else.