Revue
DocumentationKeyboard shortcuts

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, LinuxmacOSWhat it does
Ctrl+KCmd+KOpen the search palette: pull requests (title, branch, number, ticket), repositories, or paste a pull request link
Ctrl+L, Ctrl+OCmd+L, Cmd+OThe same palette
Ctrl+R or F5Cmd+R or F5Refresh what's on screen (the open tab, or the list you're on)
Ctrl+H or Ctrl+BCmd+H or Cmd+BGo to Pull requests (the list)
Ctrl+GCmd+GGo to Repositories: branches, history and diffs without a pull request
Ctrl+JCmd+JGo to Projects (Jira projects and their repositories; only with Jira connected)
Ctrl+TabCtrl+TabNext open tab
Ctrl+Shift+TabCtrl+Shift+TabPrevious open tab
Ctrl+WCmd+WClose 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
F11F11 (or Fn+F11 if macOS takes it for Show Desktop)Focus mode on / off (see Themes, fonts, focus mode and languages)
Ctrl+Shift+TCmd+Shift+TSwitch between light and dark
Ctrl+= (or Ctrl++)Cmd+= (or Cmd++)Bigger text
Ctrl+-Cmd+-Smaller text
Ctrl+0Cmd+0Default text size
Ctrl+/Cmd+/The Keyboard shortcuts list
Ctrl+QCmd+QQuit Revue
EscEscCancel 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.

KeysWhat it does
j or ↓Select the next row
k or ↑Select the previous row
Enter or oOpen the selected pull request (repository, project)
fStar 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
EscIn 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.

KeysSomeone else's pull requestYour own pull request
1FilesFeedback
2ConversationFiles
3CommitsConversation
4FeedbackCommits
5CodeCode
6ChecksChecks
7Slack threads (with Slack connected), else PR stackthe same
8PR 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#

KeysWhat it does
j / kNext / previous file
n / pNext / 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
vMark the current file viewed (and go to the next one), or not viewed
zCollapse all files
Shift+ZExpand all files
Shift+VCollapse 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, LinuxmacOSWhat it does
↑ / ↓the sameScroll up / down
← / →the sameScroll sideways
Page Up / Page Downthe sameScroll a screen
Home / Endthe sameTop / bottom of the diff
Shift+↑ / Shift+↓the sameSelect lines from the clicked one up / down (then c to comment on them)
Ctrl+CCmd+CCopy the selected code
Ctrl+ACmd+ASelect all

Which changes you see#

KeysWhat it does
aShow all changes
rOnly the changes since your last review
lOnly the changes since your last visit
, / .Step to an older / newer commit
wHide / show whitespace-only changes

Layout#

KeysWhat it does
sSplit or unified diff
fReview one file at a time, or all files in one scroll (remembered per pull request)
tShow / hide the threads panel
Alt+T (Option+T on macOS)The threads panel in a separate window, or back (desktop only)
Shift+WThe Conversation, Feedback or Code tab on screen in a separate window, or back (desktop only)
bShow / hide the changed-files sidebar
- / + (or =)In focus mode: narrower / wider code

Comments and the review#

KeysWhat it does
cComment 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
oOpen the pull request in the browser
eOpen 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)
mThe Merge pull request dialog: how it stands, and merging it
EscCancel: clear a line selection, close the open search, close a comment box
?The Keyboard shortcuts list

Search and files#

Windows, LinuxmacOSWhat it does
Ctrl+FCmd+FFind: in the diff (Files tab), in the conversation (Conversation tab) or in the open file (Code tab)
Enter / Shift+Enterthe sameIn the find bar: next / previous match
Escthe sameClose the find bar
Ctrl+PCmd+PGo to file: in the Files tab, among the changed files; elsewhere, any file of the repository (in the Code tab)
Ctrl+Shift+FCmd+Shift+FFind in Files: search the pull request's changed files or the whole repository

The PR stack tab#

KeysWhat it does
↑ / ↓Select the pull request above / below in the stack
EnterOpen 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.

