[vim] visual block basic

This is a basic patch to demostrate visual block mode implementation.
Then call `ranges.reverse()` separately. Compressing code like this only makes things more confusing and bug prone.