Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I spend a very large amount of time editing text in Xcode, and I would like maneuvering around text within the rest of the Cocoa Text System to offer an identical experience. There are 3 versions of cursor keyboard shortcuts that I use regularly in Xcode (only showing forward, non-selection-altering versions for brevity):

  1. +Move cursor 1 subword forward (^camelCase -> camel^Case -> camelCase^)
  2. ⌥ Option+ Move cursor 1 word forward
  3. ⌘ Command+ Move cursor to the end of the line

The OS X default keybindings respect 2 and 3, but there is a disparity with 1. Outside of Xcode, + behaves like ⌘ Command+. It's not applicable terribly often, but every time + takes me to the end of a line in Mail or something, it's like a little firecracker goes off in my brain. It's just annoying enought that I'm willing to invest in any hackery to "fix" the behavior once and for all.

To avoid covering old ground, I'm already aware of this little tidbit, and this list of selectors, but I'm not aware of any API in the Cocoa Text System for subword selection. Maybe there's undocumented API in there somewhere?

I don't always attempt to make camelCase selections outside of Xcode with keyboard shortcuts, but when I do I want OS X to obey.

share|improve this question
On my mac ⌃→ switches spaces by default, and it does not behave like ⌘→ –  CousinCocaine Jun 11 at 14:31
This assumes you've disabled that shortcut in System Preferences. –  Matt Wilding Jun 14 at 0:26
Nope. On OS X (Mavericks) the default behaviour of ⌃→ is switches spaces. osxdaily.com/2011/09/06/… –  CousinCocaine Jun 14 at 7:40
Want it too. I think there is can be an external tool like Yandex' PuntoSwitcher to manipulate input cursor in any text box. –  Grawl Aug 18 at 12:49

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.