在notepad++中,我可以使用Ctrl + Shift + Up / Down来上下移动当前行。在Vim中有类似的命令吗?我翻遍了无数的指南,但一无所获。
如果没有,我如何将动作绑定到该键组合?
编辑:Mykola的答案适用于所有行,除了缓冲区的开头和结尾。向上移动第一行或向下移动一行会删除该行,当向上移动一行时,它最初会跳跃两个空格,就像棋子一样!谁能提供一些改进吗?
在notepad++中,我可以使用Ctrl + Shift + Up / Down来上下移动当前行。在Vim中有类似的命令吗?我翻遍了无数的指南,但一无所获。
如果没有,我如何将动作绑定到该键组合?
编辑:Mykola的答案适用于所有行,除了缓冲区的开头和结尾。向上移动第一行或向下移动一行会删除该行,当向上移动一行时,它最初会跳跃两个空格,就像棋子一样!谁能提供一些改进吗?
当前回答
正是你在这些插件中寻找的:
https://github.com/vim-scripts/upAndDown https://github.com/matze/vim-move
其他回答
正是你在这些插件中寻找的:
https://github.com/vim-scripts/upAndDown https://github.com/matze/vim-move
当你在vim中点击命令:help move时,结果如下:
(范围):m[爱]{地址 } *: m * *:莫* *:* * E134 *移动 移动[range]给出的线到线的下方 由{address}给出。
例:移动当前行一行=>:m+1。
例:将数字为100的线移到数字为80的线下面=>:100 m 80。
例:将数字为100的线移到数字为200的线下面=>:100 m 200。
例如:将数字在[100,120]以内的行移动到数字为200 =>:100,120 m 200的行下面。
如果我想与上面的一行交换一行,我通常会这样做
ddkP
解释
Dd将删除该行并将其添加到默认寄存器中。 K向上移动一行(j向下移动一行) P会粘贴到当前行的上方
在命令模式下,将光标定位在要向下移动的行上,然后
ddp
解释: Dd将当前行删除到常规缓冲区 p将它放回游标位置之后,如果是整行,则放回下一行。
在许多文档中,关于命令p和p有一些混淆。 实际上p粘贴AFTER游标,p粘贴AT游标。
向上移动一行:ddkP
向下移动一行:ddp