How to prevent shift selection from expanding

keybindingstext inputtext;

On Yosemite in current Chrome (and random other places, but let's try to just solve it in Chrome), if i selection some text (say the "sk differ" in "ask different"), then hold shift and press right arrow, it will expand the selection to include the next character to the right (selection becomes "sk differe"). If i then press left arrow, i'd like the selection to (again) become "sk differ". Instead, in some apps (at least Chrome), it becomes "ask differe". So it seems that it will only expand the selection, so pressing either arrow key only grows the corresponding end of the selection.

How can i make it so that it selects from a caret position that is at either end of the selection (NOT both)?

Best Answer

I have to agree with the comment that it is working as you state you want it to work, at least for me in Chrome 41.0.2272.64 beta on OS X 10.10.2.

That said - there are two ways of creating selections in OS X, from a programmer's point of view: anchored and unanchored. (There is also a third that seems to be employed by Apple applications, mentioned in the Betalogue article as a "smart unanchored" selection.) The way you describe it currently working for you would be an unanchored selection, whereas your desired behavior is an anchored selection. You can read more on the difference and programming implications on Daring Fireball (from 2006) and a slightly more recent 2009 article on Betalogue.

More specifically to your question, it is up to the developer of the program you are using to determine how it operates in that program. I don't have Chrome v40 to test it on but the commenter did and states it works as I am seeing it work in v41 beta. What version of Chrome are you using?


I wrote the below before I realized what you were actually stating is occurring. Hopefully it is useful for somebody else, so I am leaving it here.

The difference is how you created the selection.

If you select text by dragging the cursor from left-to-right, Shift plus arrow keys will expand or shrink the selection on the right edge of the selection. Conversely, if you select by dragging right-to-left, the keyboard shortcut will affect the selection starting from the left edge.

I've confirmed this to be the case in both an Apple-created app (Dictionary) and Chrome 41.0.2272.64 beta.