This is for those of you who do not edit in virtualedit mode but would occasionally want to move the cursor up/down virtually to get the cursor to a character column quickly. Keep in mind, the mappings below is basically a switch to virtualedit mode, followed by a cursor move up/down and a switch back to non-virtualedit mode, with a couple of minor details.

Here is an example of the effect:

Let's say you have your cursor (the pipe character) between 'a' and 'b' in the first line. Also assume the second line ends at the character 'z'.

aaaaa|bbb
zz

Moving the cursor down virtually would have the cursor 5 characters from the beginning of the second line, automatically inserting 3 spaces between the new cursor location and character 'z'. The colon indicates the previous cursor location.