---
title: 'Command reference'
url: 'https://xcommander.dev/docs/commands'
markdown: 'https://xcommander.dev/docs/commands.md'
date: '2026-11-09'
description: 'Every command XCommander ships with, grouped the way the which-key panel groups them. Every sequence starts with the leader key, ⌥↩ unless you chose another one, so m m below means ⌥↩ then m then m. An uppercase letter means with Shift. The Xcode menu item column is what XCommander presses for you…'
taxonomy:
  category:
    - docs
---

commands.md 

# Command reference

 Every command XCommander ships with, grouped the way the which-key panel groups them. **Every sequence starts with the leader key**, ⌥↩ unless you chose another one, so m m below means ⌥↩ then m then m. An uppercase letter means with Shift.

The **Xcode menu item** column is what XCommander presses for you (as it appears in Xcode 27.2). Commands marked *XCommander* are ones Xcode doesn't have, done by XCommander itself. The **id** is what you write in your [configuration file](https://xcommander.dev/docs/configuration) to bind a command to other keys.

If a key beeps, Xcode has that command greyed out right now, as it would be in the menu. The which-key panel leaves out keys for commands your version of Xcode doesn't have.

## Straight after the leader

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| , | Switch open editor | *XCommander* picker | `picker.buffers` |
| . | Open quickly | File › Open Quickly… | `file.openQuickly` |
| / | Search project with ripgrep | *XCommander* picker | `picker.search` |
| : | Command palette | *XCommander* picker | `picker.commands` |
| SPC | Find file in project | *XCommander* picker | `picker.files` |

## b — buffers

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| b b | Switch open editor | *XCommander* picker | `picker.buffers` |
| b d | Close document | File › Close | `file.close` |
| b n | Next tab | Navigate › Show Next Tab | `buffer.nextTab` |
| b p | Previous tab | Navigate › Show Previous Tab | `buffer.previousTab` |
| b s | Save | File › Save | `file.save` |
| b S | Save all | File › Save All | `file.saveAll` |
| b t | New tab | Toolbar: Add Editor | `buffer.newTab` |

## c — code

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| c / | Toggle comments | Editor › Structure › Comment Selection | `code.comment` |
| c a | Counterpart | Navigate › Jump to Next Counterpart | `code.counterpart` |
| c A | Counterpart in next pane | Navigate › Jump to Next Counterpart in Next Editor Pane | `code.counterpartInPane` |
| c c | Call hierarchy | Find › Find Call Hierarchy | `code.callers` |
| c d | Jump to definition | Navigate › Jump to Definition | `code.definition` |
| c D | Definition in next pane | Navigate › Jump to Definition in Next Editor Pane | `code.definitionInPane` |
| c e | Edit all in scope | Editor › Edit All in Scope | `code.editAllInScope` |
| c f | Format file | Editor › Structure › Format File with ‘swift-format’ | `code.formatFile` |
| c F | Format selection | Editor › Structure › Format Selection with ‘swift-format’ | `code.formatSelection` |
| c h | Quick help | Help › Show Quick Help for Selected Item | `code.quickHelp` |
| c i | Re-indent | Editor › Structure › Re-Indent | `code.reindent` |
| c j | Move line down | Editor › Structure › Move Line Down | `code.moveLineDown` |
| c k | Add documentation | Editor › Structure › Add Documentation | `code.addDocs` |
| c m | Extract to function | Editor › Refactor › Extract to Function | `code.extractFunction` |
| c M | Generate memberwise init | Editor › Refactor › Generate Memberwise Initializer | `code.memberwiseInit` |
| c n | Next issue | Navigate › Jump to Next Issue | `nav.nextIssue` |
| c o | Back | Navigate › Show Previous Location in History | `nav.back` |
| c O | Forward | Navigate › Show Next Location in History | `nav.forward` |
| c p | Previous issue | Navigate › Jump to Previous Issue | `nav.previousIssue` |
| c r | Rename | Editor › Refactor › Rename… | `code.rename` |
| c s | Symbols in this file | *XCommander* picker | `picker.docSymbols` |
| c S | Symbols across the project | *XCommander* picker | `picker.projectSymbols` |
| c T | Definition in a tab | Navigate › Jump to Definition using Tab | `code.definitionInTab` |
| c u | Move line up | Editor › Structure › Move Line Up | `code.moveLineUp` |
| c v | Extract to variable | Editor › Refactor › Extract to Variable | `code.extractVariable` |
| c x | Fix all issues | Editor › Fix All Issues | `code.fixAll` |

