如何在不使用鼠标的情况下在gVim中突出显示多行?

时间:2012-10-21 19:38:57

标签: vim

Vim noob在这里。我试图选择多行代码来复制和粘贴到其他区域。有没有办法在不使用鼠标的情况下执行此操作?

3 个答案:

答案 0 :(得分:4)

其他一些根本不使用视觉模式的方法:

使用标记

  1. ma

  2. 的某处留下标记
  3. 移动到其他地方

  4. 使用y'a

  5. 从这里到那里

    使用搜索动作

    1. 在您要抓取的部分的末尾本地化一些唯一标记

    2. 使用y/foo<cr>(正向搜索)或y?bar<cr>(向后搜索)

    3. 从这里到那里

      使用文字对象

      1. 确定哪个文本对象会映射到您想要的东西:

        • 内/外字,iw / aw

        • 内/外对,i'"([{< / a'"([{<

        • 内/外html标记,it / at

        • 句子,s

        • 段落,p

        • “阻止”,]

        • ...

      2. 使用yip

      3. 将文本对象拉出来

        使用其他动作

        • 猛拉到功能结束:y]}

        • 猛然到文件末尾:yG

        所有上述具有可视模式的解决方案

        • V'ay

        • V/foo<cr>y

        • V?bar<cr>y

        • Vipy

        • V]}y

        • VGy


        :h motion.txt希望能够像对待我一样打击你的思想。

答案 1 :(得分:2)

您可以将光标放在要复制的第一行,然后键入nyy,其中n是您要复制的行数。例如,键入2yy以复制光标下的两行。

然后,您可以使用p粘贴它们。

您还可以通过将光标放在某处并按住Shift键来选择多行。将光标移动到所需选择的末尾,然后停止按Shift键。然后使用y(而非yy)进行复制,并粘贴p

答案 2 :(得分:1)

是的,在正常模式下输入V[direction],您将突出显示多行。如果您不想要整行,请使用v代替V。要复制它,请点击y并移至要粘贴的区域,然后点击p。要删除它,而不是y使用x

或者,您只需使用[number of lines]yy来抽取一些行或[number of lines]dd来剪切一些行。在这种情况下,粘贴是一样的。