[vim] swap case in visual block


This patch allows '~' to swap case of the highlighted text in the visual block selection. I also tried to update the final cursor positions in some cases.