在VIM中剪切或抽出整个标签

iam*_*sam 7 html vim frontend

给出一个常见的html位

<div>
  <p>
    Mary had a <b>little</b> lamb.
  </p>
</div>
Run Code Online (Sandbox Code Playgroud)

我想在其他地方剪掉整个(不是内在的)div.我知道有其他方法可以像切割一系列线条那样做,但作为VIM的新用户,我非常需要在我的前端工作流程中移动标签,我还没有看到很好的方法来做到这一点.

Tom*_*ann 18

将您的cusor放在外部div标签上: dat

d elete a round t ag

然后将其粘贴p到您需要的位置.


rom*_*inl 5

使用attext-object作用于整个标记,使用ittext-object作用于标记的内容.

要对当前文本对象执行操作,您的命令应如下所示:

operator + text-object
Run Code Online (Sandbox Code Playgroud)

您可以count在文本对象之前添加a 以对count周围文本对象的级别执行操作:

operator + count + text-object
Run Code Online (Sandbox Code Playgroud)

因此,将光标放在第1行和第5行,您可以使用以下命令来拉动整个<div>:

yat
Run Code Online (Sandbox Code Playgroud)

光标在第2,3或4行,命令变为:

y2at
Run Code Online (Sandbox Code Playgroud)

将光标放在其中<b>,命令变为:

y3at
Run Code Online (Sandbox Code Playgroud)

也就是说,我建议您使用视觉模式而不是计数:它更直观,更安全,可能更快.只需重复文本对象即可扩展您的选择范围:

vatat
Run Code Online (Sandbox Code Playgroud)

然后:

y
Run Code Online (Sandbox Code Playgroud)

:help motion.txt.