## d — debug

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| d a | Toggle debug area | View › Debug Area › Show Debug Area | `window.toggleDebugArea` |
| d b | Deactivate breakpoints | Debug › Deactivate Breakpoints | `debug.deactivateBreakpoints` |
| d c | Continue to line | Debug › Continue To Current Line | `debug.continueToLine` |
| d C | Activate console | View › Debug Area › Activate Console | `debug.console` |
| d d | Detach | Debug › Detach | `debug.detach` |
| d i | Step into | Debug › Step Into | `debug.stepInto` |
| d o | Step over | Debug › Step Over | `debug.stepOver` |
| d p | Pause | Debug › Pause | `debug.pause` |
| d u | Step out | Debug › Step Out | `debug.stepOut` |
| d v | Put the keyboard in the debug variables list | *XCommander* focus | `debug.focusVariables` |

## f — files

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| f d | Close document | File › Close | `file.close` |
| f f | Open quickly | File › Open Quickly… | `file.openQuickly` |
| f F | Find file in project | *XCommander* picker | `picker.files` |
| f n | New file | File › New › File from Template… | `file.new` |
| f r | Recent projects | *XCommander* picker | `picker.recent` |
| f R | Reveal in finder | File › Show in Finder | `file.revealInFinder` |
| f s | Save | File › Save | `file.save` |
| f S | Save all | File › Save All | `file.saveAll` |

## g — git

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| g c | Commit | Integrate › Commit… | `git.commit` |
| g f | Fetch | Integrate › Fetch Changes | `git.fetch` |
| g F | Pull | Integrate › Pull… | `git.pull` |
| g p | Push | Integrate › Push… | `git.push` |
| g s | Stage all | Integrate › Stage All Changes | `git.stageAll` |
| g u | Unstage all | Integrate › Unstage All Changes | `git.unstageAll` |
| g X | Discard all changes | Integrate › Discard All Changes… | `git.discard` |
| g y | Cherry-pick | Integrate › Cherry-Pick… | `git.cherryPick` |
| g z | Stash | Integrate › Stash Changes… | `git.stash` |

## h — help

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| h / | Search docs for selection | Help › Search Documentation for Selected Text | `help.searchDocs` |
| h c | Check every binding still resolves against Xcode's menus | *XCommander* | `companion.checkMenus` |
| h d | Developer documentation | Help › Developer Documentation | `help.docs` |
| h h | Human interface guidelines | Help › Human Interface Guidelines | `help.hig` |
| h k | Quick help | Help › Show Quick Help for Selected Item | `code.quickHelp` |
| h s | The swift book | Help › Swift Programming Language Book | `help.swiftBook` |

## i — inspector

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| i f | File inspector | View › Inspectors › File | `inspector.file` |
| i h | History inspector | View › Inspectors › History | `inspector.history` |
| i i | Toggle inspector | View › Inspectors › Show Inspector | `window.toggleInspector` |
| i q | Quick help inspector | View › Inspectors › Quick Help | `inspector.quickHelp` |

