Oto uproszczona wersja dla MacVim, wykorzystująca przykłady artykułów z Wikii (por. Link z komentarza 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
Używam tylko wariantu wyboru bloku, ponieważ wystarczy Shift-V, aby wybrać bieżącą linię, i opcjonalnie kursor w górę / w dół, aby wybrać więcej linii.
Zgodnie z powyższymi skrótami naciśnięcie Cmd-Shift-Up / Down spowoduje przesunięcie wyboru bloku w górę / w dół. „D” to klawisz Command w MacVimie, w systemie Windows spróbuj „C” (Control) lub „A” (Alt) (np. <CAf> to Control Alt f).
Artykuł Wikii dodaje do nich „= gv”, co powoduje dostosowanie wcięcia bloku po ruchu na podstawie otaczającego tekstu. Jest to mylące, więc usunąłem go i dodałem skróty do szybkiego wcięcia zaznaczenia.
" Indent selection left/right (Cmd Shift Left/Right is used for Tab switching)
:vmap <D-A-Left> <gv
:vmap <D-A-Right> >gv
Uwaga, to samo można zrobić z << i >>, ale wybór zostałby utracony, więc powyższe skróty pozwalają na wielokrotne wcięcie i nadal przesuwają blok, ponieważ wybór jest zachowany.
Mój MacVim jest skonfigurowany do przełączania Tab z Cmd-Shift-Left / Right, więc użyłem Cmd-Alt-Left / Right.
Oto przełączanie Tab dla MacVim (wstaw .gvimrc z resztą powyżej):
:macm Window.Select\ Previous\ Tab key=<D-S-Left>
:macm Window.Select\ Next\ Tab key=<D-S-Right>