Aquí hay una versión simplificada, para MacVim, usando los ejemplos del artículo de Wikia (véase el enlace del comentario de 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
Estoy usando solo la variante de selección de bloque, porque todo lo que se necesita es Shift-V para seleccionar la línea actual, y opcionalmente el cursor hacia arriba / abajo para seleccionar algunas líneas más.
De acuerdo con los atajos anteriores, presionar Cmd-Shift-Up / Down desplazará la selección de bloque hacia arriba / abajo. "D" es la tecla Comando en MacVim, para Windows intente con "C" (Control) o "A" (Alt) (por ejemplo, <CAf> sería Control Alt f).
El artículo de Wikia agrega "= gv" a estos, lo que tiene el efecto de ajustar la sangría del bloque después del movimiento, según el texto circundante. Esto es confuso, así que lo eliminé y agregué accesos directos para sangrar rápidamente la selección.
" Indent selection left/right (Cmd Shift Left/Right is used for Tab switching)
:vmap <D-A-Left> <gv
:vmap <D-A-Right> >gv
Tenga en cuenta que lo mismo se puede hacer con << y >>, pero la selección se perdería, por lo que estos accesos directos anteriores permiten sangrar varias veces y aún mover el bloque porque la selección se mantiene.
Mi MacVim está configurado para cambiar las pestañas con Cmd-Shift-Izquierda / Derecha, así que usé Cmd-Alt-Izquierda / Derecha.
Aquí está el cambio de Tab para MacVim (poner en .gvimrc con el resto de arriba):
:macm Window.Select\ Previous\ Tab key=<D-S-Left>
:macm Window.Select\ Next\ Tab key=<D-S-Right>