## m — make

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| m a | Analyze | Product › Analyze | `make.analyze` |
| m c | Clean | Product › Clean Build Folder… | `make.clean` |
| m C | Clear test results | Product › Clear Test Results | `make.clearResults` |
| m d | Build documentation | Product › Build Documentation | `make.docs` |
| m k | Stop | Product › Stop | `make.stop` |
| m m | Build | Product › Build | `make.build` |
| m N | Test without building | Product › Perform Action › Test Without Building | `make.testNoBuild` |
| m p | Profile | Product › Profile | `make.profile` |
| m r | Run | Product › Run | `make.run` |
| m R | Run without building | Product › Perform Action › Run Without Building | `make.runNoBuild` |
| m t | Test | Product › Test | `make.test` |
| m T | Test again | Product › Perform Action › Test Again | `make.testAgain` |

## n — navigator

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| n / | Filter navigator | View › Navigators › Filter in Navigator | `navigator.filter` |
| n b | Bookmarks | View › Navigators › Bookmarks | `navigator.bookmarks` |
| n d | Debug | View › Navigators › Debug | `navigator.debug` |
| n f | Put the keyboard in the navigator | *XCommander* focus | `navigator.focus` |
| n g | Source control | View › Navigators › Source Control | `navigator.sourceControl` |
| n i | Issues | View › Navigators › Issues | `navigator.issues` |
| n k | Breakpoints | View › Navigators › Breakpoints | `navigator.breakpoints` |
| n n | Toggle navigator | View › Navigators › Hide Navigator | `window.toggleNavigator` |
| n p | Project | View › Navigators › Project | `navigator.project` |
| n r | Reports | View › Navigators › Reports | `navigator.reports` |
| n s | Find results | View › Navigators › Find | `navigator.find` |
| n t | Tests | View › Navigators › Tests | `navigator.tests` |

## p — project

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| p / | Search project with ripgrep | *XCommander* picker | `picker.search` |
| p d | Run destination simulator | *XCommander* picker | `picker.destinations` |
| p f | Find file in project | *XCommander* picker | `picker.files` |
| p r | Recent projects | *XCommander* picker | `picker.recent` |
| p s | Scheme | *XCommander* picker | `picker.schemes` |

## q — quit

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| q q | Quit XCommander | *XCommander* | `quit.companion` |
| q r | Reload Xcode commands | *XCommander* | `companion.reload` |
| q X | Quit Xcode | Xcode › Quit Xcode | `quit.xcode` |

## s — search

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| s e | Use selection for find | Find › Use Selection for Find | `search.selection` |
| s g | Search project with ripgrep | *XCommander* picker | `picker.search` |
| s n | Next match | Find › Find Next | `search.next` |
| s N | Previous match | Find › Find Previous | `search.previous` |
| s p | Find in project | Find › Find in Workspace | `search.project` |
| s r | Find and replace | Find › Find and Replace… | `search.replace` |
| s s | Find | Find › Find… | `search.find` |

## t — toggles

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| t a | Authors | Editor › Authors | `toggle.authors` |
| t b | Editor tab bar | View › Hide Editor Tab Bar | `toggle.tabBar` |
| t c | Code coverage | Editor › Code Coverage | `toggle.coverage` |
| t g | Scope guides | Editor › Scope Guides | `toggle.scopeGuides` |
| t i | Invisibles | Editor › Invisibles | `toggle.invisibles` |
| t l | Relative line numbers | Editor › Relative Line Numbers | `toggle.lineNumbers` |
| t m | Minimap | Editor › Minimap | `toggle.minimap` |
| t v | Vim mode | Editor › Vim Mode | `toggle.vim` |
| t w | Wrap lines | Editor › Wrap Lines | `toggle.wrap` |

## T — ui

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| T + | Font bigger | Editor › Font Size › Increase | `ui.fontIncrease` |
| T - | Font smaller | Editor › Font Size › Decrease | `ui.fontDecrease` |
| T 0 | Font reset | Editor › Font Size › Reset | `ui.fontReset` |
| T s | Syntax coloring | *XCommander* picker | `picker.syntax` |
| T t | Theme | *XCommander* picker | `picker.themes` |