KeysWhat it does
1 … 5Tabs: Commits, Graph, Branches, Pull requests, Code
j / k (or ↓ / ↑)Next / previous commit or branch
n / pNext / previous change in the diff
Ctrl+↓ / Ctrl+↑The same (also Ctrl+Alt+Shift+↓ / ↑)
sSplit or unified diff
bShow / hide the changed-files sidebar
oOpen the repository in the browser
/Jump to the tab's filter (commits, branches or pull requests)
EscLeave 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, LinuxmacOSWhat it does
Ctrl+PCmd+PGo to file
Ctrl+FCmd+FFind in the open file
F12 or Ctrl+clickF12 or Cmd+clickGo to definition (on an import's path: open that file). On a definition, Ctrl/Cmd+click lists its references
Shift+F12Shift+F12Find references
Alt+← / Alt+→Option+← / Option+→Back / forward through your jumps (also the mouse's back / forward buttons)
Alt+FOption+FShow the open file in the tree, and give the tree the keyboard
↑ / ↓, Enterthe sameIn the tree (after Alt+F): move, open
Ctrl+↓ / Ctrl+↑the sameNext / previous change in the open file (also with the cursor in the code)
Ctrl+Shift+FCmd+Shift+FFind 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.

KeysWhat it does
↑ / ↓Previous / next match
EnterOpen the selected match in the view underneath (double-click does the same)
Alt+CMatch case on / off
Alt+WWords (whole words only) on / off
Alt+XRegex on / off
EscClose 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:

KeysWhat it does
↑ / ↓Previous / next result
Ctrl+P / Ctrl+NThe same, Emacs style (Ctrl on macOS too)
EnterOpen the selected result
EscClose

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, LinuxmacOSWhat it does
Ctrl+EnterCmd+EnterSend the comment (in the Open pull request form: submit the form)
EscEscCancel
Ctrl+BCmd+BBold the selection
Ctrl+ICmd+IItalic
Ctrl+ECmd+ECode
Tab / Shift+Tabthe sameInside 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.

KeysWhat it does
↑ / ↓Move through the suggestions
Enter or TabInsert the highlighted one
EscClose 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 '. So 10:30 and :) 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, LinuxmacOSWhat it does
Ctrl+Z / Ctrl+YCmd+Z / Cmd+Shift+ZUndo / redo
Ctrl+C, X, VCmd+C, X, VCopy, cut, paste (paste an image to upload it, where the service allows)
Ctrl+ACmd+ASelect 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+DeleteOption+Backspace / Option+DeleteDelete a word back / forward
Home / EndCmd+← / Cmd+→Start / end of the line
Ctrl+Home / Ctrl+EndCmd+↑ / 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, LinuxmacOSWhat it does
Ctrl+] / Ctrl+[Cmd+] / Cmd+[Indent / outdent the line
Shift+Home / Shift+Endthe same, or Cmd+Shift+← / →, or Ctrl+Shift+A / ESelect to the start / end of the line
Ctrl+Shift+Home / EndCmd+Shift+↑ / ↓Select to the start / end of the text
—Ctrl+A / Ctrl+EStart / end of the line
—Cmd+Backspace / Cmd+DeleteDelete 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+DCmd+DSelect 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+HCmd+Shift+FReplace, in an editable editor with a search bar
—Ctrl+Cmd+SpaceThe 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:

KeysWhat it does
j or ↓Next section of the sidebar
k or ↑Previous section

Dialogs and confirmations#

KeysWhat it does
EnterConfirm a dialog
EscCancel 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#

MouseWhereWhat it does
Shift+click a lineDiffSelect the lines from the last line you clicked to this one, to comment on them
Shift+click a commitCommits tab, commit picker, repository CommitsSelect a range of commits
Double-click a commitCommit pickerPick it and show it at once
Double-click one of your commentsFiles tabStart editing it, when Settings → Behavior → Comments has it on
Ctrl+click (Cmd+click on macOS)Code tabGo to definition, or from a definition list its references
Right-click a lineDiff, Code tabMenu of what to do with the line
Middle-click a tabTab bar, Code tab's file tabsClose it
Middle-click in the contentAnywhereAutoscroll, 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 buttonsAnywhereBack / forward, like Alt+← / →
Drag a tabTab barReorder it; drop it outside the window to give it a window of its own
Drop or paste an imageComment boxUpload 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.