Ecco una versione semplificata, per MacVim, usando gli esempi di articoli di Wikia (vedi link dal commento di Gun ).
" Move selection up/down (add =gv to reindent after move)
:vmap <D-S-Up> :m-2<CR>gv
:vmap <D-S-Down> :m'>+<CR>gv
Sto usando solo la variante di selezione del blocco, perché tutto ciò che serve è Maiusc-V per selezionare la linea corrente e, facoltativamente, il cursore su / giù per selezionare altre linee.
Secondo le scorciatoie sopra, premendo Cmd-Shift-Up / Down si sposta la selezione del blocco su / giù. "D" è il tasto Comando in MacVim, per Windows provare "C" (Control) o "A" (Alt) (es. <CAf> sarebbe Control Alt f).
L'articolo Wikia aggiunge "= gv" a questi, che ha l'effetto di regolare il rientro del blocco dopo lo spostamento, in base al testo circostante. Questo è confuso, quindi l'ho rimosso e ho aggiunto scorciatoie per rientrare rapidamente nella selezione.
" Indent selection left/right (Cmd Shift Left/Right is used for Tab switching)
:vmap <D-A-Left> <gv
:vmap <D-A-Right> >gv
Mente, lo stesso può essere fatto con << e >> ma la selezione andrebbe persa, quindi queste scorciatoie sopra consentono di rientrare più volte e spostare ancora il blocco perché la selezione viene mantenuta.
Il mio MacVim è configurato per cambiare scheda con Cmd-Maiusc-Sinistra / Destra, quindi ho usato Cmd-Alt-Sinistra / Destra.
Ecco la commutazione Tab per MacVim (inserisci .gvimrc con il resto sopra):
:macm Window.Select\ Previous\ Tab key=<D-S-Left>
:macm Window.Select\ Next\ Tab key=<D-S-Right>