Repository navigation
Keyboard Shortcuts
Every shortcut in Nibtree, grouped by where it works. Keys are written as on a Mac keyboard: Cmd (Command), Shift, Option and Ctrl (Control). This page has the window, menu, search, terminal and mouse shortcuts. The keys of the text editor, the find bar, the merge tool and the lists are on Editor and List Shortcuts.

Help > Keyboard Shortcuts: every shortcut of the app, with a filter box.
Choose Help > Keyboard Shortcuts in the menu bar to see every shortcut inside the app. It lists the keys of each menu (one section per menu), then the shortcuts no menu shows. Type in the filter box to narrow the list, for example terminal, commit or F7. The keys use the macOS symbols (⌘ Cmd, ⌥ Option, ⇧ Shift, ⌃ Ctrl). Open Online Version opens this page in your browser. Esc closes the window.
The menu sections are built from the menu bar's own definition, so they always match the real keys. The other sections list the keys no menu shows, for the platform you are on.
The focused part of the window sees a key before the menu bar. So when two actions share a key, the one where you are wins:
- Shift+Cmd+G is Find Previous in an editor, and shows Changes everywhere else.
- Shift+Cmd+L selects every match of the selection in an editor with text selected, and shows the Log everywhere else.
- Cmd+K makes a link in a Markdown file and clears a terminal, and opens Commit everywhere else.
- Cmd+B makes text bold in a Markdown file, and hides or shows the sidebar everywhere else.
- Cmd+C, Cmd+X and Cmd+V copy, cut and paste files while the Files panel has the keyboard, and text everywhere else.
Window shortcuts do nothing while a dialog or the merge tool is open: the key is dropped, not kept for later. Window shortcuts that use Cmd also accept Ctrl. How keys are routed between the page and the menu bar is in Menu keys and routing.
| Keys | Menu item |
|---|---|
| Cmd+, | Nibtree > Settings... |
| Cmd+H, Option+Cmd+H, Cmd+Q | Hide Nibtree, Hide Others, Quit Nibtree |
| Cmd+N | File > New File |
| Cmd+S | File > Save |
| Option+Cmd+S | File > Save All |
| Cmd+W | File > Close Tab |
| Cmd+Z and Shift+Cmd+Z | Edit > Undo and Redo |
| Cmd+X, Cmd+C, Cmd+V, Cmd+A | Edit > Cut, Copy, Paste, Select All |
| Cmd+F and Cmd+R | Edit > Find... and Replace... |
| Cmd+G and Shift+Cmd+G | Edit > Find Next and Find Previous |
| Ctrl+Cmd+G | Edit > Select All Occurrences |
| Shift+Cmd+F | Edit > Find in Files... |
| Shift+Cmd+R | Edit > Replace in Files... |
| Cmd+P | Edit > Go to File... |
| Cmd+E | Edit > Recent Files... |
| Cmd+Up | Edit > Jump to Navigation Bar (Alt+Home on Windows and Linux) |
| Cmd+O | Edit > Go to Class... |
| Option+Cmd+O | Edit > Go to Symbol... |
| Shift Shift (press Shift twice) | Edit > Search Everywhere |
| Shift+Cmd+E | View > Branches and Stashes |
| Shift+Cmd+L | View > Log |
| Cmd+B | View > Files Panel |
| Option+Cmd+B | View > Sidebar |
| Ctrl+` | View > Terminal |
| Option+Z | View > Word Wrap |
| Cmd+=, Cmd+- and Cmd+0 | View > Zoom In, Zoom Out and Reset Zoom (the editor font size) |
| Ctrl+Cmd+F | View > Enter Full Screen |
| Cmd+K | Git > Commit... |
| Cmd+T | Git > Update Project... |
| Cmd+9 | Git > Show Git Log |
| Option+Cmd+A | Git > Current File > Add to Git |
| Cmd+M | Window > Minimize |
| Shift+Cmd+] and Shift+Cmd+[ | Window > Next Tab and Previous Tab |
| Cmd+\ | Window > Split Right (in a terminal: Split Terminal) |
| Cmd+1 and Cmd+2 | Window > Focus First Group and Focus Second Group (Split Editor) |
The Code menu's keys (comments, duplicate, move and delete lines, folding, Go to Line) work in the editor and are listed on Editor and List Shortcuts. Push and Force Push have no key, since Shift+Cmd+K is Delete Line. Every menu is explained in Menus, the Git menu in Git Menu and its dialogs in Git Dialogs.
| Keys | Action |
|---|---|
| Shift Shift | Search Everywhere |
| Cmd+P or Shift+Cmd+O | Go to File |
| Cmd+E | Recent Files (press it again for edited files only) |
| Cmd+Up | Navigation Bar: the current file's folder, then arrows to move and typing to search |
| Shift+Cmd+G | Show Changes (outside a text editor) |
| Ctrl+- | Go Back |
| Ctrl+Shift+- | Go Forward |
| Esc | Close the open dialog, menu or popup |
Ctrl+- really is Control, not Command, on the Mac. See Search Everywhere, Recent Files, Navigation Bar and Navigation.
| Keys | Action |
|---|---|
| Ctrl+` | Show or hide the bottom panel |
| Ctrl+Shift+` | New terminal |
| Cmd+C and Cmd+V | Copy the selection and paste, in a terminal |
| Cmd+K | Clear the terminal |
| Cmd+A | Select everything in the terminal |
| Ctrl+C | Stop the running command, in a terminal or the Run tab |
| Cmd-click a link or file path | Open the link, or the file at its line, in a terminal |
| Cmd+F | Find in the terminal |
| Enter and Shift+Enter | Previous (older) and next match, in the terminal's find bar |
| Cmd+\ | Split the terminal, in the panel |
These Ctrl+` keys work even from inside a terminal. Every other key goes to the shell, except Cmd keys, which stay app shortcuts. Ctrl+Cmd keys go to the shell too. See Terminal and Scripts.
Click in the Files panel first. See File Operations.
| Keys | Action |
|---|---|
| Cmd+C, Cmd+X, Cmd+V | Copy, cut and paste the selected files and folders |
| Cmd+D | Duplicate |
| F2 or Shift+F6 | Rename |
| Cmd+Backspace or Delete | Move to Trash (asks first) |
| Shift+Up and Shift+Down | Select more rows |
| Esc | Forget a pending cut |
| Action | Result |
|---|---|
| Mouse back and forward buttons | Go Back and Go Forward |
| Ctrl or Cmd + scroll, or pinch, over code | Change the editor font size (turn it on in Settings, Editor) |
| Option+Shift-click in an editor | Add a cursor |
| Option-drag in an editor | Select a rectangle of text (column selection) |
| Click a blame note or gutter block | Open that commit in the Log |
| Option-click a blame note or gutter block | Copy the commit hash |
| Cmd-click a link in the Markdown Rich Editor | Open it |
| Double-click a file in Changes | Stage or unstage it (a conflicted file opens in the merge tool) |
| Double-click a commit in the Log | Open it in a tab |
| Double-click a changed file of a commit | Open the commit in a tab on that file |
| Double-click a branch or tag | Check it out |
| Double-click a file in the Files panel | Open it in a tab that stays open |
| Cmd-click or Shift-click in the Files panel | Select several rows |
| Drag rows in the Files panel | Move them into a folder; hold Option to copy |
| Double-click a tab | Keep a preview tab open |
| Middle-click a tab | Close the tab |
| Double-click a sidebar or panel edge | Reset its size |
| Double-click the line between diff sides | Split the diff 50/50 again |
| Double-click the Settings title | Center the Settings dialog |
On Windows (and the planned Linux build) Cmd is Ctrl and Option is Alt. A few keys differ, because there Ctrl keys belong to the shell or the editor:
- Tabs switch with Ctrl+PageDown and Ctrl+PageUp.
- A terminal copies and pastes with Ctrl+Shift+C and Ctrl+Shift+V.
- The Git menu keys (Cmd+K, Cmd+T, Cmd+9, Option+Cmd+A) are left out.
Settings and About move to the File and Help menus.
These pages are generated from docs/wiki. To correct something, open a pull request against the source file; edits made here are overwritten.
Using Nibtree
- Getting Started
- Welcome Screen
- Workspaces
- Files Panel
- File Operations
- File Icons
- Rounded Panels
- Editor and Tabs
- Pin Reorder and Wrap Tabs
- Single Tab Title
- Split Editor
- New File and Unsaved Changes
- Unload Hidden Tabs
- Editing Code
- Code Appearance
- Markdown Editor
- Image and PDF Preview
- Search Everywhere
- Recent Files
- Navigation Bar
- Find and Replace
- Changes and Commits
- Sign In Prompts
- Commit Box Layout
- Repository Actions
- Commit Options
- Ignoring Files
- Diffs
- Inline Diffs
- Staging View
- Revert a Change
- Resolving Conflicts
- Merge Tool
- Blame
- History and Log
- Merge Commits
- Branches and Tags
- Branches Popup
- Remotes
- Stashes
- Shelf
- Git Menu
- Git Dialogs
- Interactive Rebase
- Worktrees
- AI Agents
- AI Tasks
- AI Usage
- Keep Computer Awake
- Submodules
- Git LFS
- GitHub
- Git Console
- Terminal
- Terminal Features
- Scripts
- Navigation
- Menus
- Settings
- Settings Search
- Color Themes
- Settings Terminal and Automation
- Settings Files
- Updates
- Status Bar and Help
- Notifications
- Memory Use
- Clear Cache
- MCP and CLI
- Git Mergetool
- Keyboard Shortcuts
- Keyboard Shortcuts Editor
- Troubleshooting
- Troubleshooting Git
Developers
- Developer Guide
- Architecture
- Project Layout
- Backend
- How Folder Watching Works
- Folder Watching Bugs We Fixed
- How Workspace Files Work
- How the Preview Scheme Works
- Backend Services
- How Terminal Features Work
- Terminal Bugs We Fixed
- Frontend
- How the Rich Markdown Editor Works
- Rich Markdown Bugs We Fixed
- Git Menu Links
- Menu Keys and Routing
- Frontend Modules
- Blame Bugs We Fixed
- Project Color And Title Bar
- One Diff View
- Diff Bugs We Fixed
- Merge Tool Layouts
- Merge Tool Bugs We Fixed
- Color Theme Bugs We Fixed
- How the Connected Diff Works
- Rounded Panels Bugs We Fixed
- Update Bugs We Fixed
- Status Bar Bugs We Fixed
- MCP and CLI Bugs We Fixed
- Repository Actions Bugs We Fixed
- How the Changes Tab Works
- CodeMirror Patterns
- How the Cursor Works
- How Editor Features Work
- How the Path Bar Works
- Commands and Events
- Settings Reference
- Commands Workspace and Changes
- Commands Branches and Remotes
- Commands History and Extras
- Commands App and Tools
- Testing
- Test Suites
- Debugging
- Debugging with MCP
- Measuring Setting Memory
- How Terminal Memory Is Measured
- How Markdown Diagrams Work
- Releases and CI
- Publishing the Wiki
- Versioning and Changelog
- Browser Version Packages
- Browser Release Checks
- Docker Image
- Platforms and Signing
- Windows Support
- Windows Bugs We Fixed
- Windows MCP and CLI
- Docs and Screenshots
- UI Library
- UI Library MCP
- UI Library Bugs
- UI Library Migration
- Contributing
How features work
- Welcome screen
- Workspaces and folders
- Files panel
- File operations
- File icons
- Editor and tabs
- Pin, reorder and wrap tabs
- Single tab title
- Split editor
- New File and unsaved changes
- Unload hidden tabs
- Editing code
- Code appearance
- Markdown editor
- Image and PDF preview
- Search Everywhere
- Recent Files
- Navigation Bar
- Find and replace
- Changes and commits
- Sign-in prompts
- Commit box layout
- Repository actions
- Commit options
- Ignoring files
- Diffs
- Inline diffs
- Staging view
- Revert a change
- Resolving conflicts
- Merge tool
- Blame
- History and log
- Merge commits
- Commit tabs
- Branches and tags
- Branches popup
- Remotes
- Stashes
- Shelf
- Git menu
- Git dialogs
- Interactive rebase
- Worktrees
- AI agents
- AI usage
- Keep computer awake
- AI tasks
- Submodules
- Git LFS
- GitHub account
- Git Console
- Back and Forward
- Integrated terminal
- Scripts tool window
- Menu bar
- Settings
- Search in Settings
- Color themes
- Rounded panels
- Updates and release channels
- Status bar and help links
- Notifications
- Memory readout and memory log
- Clear Cache
- MCP server and command line tool
- git mergetool mode