8

任何人都知道 vim 中轻松交换两行代码的任何技巧吗?我知道交换相邻的行是微不足道的,但是假设我想将第 23 行与第 52 行交换。这可以实现吗?

4

4 回答 4

18

是的!

:23m52|51m22 

然后按Enter

编写一个函数来完成它也很容易。

于 2013-03-08T14:37:50.180 回答
7

我的LineJuggler 插件具有正常和可视模式映射]E,并且[E(和其他,类似于流行的未损坏插件)将当前行/选择与[count]下面/上面的行交换。

我认为:[range]Swap {range}命令也会有所帮助;我正在努力。

编辑:这里是:LineJugglerCommands 插件

于 2013-03-08T16:00:45.297 回答
2

如果您在粘贴时有视觉选择,它会在粘贴后将选择放入默认缓冲区。所以你会做23Gdd51GVp23GP

于 2013-03-08T14:38:38.560 回答
2

用户move命令移动行。例如,交换第 23 行和第 52 行:

:23m52 | 52m23

键入:help move以获取帮助用法move,它可能会移动一系列行:-)

于 2013-03-08T14:42:04.103 回答