Vim Tips Wiki
Advertisement
Tip 223 Printable Monobook Previous Next

created March 11, 2002 · complexity basic · author scott urban · version 5.7


Suppose you want to reverse some text - I don't know why you would want to - maybe you're dyslexic. Anyway, I had a need, so this mapping will reverse visually selected text. Put the mapping in your vimrc or otherwise source it, then visually select the word or words, and hit ;rv - really only works with selections on one line:

vnoremap ;rv c<C-O>:set revins<cr><C-R>"<esc>:set norevins<cr>

Comments

Interesting idea, but it will only work for those whose Vim has the +rightleft option. For those who don't have such a Vim, use "ma" to (mark a) and move the cursor to the last line to be affected, and:

" \fr: reverse the order of lines (vertical mirror)
nmap \fr :set lz<CR>o<Esc>mz'aO<Esc>ma:'a+1,'z-1g/^/m 'a<CR>'addma'zdd:set nolz<CR>

" \fR: mirror image the lines (horizontal mirror)
nmap \fR :set lz<CR>o<Esc>mzkO<Esc>maj:s/./&\r/g<CR>:'a+1,'z-1g/^/m 'a<CR>:'a+1,'z-1j!<CR>'add'zddk:set nolz<CR>

I use it in my work to reverse the order of 1000 groups of parameters which improves the program performance. Thanks.

Advertisement