It took me a while to figure out what was going on, but here’s the problem. I want to highlight a few characters, so I type ⇧→ to expand a selection. HOWEVER, ⇧ is just above the function key (fn), and fn→ takes me to the next document in Scrivenings mode. Fumbling the wrong key is a constant annoyance. Is there any way to avoid this?
Other than finger training, I can’t think of anything easy as both of those are part of the system default key mapping. That leads to the not so easy way, and that is to modify your keymappings—not for the lighthearded!
In fact it’s odd that Fn→ does what you describe. The normal behaviour for that would be End, bringing you to the very bottom of the editor without moving the cursor. That’s what is going to happen in most applications at any rate.
- Going to the bottom of the editor would be no improvement, and
- The current behavior is not odd at all. Here’s an excerpt from an Apple post:
"The action performed by standard function keys varies depending on the app you’re using, or depending on the keyboard shortcuts listed in the Keyboard & Mouse pane of System Preferences:
By default, pressing one of these keys performs the special feature indicated by the icon printed on the key. For example, pressing the keys with speaker icons adjusts the volume.
If you want to use one of these keys as a standard function key, hold the Fn key (usually in the lower-left corner of the keyboard) while pressing the function key. For example, pressing Fn-F10 (speaker icon) performs the function assigned to the F10 key instead of toggling mute on or off.
If you prefer the top row of keys to always behave as standard function keys without holding the Fn key:
Choose System Preferences from the Apple menu.
Click the Keyboard tab if it’s not already highlighted.
Select “Use all F1, F2, etc. keys as standard function keys”
I rarely want the “special” features, so I made that change in System Preferences.
By “odd” behaviour, I mean that if there are no changes made to keyboard shortcuts or the lower level keybindings, then holding down the Fn key and tapping the right arrow button will invoke the keycode command (at an internal hardware level I believe) for “End”. If you don’t believe me, load up the Keyboard Viewer and hold down the Fn key. The “▸” symbol will be replaced by a downward pointing arrow with a flat line below it—which is one of the Mac symbols for “End” (the other symbol you sometimes see is a diagonal arrow pointing right-down). Fn← changes to an upward pointing arrow with a flat line above it, which is the Mac symbol for Home (and the Up/Down arrow keys will transform into PgUp/PgDn functions with Fn).
Whether you find all of the above to be more or less useful is entirely beside the point—that’s how the Mac works—and we’d not dare to change that for any reason.
So to reiterate: if Fn→ invokes the Navigate ▸ Go To ▸ Next Document command for you, that is not only not a default for Scrivener (the default is ⌥⌘↓, it’s something that you would have had to have gone well out of your way to modify. System Preferences won’t let you bind End, meaning you may have used a power tool like BetterTouchTool or Keyboard Maestro.
As to the rest, I don’t really understand the relevance of the F1 – 12 keys to what we’re discussing here. Of course Apple is correct, the function keys (as in the numbered F keys) can be defined by software, but more often than not they are left unbound and available for use by the user in custom shortcut settings.
Huh. Now it seems to go to Scrivenings END as you suggest, though I would have sworn it did something else, before. But again, that’s no improvement.
Maybe I need one of those 3rd party apps you mention, since I’ll never EVER want the behavior I’m getting.
I also get your point that reversing the behavior of Fn probably doesn’t change the behavor of Fn->.
With BetterTouchTool you can capture End (and Home for that matter) at a global level and leave it doing nothing with “No Action”. I’m not sure what implications that would have in various programs, but one thing about BTT is that you can have something do one thing globally and then for one specific program have it do another—so you could bind it back to the “End (End of Page)” function as an exception, if need be.
Thanks, BTT works great so far!
It only SEEMED to work. The problem still randomly rears its ugly head.
You should have something like the following in your Keyboard BTT settings for Scrivener (or Global):
I’ve also gotten a lot of use out of Better Touch Tool. I have lots of arrow key remaps going on with it, and it almost always works for me.
But sometimes it has this problem: if I bring up Scrivener and start navigating around (which uses my custom key layout) right away, it sometimes doesn’t quite type my keys in order until it’s done it a few times (I suspect it has to load something into memory and it does so on demand, which means a delay the first time).
I haven’t tried mapping a key to nothing, but I wonder if this is the same symptom going on for you.
Maybe it is. Thanks!