keyboard-only document switching


I would like to see better support in Scrivener for switching the current document with keyboard-only (no-mouse).

There are currently some keyboard shortcuts for finding, of which especially useful is the ‘Find Synopsis’ feature (Cmd-Ctrl-G). Still, the process of actually switching between two documents without having to reach for the mouse is incredibly cumbersome if not downright impossible as of the current 2.5 version of Scrivener.

Let me take a simple example: suppose I’m currently editing full-screen ‘first scene’ and want to switch to ‘second scene’. A reasonable scenario would be pressing the ‘Find Synopsis’ shortcut, Cmd-Ctrl-G, then typing ‘second’ and choosing from the drop-down list the ‘second scene’. This is incredibly difficult to do in Scrivener: after typing ‘second’, simply pressing the down arrow as one would expect so that you can choose from the dropdown list — does not work. What you need to do is press the Tab key instead, which is a bit annoying and counter-intuitive as the down arrow has no other employment in that case and would only come naturally. Besides, after you get into the drop down list by pressing tab, and you do choose the right document that you want to switch to, surprise! By simply pressing ‘Enter’, in order to select it into the current editor, as you might be enclined to if you have used computers in the last decade, what actually happens is that you get to edit the synopsis, which is not all that useful actually. If you just want to switch, that is, to load into the editor that document, well, you just can’t — not without reaching for the mouse.

And, if you click with the mouse on the item, if open the quick-reference, which is a separate window for editing the same text, feature which, cool as it may be, I still have to find a use case for.

Now, to follow the document-switching scenario. The (hard) solution I found was that once I manage to select the document in the Find synopsys dialog box, I press Cmd-Alt-R (reveal in binder). Then you see the item selected in the binder, but it is still surprisingly not loaded in the editor. And here, to my knowledge, you have no other choice than having to reach for the mouse or the trackpad, so that that the item really opens in the editor. But, taking care, NOT to press on the text part of the item in the binder but rather on the small icon nearby, because otherwise you will end up editing the title of the item, not open it in the editor. You actually need to click on the tiny icon.

(As a parenthesis, hitting enter on an item in the binder makes you edit the title instead of (as one would expect) opening it in the editor? That is not good, unless you believe in Finder.)

So it’s really a cumbersome succession of three-key shortcuts (Ctrl-Cmd-G, Tab, Cmd-Alt-R, and mouse on the tiny icon, then possibly Cmd-Alt-F again to go full screen) for what is a really simple use case, which is switching buffers.

You may consider taking a look at how Eclipse (the IDE) which solves this problem very simply. You press Ctrl-E to choose among open documents; or Cmd-Shift-T allows you to do a search among all the classes in the projects (the equivalent of documents in Scrivener). In all cases, once the drop-down list is built using search results, simply hitting enter on on of the items simply does the dear thing — opens the item in the editor as expected.

And please assign Alt-Left/Right Arrows to Go back/forward like browsers do so, after you switch to a new document you can just go back with a known keyboard shortcut. Also using simpler shortcuts instead of those finger-twirling Cmd-Ctrl-G and Cmd-Opt-R would be great. Like developers IDEs, Scrivener is for people that have a good relationship with the keyboard so having simple and effective keyboard shortcuts is not optional, to my sense.

These annoyances put apart, congratulations for the good editor that Scrivener is.

Cmd-[ and Cmd-] navigate back and forth through navigation history; Opt-Cmd-Up and Down arrows navigate up and down through the items in the binder. Does that help?

All the best,

On my French keyboard, Cmd-[ becomes Cmd-Alt-Shift-5 ; forth would be Cmd-Alt-Shift-) . So unfortunately it’s not really helpful; Mac shortcuts plus French layout really suck. Not everything Mac is good (I’m really thinking about shortcut conventions) and definitely not everything French.

But navigation through search becomes more ubiquitous each day. That is, finding apps or documents by searching rather than pointing.

Mac OS X comes with pervasive keyboard shortcut customisation. If you don’t like how a shortcut works on any program, you needn’t live with it:

Assigning or Changing Keyboard Shortcuts in Scrivener for Mac

Meanwhile, Opt-Arrows are used for full node collapse/expand. That’s a pretty standard convention, along with Opt-clicking on disclosure arrows, among outliners—including Finder. Since Scrivener is an outliner and not a web browser, it doesn’t make sense to copy a web browser convention over an outliner convention. Cmd-[ and ] are used by all browsers for history navigation, too, so it’s not like this is unorthodox either.

But that’s all just an explanation for why things are the way they are out of the box. The important thing here is that you needn’t be restrained by developer shortcut choices on a Mac.

Ok, thanks for those details on keyboard customization. Still, even in the perfect shortcut-choice world, I would insist that the point on which Scrivener is less than perfect is switching the current buffer using the keyboard only. It’s about finding a document inside the current project and switching to it by a relatively simple combination of keys, which is quite difficult in Scrivener, as I illustrated.

It’s really a killer feature as for most writers it is easier to remember they have a fragment containing a specific word rather than visually inspect the binder with all the scrolling and micro-pointing involved. It’s also the reasons most OSs come these days with indexing capabilities or apps, like Spotlight, Quicksilver, Launchy, Gnome Do. Given enough small fragments, with a search tool like Quicksilver for example, it may prove easier to have a folder full of small text files than use Scrivener at all.

