iTerm2 Keyboard Shortcuts
iTerm2 has been the de facto standard terminal replacement for Mac developers for years specifically because of features Apple's built-in Terminal app lacked for a long time, particularly split panes and a system-wide Hotkey Window that drops down instantly from anywhere on the system — both of which get their own dedicated shortcuts here. Its shortcut set otherwise follows standard macOS terminal conventions closely, meaning most basic navigation and tab management transfers directly from stock Terminal, with the real learning curve concentrated in iTerm2's own distinctive pane-splitting and Hotkey Window features. iTerm2 has always been Mac-exclusive, so every shortcut here is built around Cmd and Option as modifiers with nothing to translate for another platform. This page is written for developers who already know they want more than stock Terminal offers and are setting iTerm2 up as a daily driver, rather than someone deciding between the two — the split-pane and Hotkey Window sections are exactly the features that justify making the switch in the first place, so they're worth configuring deliberately rather than leaving at their unconfigured defaults. Because so much of iTerm2's power comes from Preferences rather than fixed built-in bindings, expect to spend a few minutes in Settings the first time you set it up on a new machine, particularly for the Hotkey Window, which has no single shipped-in-the-box shortcut at all.
Split Panes
| Action | Windows | Mac | Description |
|---|---|---|---|
| Split pane vertically | — | Cmd+D | Splits the current pane into two side-by-side vertical panes within the same tab, letting you view and interact with two separate shell sessions simultaneously without needing separate windows or tabs. |
| Split pane horizontally | — | Cmd+Shift+D | Splits the current pane into two stacked horizontal panes, the perpendicular companion to vertical splitting. |
| Move to next pane | — | Cmd+Option+Right (or Cmd+] in some configs) | Moves keyboard focus to the next split pane within the current tab, letting you cycle between multiple simultaneously visible shell sessions. |
| Close current pane | — | Cmd+W (pane focused) | Shuts the currently focused split pane and lets the remaining panes in that tab expand to fill the space it leaves behind; if that pane was the last one left in the tab, the whole tab closes along with it. iTerm2 prompts for confirmation only if the pane has a running foreground process other than the default shell, so closing an idle pane with nothing but a prompt sitting in it happens instantly without an extra dialog. |
| Resize current pane | — | Cmd+Ctrl+Arrow keys | Grows or shrinks the currently focused pane in the direction of the pressed arrow key, useful for giving one split more visible room without needing to drag the pane divider with the mouse. |
| Toggle maximize current pane | — | Cmd+Shift+Enter | Temporarily expands the focused pane to fill the entire tab area, hiding the other panes without actually closing them, then restores the original split layout when toggled again. |
Hotkey Window
| Action | Windows | Mac | Description |
|---|---|---|---|
| Toggle Hotkey Window (global) | — | Custom-assigned global hotkey (commonly configured to a key like Option+Space) | Toggles iTerm2's Hotkey Window, a dedicated terminal window that instantly drops down from anywhere on the system regardless of which app currently has focus, requiring initial setup in Preferences > Keys > Hotkey since there's no single universal default binding. |
| Configure Hotkey Window profile | — | Preferences > Profiles > Keys, no runtime shortcut | Not a runtime shortcut itself, but the configuration step required to set up which profile and behavior the Hotkey Window uses, done once in Preferences rather than during normal terminal use. |
| Assign Hotkey Window to a dedicated Space | — | Preferences > Profiles > Window > Space, no runtime shortcut | A configuration option (not a live shortcut) letting the Hotkey Window appear on whichever macOS Space or Desktop you're currently viewing rather than tied to one fixed Space, which matters for users who work across multiple virtual desktops and want the drop-down terminal to follow them everywhere. |
Tabs Search
| Action | Windows | Mac | Description |
|---|---|---|---|
| New tab | — | Cmd+T | Opens a new terminal tab, standard behavior shared with stock Terminal and most tabbed applications generally. |
| Switch to next tab | — | Cmd+Shift+] (or Cmd+Right in some configs) | Moves to the next open tab, standard tab-cycling behavior. |
| Search within current session | — | Cmd+F | Opens search within the current pane's scrollback buffer, letting you find specific text in a long terminal output history without manually scrolling. |
| Clear scrollback buffer | — | Cmd+K | Clears the entire scrollback history for the current session, not just the visible screen, distinct from a shell-level 'clear' command which typically only clears the visible screen while preserving scrollback. |
| Open command history autocomplete | — | Cmd+; | Opens an inline autocomplete popup suggesting previously typed commands matching what's currently typed, distinct from a shell's own history search and specific to iTerm2's own tracked session history. |
Frequently Asked Questions
What's the actual difference between iTerm2's Cmd+K and a shell's own 'clear' command?
A shell's built-in clear command (or Ctrl+L in many shells) typically only clears the visible terminal screen while leaving the full scrollback history intact and still scrollable/searchable above. iTerm2's Cmd+K instead clears the entire scrollback buffer itself at the application level, removing that history entirely rather than just visually scrolling past it — a genuinely more thorough clear appropriate when you specifically want the history gone, not just out of immediate view.
Why do I need to manually configure the Hotkey Window instead of it working immediately?
Because the Hotkey Window is a system-wide global shortcut that needs to claim a specific key combination across the entire OS (not just within iTerm2's own window), and because that combination could conflict with other applications' or the OS's own bindings depending on your specific setup, iTerm2 requires deliberate opt-in configuration in Preferences > Keys > Hotkey rather than assuming a default global binding that might unexpectedly clash with something else already using that combination on your system.
Does splitting panes create genuinely separate shell sessions, or just a visual split of one session?
Each split pane runs its own genuinely independent shell session/process, not just a visual division of one shared session — commands run in one pane don't affect or share state (like current directory or environment variables set in that specific session) with another pane, similar to having multiple separate terminal windows open but arranged visually within one combined window and tab.
How is Maximize Pane different from just closing the other panes?
Maximize Pane is purely a temporary visual toggle — the other panes and their running shell sessions remain fully alive and untouched in the background, they're just hidden from view while the focused pane fills the space. Closing a pane, by contrast, actually terminates that pane's shell process, which is a destructive action you can't casually reverse the way you can un-toggle a maximize state.
Is the command history autocomplete the same as pressing the Up arrow for shell history?
No — the Up arrow's history behavior comes from your shell itself (bash, zsh, etc.) and only recalls commands in strict chronological order one at a time. iTerm2's own autocomplete (Cmd+;) searches its independently tracked history for anything matching what you've already typed on the current line, which can surface a relevant older command instantly rather than requiring you to step backward through everything typed since then.