将当前行(向上/向下)移动到Vim中的一个位置

时间:2014-04-11 11:17:53

标签: vim editor vi

有时我想在vim中将当前行与行或更低的行交换。我可以使用命令:m+1:m-1来执行此操作。但它太罗嗦了。是否有更短的方式做同样的事情?

3 个答案:

答案 0 :(得分:4)

尝试一下:

ddpddkP

如果它给出了你想要的东西。 ;)

答案 1 :(得分:3)

蒂姆·波普的unimpaired.vim - Pairs of handy bracket mappings和我自己的LineJuggler plugin都提供了(其中包括;我的插件专注于线条移动和副本,而蒂姆有一些有用的东西)[e]e映射以移动当前行/选择上方或下方。这些不会破坏默认寄存器,如ddp等。会做的。

答案 2 :(得分:1)

给映射一个机会:

nnoremap <leader>k :move-2<CR>==
nnoremap <leader>j :move+<CR>==
xnoremap <leader>k :move-2<CR>gv=gv
xnoremap <leader>j :move'>+<CR>gv=gv