【问题标题】:I would like to MOVE just one line我只想移动一行
【发布时间】:2021-11-22 03:38:52
【问题描述】:

yy 和 p 应该复制并粘贴 1 行文本。 但是我得回去把原来的那行删掉。

:2,5m10 应该将第 2 行到第 5 行移到第 10 行。但是我需要启用 :set number 看看我在移动什么线

我只想移动 1 行文本,有点像 yy+p 并且不使用 :2,3m10 只移动一行。

有类似 mm+p 的东西吗? 所以它将当前行复制到缓冲区并删除该行,然后将其粘贴到您想要的位置?

:3m 。将第 3 行移至当前行。

上面是我想要的功能。我可以设置一个键映射吗 “mm”替换“:3m”。 ?我觉得打字更容易。 TIA

【问题讨论】:

    标签: line move vi


    【解决方案1】:

    您所描述的是使用 dd 时的默认行为 - 它删除了一个 将行插入缓冲区,p 将粘贴它。

    所以ddp 有效。

    如果你是 vim 的新手,那么 'yanking' (用 y) 和 'deleting' (d) 都复制到缓冲区,给定 'cut', 'copy' 和大多数其他编辑的“粘贴”行为。

    您可以通过:help change.txt,尤其是:help registers了解更多信息。

    还有,既然你说要开启:set number,不知你来了没 穿过:set relative number?这非常有用 - 在下面的示例中, 如果您的光标在与 “演示”:

    3 This is just
    2 a small
    1 example to 
    0 demonstrate 
    1 how relative 
    2 numbers can 
    3 be useful
    

    因此,如果您想将行“小”移动到带有“数字”的行下方 可以',您可以使用相对行号来知道2k 会将 光标在你想要的行上,你会点击dd,然后你就会有这个 情况(删除的行现在在缓冲区中:

    1 This is just
    0 example to 
    1 demonstrate 
    2 how relative 
    3 numbers can 
    4 be useful
    

    然后您可以通过3j 移动到“数字可以”行,然后点击p。所以 相对数字是快速移动到您可以看到的线条的好方法。还, 只是为了完整起见,您可以在 命令行::-2m+3(虽然我知道这不是你想要的)。你可以 甚至同时设置相对数和设置数,在这种情况下 就像上面的例子一样,只有你有绝对行号 显示在当前行而不是零。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-16
      • 2014-07-16
      • 1970-01-01
      相关资源
      最近更新 更多