I mostly use Vim (or MacVim) to edit text, but occasionally (such as in writing this question), I use the Mac OS text editing keybindings built in to all text entry fields accessed through a Mac.
I find these binding extremely intuitive for writing text (whereas Vim bindings are better focused on editing text.)
Specifically, for those unfamiliar with a Mac:
Option-left moves left a word.
Option-right moves right a word.
Command-left moves to the soft wrapped beginning of the line (akin to g0 in Vim).
Command-right moves to the soft-wrapped end of the line, after the space (since soft-wrapped lines are broken between words in Mac text boxes).
Option or Command delete will delete to the beginning of the word or soft-wrapped line, respectively. Adding the Fn key as well means deleting to the end of the word or soft-wrapped line. (The delete key on the Mac is what PCs call backspace; Fn-delete on a Mac means to delete forward one character.)
Option up and down work on actual lines, irrespective of the soft-wrapping positions, and additionally move to the start or end of the line moved to, respectively. In other words they align to k0 and j$ in Vim. In usual text documents this is considered moving to the start or end of a paragraph.
Command up goes to the beginning of the entire text document, and Command down goes to the very end of the entire text document.
Shift can be combined with any of these motions to highlight text.
How can I emulate these behaviors in Vim, for insert mode only?
(Note: While writing this question I discovered that in Vim, the shift key modifies left or right arrow key presses the way that the option key does in Mac text fields.)
Note: MacVim specific answers are okay, but I do use Vim in the terminal a lot as well. (More than I use MacVim, in fact.)