Вот упрощенная версия для MacVim, использующая примеры из статьи Wikia (см. Ссылку из комментария 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
Я использую только вариант выбора блока, потому что все, что требуется, это Shift-V, чтобы выбрать текущую строку, и, при необходимости, курсор вверх / вниз, чтобы выбрать еще несколько строк.
В соответствии с указаниями выше, нажатие Cmd-Shift-Up / Down сместит выбор блока вверх / вниз. «D» - это клавиша «Command» в MacVim, для Windows попробуйте «C» (Control) или «A» (Alt) (например, <CAf> будет Control Alt f).
Статья Wikia добавляет к ним «= gv», что позволяет настроить отступ блока после перемещения на основе окружающего текста. Это сбивает с толку, поэтому я удалил его и добавил вместо него ярлыки для быстрого отступа выделения.
" Indent selection left/right (Cmd Shift Left/Right is used for Tab switching)
:vmap <D-A-Left> <gv
:vmap <D-A-Right> >gv
Имейте в виду, то же самое можно сделать с << и >>, но выбор будет потерян, поэтому вышеупомянутые ярлыки позволяют многократно отступать и по-прежнему перемещать блок, потому что выбор поддерживается.
Мой MacVim настроен для переключения вкладок с помощью Cmd-Shift-Left / Right, поэтому я использовал Cmd-Alt-Left / Right.
Вот переключение вкладок для MacVim (поместите в .gvimrc вместе с остальными выше):
:macm Window.Select\ Previous\ Tab key=<D-S-Left>
:macm Window.Select\ Next\ Tab key=<D-S-Right>