在任何 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>