在任何 Vim 模式下快速上下移動整行
October 13, 2020
我在 vim 裡經常搬動程式行,所以建立了一些 mapping 讓這件事更輕鬆。
這些 mapping 對應 ⌘-j 往下移、⌘-k 往上移。在 normal、insert 和 visual 模式都能用。
vim
nnoremap <D-j> :m .+1<CR>==
nnoremap <D-k> :m .-2<CR>==
inoremap <D-j> <Esc>:m .+1<CR>==gi
inoremap <D-k> <Esc>:m .-2<CR>==gi
vnoremap <D-j> :m '>+1<CR>gv=gv
vnoremap <D-k> :m '<-2<CR>gv=gv
我用的是 MacVim,所以使用 D(⌘) 作為 modifier 鍵。若要在終端機版的 vim 中使用,請改用其他 modifier,例如 <A-j>