You want to use:
vmap <tab> >gv
In this not-quite-Vim mode, a vmap'ed key briefly puts you in normal mode before returning you to insert mode. The
<c-o> part of your map was performing the normal mode version of that command (jump list navigation).
I understand, it's against Vim way, but I'm trying to configure Vim for non-IT person, and therefore it will be used with -y flag, i.e. any modes except "insert" will not be available.
I totally sympathize with you if you're trying to make it possible for a non-technical person to edit text in a terminal. In this regard, all I can offer you is years of my own experience with this particular scenario: just tell them to use
nano. If you want them to learn Vim, let them learn Vim. Don't hinder them from the very beginning by making it "not Vim". At least with
nano, things are actually simple, not an illusion of simplicity.
Vim is a modal editor by design and it's very difficult to get it to act like a reliable modeless editor. The
-y option seems like a nice compromise for people who aren't used to Vim, but I can't imagine it being a good way to teach the benefits of modal editing.
To clarify for anyone that's confused:
-y flag will cause Vim to always be in insert mode like a modeless editor, which is why "insert mode" is mentioned. Mouse selection or shift+arrows puts the buffer in visual mode. Pressing keys that aren't in a vmap in visual mode clears the selected text, replaces it with the keys that were pressed, and returns to insert mode.