Voici une version simplifiée, pour MacVim, utilisant les exemples d'articles de Wikia (cf. lien du commentaire 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
J'utilise uniquement la variante de sélection de bloc, car tout ce qu'il faut, c'est Shift-V pour sélectionner la ligne actuelle, et éventuellement le curseur haut / bas pour sélectionner d'autres lignes.
Selon les raccourcis ci-dessus, appuyez sur Cmd-Shift-Up / Down pour déplacer la sélection de bloc vers le haut / bas. "D" est la clé de commande dans MacVim, pour Windows, essayez "C" (Contrôle) ou "A" (Alt) (par exemple. <CAf> serait Contrôle Alt f).
L'article de Wikia ajoute "= gv" à ceux-ci, ce qui a pour effet d'ajuster l'indentation du bloc après le déplacement, en fonction du texte environnant. C'est déroutant, je l'ai donc supprimé et j'ai ajouté des raccourcis pour indenter rapidement la sélection à la place.
" Indent selection left/right (Cmd Shift Left/Right is used for Tab switching)
:vmap <D-A-Left> <gv
:vmap <D-A-Right> >gv
Attention, la même chose peut être faite avec << et >> mais la sélection serait perdue, donc ces raccourcis ci-dessus permettent de mettre plusieurs fois en retrait et de déplacer le bloc car la sélection est maintenue.
Mon MacVim est configuré pour changer d'onglet avec Cmd-Maj-Gauche / Droite, j'ai donc utilisé Cmd-Alt-Gauche / Droite.
Voici le changement d'onglet pour MacVim (mis en .gvimrc avec le reste ci-dessus):
:macm Window.Select\ Previous\ Tab key=<D-S-Left>
:macm Window.Select\ Next\ Tab key=<D-S-Right>