## w — windows

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| w , | Shrink pane | *XCommander* panes | `pane.shrink` |
| w . | Grow pane | *XCommander* panes | `pane.grow` |
| w = | Make the panes equal | *XCommander* panes | `pane.balance` |
| w a | Next area | Navigate › Move Focus to Next Area | `window.nextArea` |
| w b | Toggle debug area | View › Debug Area › Show Debug Area | `window.toggleDebugArea` |
| w d | Close pane | File › Close Editor Pane | `window.closePane` |
| w e | Open in next pane | Navigate › Open in Next Editor Pane | `window.openInNext` |
| w E | Open in a tab | Navigate › Open using Tab | `window.openInTab` |
| w f | Choose pane… | Navigate › Move Focus to Editor Pane… | `window.choosePane` |
| w h | Focus the pane to the left | *XCommander* panes | `pane.left` |
| w H | Send this file to the pane on the left | *XCommander* panes | `pane.sendLeft` |
| w i | Toggle inspector | View › Inspectors › Show Inspector | `window.toggleInspector` |
| w j | Focus the pane below | *XCommander* panes | `pane.down` |
| w J | Send this file to the pane below | *XCommander* panes | `pane.sendDown` |
| w k | Focus the pane above | *XCommander* panes | `pane.up` |
| w K | Send this file to the pane above | *XCommander* panes | `pane.sendUp` |
| w l | Focus the pane to the right | *XCommander* panes | `pane.right` |
| w L | Send this file to the pane on the right | *XCommander* panes | `pane.sendRight` |
| w n | Toggle navigator | View › Navigators › Hide Navigator | `window.toggleNavigator` |
| w o | Close other panes | File › Close Other Editor Panes | `window.closeOthers` |
| w O | Editor only | Editor › Show Editor Only | `window.editorOnly` |
| w p | Previous pane | Navigate › Move Focus to Previous Editor Pane | `window.previousPane` |
| w q | Close pane | File › Close Editor Pane | `window.closePane` |
| w s | Pane below | Toolbar: Add Editor | `window.paneBelow` |
| w v | Pane on right | Toolbar: Add Editor | `window.paneRight` |
| w w | Next pane | Navigate › Move Focus to Next Editor Pane | `window.nextPane` |
| w x | Exchange this pane's file with the next | *XCommander* panes | `pane.swap` |
| w z | Maximise this pane, again to restore | *XCommander* panes | `pane.zoom` |

### w W — os window

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| w W f | Fill screen | Window › Fill | `window.tileFull` |
| w W h | Tile left | Window › Move & Resize › Left | `window.tileLeft` |
| w W l | Tile right | Window › Move & Resize › Right | `window.tileRight` |
| w W m | Merge all windows | Window › Merge All Windows | `window.mergeAll` |
| w W r | Previous size | Window › Move & Resize › Return to Previous Size | `window.previousSize` |
| w W t | Move tab to new window | Window › Move Tab to New Window | `window.tabToWindow` |

## x — text

| Keys | Command | Xcode menu item | id |
|---|---|---|---|
| x \_ | snake\_case | *XCommander* text | `text.snake` |
| x a | Align selection on delimiter | *XCommander* text | `text.align` |
| x c | camelCase | *XCommander* text | `text.camel` |
| x d | Remove duplicate lines | *XCommander* text | `text.dedupe` |
| x j | Join lines | *XCommander* text | `text.join` |
| x l | Lower case | *XCommander* text | `text.lower` |
| x r | Reverse lines | *XCommander* text | `text.reverse` |
| x s | Sort lines | *XCommander* text | `text.sort` |
| x S | Sort lines reversed | *XCommander* text | `text.sortReversed` |
| x u | Upper case | *XCommander* text | `text.upper` |
| x w | Trim trailing whitespace | *XCommander* text | `text.trim` |

*158 commands, 158 of them with default keys.*

---

## Navigation

- Parent: [Documentation](https://xcommander.dev/docs.md)
- Previous: [Everyday use](https://xcommander.dev/docs/everyday-use.md)
- Next: [Configuration](https://xcommander.dev/docs/configuration.md)
