【问题标题】:How to copy a specific line in vim from current position?如何从当前位置复制vim中的特定行?
【发布时间】:2014-04-01 09:46:13
【问题描述】:

如何从当前位置复制 vim 中的特定行,而不移动到该特定行? 假设,在下面的代码中,如果我的光标在第 1 行。 891,我想复制一行,说行号。 899. 如果不实际移动到第 899 行,按 yy 并返回到 891,我该怎么做?

885 int __pm_runtime_idle(struct device *dev, int rpmflags)
886 {
887         unsigned long flags;
888         int retval;
889 
890         might_sleep_if(!(rpmflags & RPM_ASYNC) && !dev->power.irq_safe);
891 
892         if (rpmflags & RPM_GET_PUT) {
893                 if (!atomic_dec_and_test(&dev->power.usage_count))
894                         return 0;
895         }
896 
897         spin_lock_irqsave(&dev->power.lock, flags);
898         retval = rpm_idle(dev, rpmflags);
899         spin_unlock_irqrestore(&dev->power.lock, flags);
900 
901         return retval;
902 }

【问题讨论】:

  • 8jyy8k 太多了吗?
  • 要使用它,我应该计算要下降的行数。是不是太过分了?
  • 是的,也许。跳到行号听起来也不太令人兴奋。 <Esc>:899yi 不是很容易输入。无论如何,我的 vim 中不显示行号,所以对我来说更糟,但对你来说可能没问题。

标签: vim editor vi


【解决方案1】:

这个简短的 cmd 会帮助你

:899t.

它将复制第 899 行并粘贴到您的光标行下。

无需接触" 寄存器。

【讨论】:

    【解决方案2】:

    使用 yank 命令:

    :899y
    

    这会将第 899 行复制到未命名的寄存器。

    【讨论】:

      【解决方案3】:

      一般

      拉扯,

      :line#y
      

      复制粘贴到下一行

      :line#t.
      

      删除

      :line#d
      

      以上所有内容也可以应用于一行行..

      从第 10 行拉到第 20 行

      :10,20y
      

      【讨论】:

        【解决方案4】:

        我的LineJuggler plugin 有一个 fetch 映射,它适用于相对寻址,这比输入完整的行号(如其他答案)更快(尤其是:set relativenumber)更容易。

        您的特定示例是8[f(从当前行下方的 8 行中获取)。

        【讨论】:

          猜你喜欢
          • 2011-12-07
          • 1970-01-01
          • 2015-11-05
          • 1970-01-01
          • 2011-06-05
          • 2022-11-02
          • 2019-12-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多