Ось спрощена версія для MacVim, використовуючи приклади статті Wikia (див. Посилання з коментаря гармати ).
" 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" - це командна клавіша в 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.
Ось переключення Tab для MacVim (поставити .gvimrc з рештою вище):
:macm Window.Select\ Previous\ Tab key=<D-S-Left>
:macm Window.Select\ Next\ Tab key=<D-S-Right>