Overgeneralisations aside (sometimes I can’t remember at all what something’s called or what useful keywords it will have, but I have a good idea whereabouts in the binder it is or know I’ve given it a distinctive icon or label), there are other ways to do what you’re describing. What about a regular Project Search instead of the Synopsis Search? Ctrl-Opt-F to focus the search bar, Ctrl-Opt-Cmd-B to focus the binder, arrow keys to navigate through the list–you can also press the first letter of the document you’re after and jump to the first instance, or refine the search term before you switch to the binder to reduce the size of the list. If you find either of the shortcuts onerous, you can easily change them as Ioa described.

After you’ve gotten what you wanted from the search results, you can use Cmd-Opt-R to return to the regular binder with the document still selected.

Provided your editor isn’t locked, navigating through the binder in either method described will load the document in the editor, so no other key is needed for that. There are, however, shortcuts for Documents > Open > in Left Editor and in Right Editor. If you do use a mouse, you should be able to single click anywhere on the item name or icon to open it in the editor. Double-clicking on the title will switch to renaming it, as you noted.

Indeed, regular find, Ctrl-Alt-F followed by Tab, some navigation and Ctrl-Tab to switch focus to the text area does it. No mouse. Of course, if you are in full screen mode you first need to escape to regular interface and after you find what you’re looking for, to switch back, Cmd-Opt-F, to full screen.

The UI sequence of all this could be simpler, a classical drop down with just the search results to choose from would be so very cool.

One more detail: items in Thrash are listed in search results next to regular items. You can’t really make the difference visually. If you’re not careful, you might end up editing a old version or something you threw away.

You can choose to exclude Trash items from the project search via the drop-down menu in the search field.

Assigning keywords with the keyboard is also unintuitive and difficult to do. The Cmd-Shift-K bring a nice popup with existing keywords but there is no way to simply select one or more of them and assign them to the curent document. Yet, tag the current document seems like a pretty straightforward use case. If you press Enter on one of the items in the dialog box it edits the name of the keyword, again, why? If you press space nothing happens. It looks more like a dialog for editing the project’s keywords.

The Cmd-Alt-J view that you can see on the side needs lots of pointing too. No way you can simply assign keywords by a simple sequence of keyboard. Again, it’s such a simple usecase. I want to tag the document, Scrivener supports keywords, but it’s really unusable. Unless you believe in pointing and scrolling for everything.

It looks like Scrivener is not really thought of as a program where you can do stuff with the keyboard. The idea of organizing short documents in a tree is really welcome – difficult to do in the text processor I used – together with the fullscreen and color customization, that really made me look into it. But the shortcuts that I find myself for current navigation and for other things end up being very complex, unintuitive, and it makes Scrivener a frustrating experience.

I rarely assign keywords with the mouse. The Ctrl-Opt-Cmd combinations for accessing specific Inspector panes have a dual usage. The first will open (if necessary) and switch to the pane. If the pane is already visible, then the second usage of the shortcut will move the keyboard focus to the most useful area of the UI—in this case within the keywords list. So in practice that is often just a double-tap of the J key. From here you can use the arrow and delete key to select and remove keywords, and hit Enter to add new ones. With auto-completion, you often don’t even need to type in much to get the assignment you were looking for.

Thanks for the reply. On my Scrivener 2.5 / mac I cannot seem to be able to add a new keyword. I press Ctl-Opt-Cmd J, two times just to make sure. Then, if the current document already has assigned keywords, indeed I can go through them, edit or delete; but if I press Enter I cannot seem to be able to add a new one, I just get the system sound that you get when the action is not available… What could it be?

Sorry, my error, I meant the Return key (I’ve been working in Windows documentation all day)—Enter toggles edit mode for the currently selected item, and will system beep if nothing is selected.

What IS the ‘return’ key? As opposed to Enter?

The Mac has two different keys with a large area of overlap, Enter and Return. The latter is always near the main typing area, whereas Enter is always by the numpad (and if there isn’t one, it is usually an Fn alternate of the Return key, whether printed on the physical keyboard or not). Enter tends to submit forms even in cases where Return would insert a carriage return. So on a Mac, the Enter key is special in that it usually overrides any local text entry limits and submits—but if in a context where that distinction is irrelevant, such as in a plain text editor field, it overlaps with Return and performs the same function as it.

Ok, I see the distinction. Unfortunately it still doesn’t work, fn or not. I have an Apple wireless keyboard, the model without numpad. I press Ctrl-Opt-Cmd J twice, then I can press Enter or fn-Enter all I want, I tried all combinations I could think of, I can’t add the new keyword, I get the system sound associated with no action.
Actually, If I understand correctly (, on these keyboards it’s the Return key that is present and the Enter which isn’t and needs to be simulated by pressing fn. Oh my.
I tried with another windows Logitech keyboard with a numpad that I had around, still no luck.

Hmm, check in the Navigation preferences pane, do you have “Creates new item in list, outline and corkboard views” enabled, under the “Return Key” section in the middle of that pane?

It wasn’t checked. Thanks!