Keyboard shortcuts
Every key and mouse shortcut in Revue, grouped by where it works.
Revue is built to be driven from the keyboard: you can go through a whole review, from the list to the last file, without touching the mouse. You don't have to learn this page by heart. Two things in the app show you the keys:
- Hold Alt (Cmd on macOS) for a moment: every button and tab on screen that has a shortcut gets a small badge with its key. Let go and they disappear.
- Press Ctrl+/ (Cmd+/ on macOS), or click Hold Alt for shortcuts at the right end of the status bar, for the Keyboard shortcuts list. In a pull request, ? opens it too.
How to read this page#
- Ctrl in the Windows, Linux column becomes Cmd on macOS when the macOS column says so. Keys written only once (like Ctrl+Tab) are the same on every system, macOS included.
- Single-letter keys (j, n, v …) work only while you're not typing. As soon as a text field, a search box or a comment box has the cursor, the letters go into the text. Press Esc to leave the field and the shortcuts work again.
- Keys that use Ctrl, Cmd or a function key work while typing too, unless the table says otherwise.
Everywhere#
These work in any view of the main window.
| Windows, Linux | macOS | What it does |
|---|---|---|
| Ctrl+K | Cmd+K | Open the search palette: pull requests (title, branch, number, ticket), repositories, or paste a pull request link |
| Ctrl+L, Ctrl+O | Cmd+L, Cmd+O | The same palette |
| Ctrl+R or F5 | Cmd+R or F5 | Refresh what's on screen (the open tab, or the list you're on) |
| Ctrl+H or Ctrl+B | Cmd+H or Cmd+B | Go to Pull requests (the list) |
| Ctrl+G | Cmd+G | Go to Repositories: branches, history and diffs without a pull request |
| Ctrl+J | Cmd+J | Go to Projects (Jira projects and their repositories; only with Jira connected) |
| Ctrl+Tab | Ctrl+Tab | Next open tab |
| Ctrl+Shift+Tab | Ctrl+Shift+Tab | Previous open tab |
| Ctrl+W | Cmd+W | Close the tab on screen |
| Alt+← / Alt+→ | Option+← / Option+→ | Back / forward through the places you've been (in the Code tab: through its jumps first) |
| Ctrl+, | Cmd+, | Open Settings |
| F11 | F11 (or Fn+F11 if macOS takes it for Show Desktop) | Focus mode on / off (see Themes, fonts, focus mode and languages) |
| Ctrl+Shift+T | Cmd+Shift+T | Switch between light and dark |
| Ctrl+= (or Ctrl++) | Cmd+= (or Cmd++) | Bigger text |
| Ctrl+- | Cmd+- | Smaller text |
| Ctrl+0 | Cmd+0 | Default text size |
| Ctrl+/ | Cmd+/ | The Keyboard shortcuts list |
| Ctrl+Q | Cmd+Q | Quit Revue |
| Esc | Esc | Cancel or clear what's open; with nothing left to cancel, leave focus mode |
Advanced: details of the global keys
- Tab order. Ctrl+Tab goes through the open tabs (What's new, pull requests, repositories, tickets, Settings), never the Pull requests or Repositories pages. Settings → Behavior → Tab switching picks the order: Visual order (left to right as in the tab bar, wrapping around; the default) or Last used (back to the previous tab; press Tab again while still holding Ctrl to go further back).
- Closing tabs. Ctrl+W closes the Settings or What's new tab, a ticket, a repository or a pull request, whichever is on screen. A pinned tab (right-click a tab for Pin tab / Unpin tab) isn't closed: Revue says Pinned tab: unpin it to close it.
- Light and dark. Ctrl+Shift+T switches to the opposite of what's on screen. If the theme was set to As the system, it stops following the system.
- Text size steps through the sizes Settings → Appearance → Text offers for the interface: 80, 90, 100, 110, 125 and 150 %. The code's own size isn't changed by these keys.
- Back and forward on Windows and Linux work even while a text field has the cursor. On macOS, inside a text field Option+← / → move the cursor by a word instead (except in the Code tab, where they walk your jumps).
- Ctrl+J does nothing until a Jira site is connected.
The pull request list#
On the Pull requests page. The same keys work on the Repositories and Projects pages, for their rows.
| Keys | What it does |
|---|---|
| j or ↓ | Select the next row |
| k or ↑ | Select the previous row |
| Enter or o | Open the selected pull request (repository, project) |
| f | Star or unstar the selected row (starred ones come first) |
| Alt+↑ / Alt+↓ | Move a starred row up / down among the starred ones |
| / | Jump to the search field |
| Ctrl+F (Cmd+F on macOS) | Jump to the search field, also while typing elsewhere |
| Esc | In the search field: leave it. In the list: clear the search |
See The pull request list, tabs and search for the list itself.
A pull request#
These work in an open pull request, whichever of its tabs is on screen, while you're not typing.
Tabs#
The number keys pick the pull request's tabs by their position, left to right.
| Keys | Someone else's pull request | Your own pull request |
|---|---|---|
| 1 | Files | Feedback |
| 2 | Conversation | Files |
| 3 | Commits | Conversation |
| 4 | Feedback | Commits |
| 5 | Code | Code |
| 6 | Checks | Checks |
| 7 | Slack threads (with Slack connected), else PR stack | the same |
| 8 | PR stack (with Slack connected) | the same |
The PR stack tab only shows when the pull request is part of a stack (see Stacked pull requests), and Slack threads only with Slack connected (see Slack).
Moving through the diff#
| Keys | What it does |
|---|---|
| j / k | Next / previous file |
| n / p | Next / previous change (switches to the Files tab) |
| Ctrl+↓ / Ctrl+↑ | Next / previous change, like JetBrains IDEs |
| Ctrl+Alt+Shift+↓ / ↑ | The same (handy on macOS, where Ctrl+↑ / ↓ may be taken by Mission Control) |
| ] / [ | Next / previous unresolved thread |
| v | Mark the current file viewed (and go to the next one), or not viewed |
| z | Collapse all files |
| Shift+Z | Expand all files |
| Shift+V | Collapse viewed files, expand the rest |
At the last change, n says Last change: again to go to the first; pressing it again wraps around to the first one.
Inside the diff#
Once you've clicked into the diff's code, it takes these keys:
| Windows, Linux | macOS | What it does |
|---|---|---|
| ↑ / ↓ | the same | Scroll up / down |
| ← / → | the same | Scroll sideways |
| Page Up / Page Down | the same | Scroll a screen |
| Home / End | the same | Top / bottom of the diff |
| Shift+↑ / Shift+↓ | the same | Select lines from the clicked one up / down (then c to comment on them) |
| Ctrl+C | Cmd+C | Copy the selected code |
| Ctrl+A | Cmd+A | Select all |
Which changes you see#
| Keys | What it does |
|---|---|
| a | Show all changes |
| r | Only the changes since your last review |
| l | Only the changes since your last visit |
| , / . | Step to an older / newer commit |
| w | Hide / show whitespace-only changes |
Layout#
| Keys | What it does |
|---|---|
| s | Split or unified diff |
| f | Review one file at a time, or all files in one scroll (remembered per pull request) |
| t | Show / hide the threads panel |
| Alt+T (Option+T on macOS) | The threads panel in a separate window, or back (desktop only) |
| Shift+W | The Conversation, Feedback or Code tab on screen in a separate window, or back (desktop only) |
| b | Show / hide the changed-files sidebar |
| - / + (or =) | In focus mode: narrower / wider code |
Comments and the review#
| Keys | What it does |
|---|---|
| c | Comment on the selected lines (with nothing selected: on the line at the top of the view) |
| Ctrl+Enter (Cmd+Enter on macOS) | Open the review submit dialog; in a comment box, send the comment |
| o | Open the pull request in the browser |
| e | Open your code editor at the selected line (else the line you last clicked, else the top line on screen); in the Code tab, at the cursor (desktop only) |
| m | The Merge pull request dialog: how it stands, and merging it |
| Esc | Cancel: clear a line selection, close the open search, close a comment box |
| ? | The Keyboard shortcuts list |
Search and files#
| Windows, Linux | macOS | What it does |
|---|---|---|
| Ctrl+F | Cmd+F | Find: in the diff (Files tab), in the conversation (Conversation tab) or in the open file (Code tab) |
| Enter / Shift+Enter | the same | In the find bar: next / previous match |
| Esc | the same | Close the find bar |
| Ctrl+P | Cmd+P | Go to file: in the Files tab, among the changed files; elsewhere, any file of the repository (in the Code tab) |
| Ctrl+Shift+F | Cmd+Shift+F | Find in Files: search the pull request's changed files or the whole repository |
The PR stack tab#
| Keys | What it does |
|---|---|
| ↑ / ↓ | Select the pull request above / below in the stack |
| Enter | Open the selected pull request |
Advanced: when these keys don't fire
- All single-key shortcuts in a pull request are off while any text field in it has the cursor: a comment box, a reply, the find bar, a filter. Ctrl/Cmd combinations still work.
- Ctrl+↓ / ↑ follow the same rule in the Files tab; in the Code tab they work even with the cursor in the code (see The Code tab).
- Changes in files Revue holds back as ignored (see Reviewing the diff) are skipped by n / p; folded files are passed over.
- t and b in focus mode bring a sidebar back for this visit only; outside focus mode b is remembered for every pull request.
- - and + do nothing outside focus mode.
- Esc works in steps: a selected line range is cleared first, then an open search closes, then (in focus mode) focus mode ends.
A repository#
In a repository tab (opened from Repositories, Ctrl+G), while you're not typing.
| Keys | What it does |
|---|---|
| 1 … 5 | Tabs: Commits, Graph, Branches, Pull requests, Code |
| j / k (or ↓ / ↑) | Next / previous commit or branch |
| n / p | Next / previous change in the diff |
| Ctrl+↓ / Ctrl+↑ | The same (also Ctrl+Alt+Shift+↓ / ↑) |
| s | Split or unified diff |
| b | Show / hide the changed-files sidebar |
| o | Open the repository in the browser |
| / | Jump to the tab's filter (commits, branches or pull requests) |
| Esc | Leave the filter; in the view, clear the tab's filter |
| Ctrl+F (Cmd+F) | Code tab: find in the open file |
| Ctrl+P (Cmd+P) | Go to file (opens the Code tab) |
| Ctrl+Shift+F (Cmd+Shift+F) | Find in Files over the repository |
With the mouse: Shift+click a second commit to see the range of commits between them; double-click a branch to switch to it; double-click a commit in Graph to open it in Commits. See Repositories and branches.
The Code tab#
In a pull request's or repository's Code tab. See Browsing code.
| Windows, Linux | macOS | What it does |
|---|---|---|
| Ctrl+P | Cmd+P | Go to file |
| Ctrl+F | Cmd+F | Find in the open file |
| F12 or Ctrl+click | F12 or Cmd+click | Go to definition (on an import's path: open that file). On a definition, Ctrl/Cmd+click lists its references |
| Shift+F12 | Shift+F12 | Find references |
| Alt+← / Alt+→ | Option+← / Option+→ | Back / forward through your jumps (also the mouse's back / forward buttons) |
| Alt+F | Option+F | Show the open file in the tree, and give the tree the keyboard |
| ↑ / ↓, Enter | the same | In the tree (after Alt+F): move, open |
| Ctrl+↓ / Ctrl+↑ | the same | Next / previous change in the open file (also with the cursor in the code) |
| Ctrl+Shift+F | Cmd+Shift+F | Find in Files |
Right-click in the code for Go to Definition, Find References, Show in Files (the PR's diff) (on a line the pull request changed), Copy and Select All.
With the mouse: a click on a file in the tree opens it in place of the last file you didn't keep; a double-click keeps it open as a tab. Middle-click a file tab to close it.
Find in Files#
The Find in Files dialog (Ctrl+Shift+F, Cmd+Shift+F on macOS). The arrows and Enter work while you type in its fields.
| Keys | What it does |
|---|---|
| ↑ / ↓ | Previous / next match |
| Enter | Open the selected match in the view underneath (double-click does the same) |
| Alt+C | Match case on / off |
| Alt+W | Words (whole words only) on / off |
| Alt+X | Regex on / off |
| Esc | Close the dialog |
The same list, with the same keys, shows the results of Find References and of a definition found in several places.
The search palette and Go to file#
The palette (Ctrl+K) and the Go to file picker (Ctrl+P) share their keys:
| Keys | What it does |
|---|---|
| ↑ / ↓ | Previous / next result |
| Ctrl+P / Ctrl+N | The same, Emacs style (Ctrl on macOS too) |
| Enter | Open the selected result |
| Esc | Close |
Type Focus mode in the palette to find the focus mode command, and What's new (or Changelog) for what changed in each version of Revue (see Updates).
Comment boxes and text editors#
In any comment, reply, review or description box (the Markdown editor):
| Windows, Linux | macOS | What it does |
|---|---|---|
| Ctrl+Enter | Cmd+Enter | Send the comment (in the Open pull request form: submit the form) |
| Esc | Esc | Cancel |
| Ctrl+B | Cmd+B | Bold the selection |
| Ctrl+I | Cmd+I | Italic |
| Ctrl+E | Cmd+E | Code |
| Tab / Shift+Tab | the same | Inside a fenced code block: indent / outdent the line, or every selected line |
Emoji and channel suggestions#
Type : and at least two letters of an emoji's name (:thu) and a list of matching emoji pops up under the cursor. In a box that posts to Slack, the list holds the workspace's emoji too; type # and a letter to get Slack channels.
| Keys | What it does |
|---|---|
| ↑ / ↓ | Move through the suggestions |
| Enter or Tab | Insert the highlighted one |
| Esc | Close the list (it stays closed for that word) |
Advanced: when the emoji list appears
- The : has to start a word: after a space, at the start of the text, or after
(,[,{,"or'. So10:30and:)never ask. - Nothing pops up while text is selected, or in the Preview tab.
Ordinary text editing#
Text fields and editors use the usual keys of your system:
| Windows, Linux | macOS | What it does |
|---|---|---|
| Ctrl+Z / Ctrl+Y | Cmd+Z / Cmd+Shift+Z | Undo / redo |
| Ctrl+C, X, V | Cmd+C, X, V | Copy, cut, paste (paste an image to upload it, where the service allows) |
| Ctrl+A | Cmd+A | Select all |
| Ctrl+← / → | Option+← / → | Move by word (add Shift to select) |
| Ctrl+Alt+← / → | Ctrl+Option+← / → | Move by the parts of a word: camelCase stops before C, HTTPServer before S, snake_case at the _ (add Shift to select) |
| Ctrl+Backspace / Ctrl+Delete | Option+Backspace / Option+Delete | Delete a word back / forward |
| Home / End | Cmd+← / Cmd+→ | Start / end of the line |
| Ctrl+Home / Ctrl+End | Cmd+↑ / Cmd+↓ | Start / end of the text |
Moving and selecting by word, and by the parts of a word, take other keys in Settings → Keyboard shortcuts (under Comments and editor), like any shortcut there.
All text editing keys
| Windows, Linux | macOS | What it does |
|---|---|---|
| Ctrl+] / Ctrl+[ | Cmd+] / Cmd+[ | Indent / outdent the line |
| Shift+Home / Shift+End | the same, or Cmd+Shift+← / →, or Ctrl+Shift+A / E | Select to the start / end of the line |
| Ctrl+Shift+Home / End | Cmd+Shift+↑ / ↓ | Select to the start / end of the text |
| — | Ctrl+A / Ctrl+E | Start / end of the line |
| — | Cmd+Backspace / Cmd+Delete | Delete to the start / end of the line |
| Linux: Shift+Alt+↑ / ↓; Windows: Ctrl+Alt+↑ / ↓ | Cmd+Option+↑ / ↓ | Add a cursor above / below (in the code editor) |
| Ctrl+D | Cmd+D | Select the next occurrence of the selection, as another selection (the word at the cursor first); typing then changes every one. Also Select Next Occurrence in the right-click menu (in the composer and the code editor) |
| Ctrl+. | Cmd+. | Code actions, in an editor that has them |
| Ctrl+H | Cmd+Shift+F | Replace, in an editable editor with a search bar |
| — | Ctrl+Cmd+Space | The character viewer (emoji and symbols) |
A shortcut that a text field uses itself wins while that field has the cursor: for example Ctrl+B makes text bold in a comment box instead of going to the list.
Settings#
On the Settings tab, while you're not typing:
| Keys | What it does |
|---|---|
| j or ↓ | Next section of the sidebar |
| k or ↑ | Previous section |
Dialogs and confirmations#
| Keys | What it does |
|---|---|
| Enter | Confirm a dialog |
| Esc | Cancel it |
Small confirmations pop up as a bubble from the button you clicked (for example before deleting something). In a bubble:
- Enter or Space press the focused button. For something destructive the focus starts on Cancel, so an accidental Enter does nothing harmful.
- Tab or the arrow keys move to the other button.
- Esc, or a click anywhere outside, cancels.
The mouse#
| Mouse | Where | What it does |
|---|---|---|
| Shift+click a line | Diff | Select the lines from the last line you clicked to this one, to comment on them |
| Shift+click a commit | Commits tab, commit picker, repository Commits | Select a range of commits |
| Double-click a commit | Commit picker | Pick it and show it at once |
| Double-click one of your comments | Files tab | Start editing it, when Settings → Behavior → Comments has it on |
| Ctrl+click (Cmd+click on macOS) | Code tab | Go to definition, or from a definition list its references |
| Right-click a line | Diff, Code tab | Menu of what to do with the line |
| Middle-click a tab | Tab bar, Code tab's file tabs | Close it |
| Middle-click in the content | Anywhere | Autoscroll, like a browser: the view scrolls towards the pointer, faster the further you move it. A quick click keeps it on until the next click or Esc; holding the button scrolls until you let go |
| Back / forward mouse buttons | Anywhere | Back / forward, like Alt+← / → |
| Drag a tab | Tab bar | Reorder it; drop it outside the window to give it a window of its own |
| Drop or paste an image | Comment box | Upload it into the comment, where the service allows uploads |
Shortcut badges#
Hold Alt alone (on macOS Cmd, because Option types characters there) for a short moment. Each button and tab on screen that has a shortcut shows its keys in a badge at its corner. Nothing on the screen moves.
The badges disappear as soon as you let go, press another key, click, or leave the window. The short wait before they appear keeps them from flashing when you press Alt+← and the like.
Advanced: how badges are placed
- A badge sits at its control's corner when there's room, else beside it with a thin line to it, never on top of another badge and always inside the window.
- When badges are crowded or moved away from their control, each gets its own colour (the badge's border, its line and a ring around the control), so you can tell which belongs to which.
- Tabs show their number badge at the top-left corner, because the top-right holds their counts.
- On macOS the labels use the system's symbols: ⌘ for Cmd, ⌥ for Option, ⌃ for Ctrl, ⇧ for Shift.