在Vim中真正选择HTML标签

时间:2014-05-08 09:48:14

标签: html vim

在HTML文档中说我有这个:

<p>
  fdhjfkdj hfkjdfhkjdfhkjdh dfhdkf kjdh kjdhkjdhk 
  fhkdj hdjfhjkdh kjdh kjdf jkdhf d
  jfdfhkdjfhkjdf 
  fjdj fhkd fdhfkjd hfkjdfhkjdf kdhfd 
  fdhjkfjk dhjdfhkjdf kjdfhdk fhdk 
</p>

如果我在vim中执行正常的vit命令,那么如果我把它拉出来就会选择里面的文字,如果我尝试执行任何操作,例如tab over或run gq它会影响整个<p>。例如,执行vit然后gq最终会看起来像

    <p> fdhjfkdj hfkjdfhkjdfhkjdh dfhdkf kjdh kjdhkjdhk  lkd sldj lks jlkdf
jlsdkf jlsdf jdl dlsjl fhkdj hdjfhjkdh kjdh kjdf jkdhf d jfdfhkdjfhkjdf fjdj
fhkd fdhfkjd hfkjdfhkjdf kdhfd fdhjkfjk dhjdfhkjdf kjdfhdk fhdk </p>
缩进它不会缩进文本,而是整个标记。我如何真正选择内部文本,以便我可以像上面那样运行命令?

1 个答案:

答案 0 :(得分:3)

这是因为段落的内部HTML在开始<p>标记之后立即开始,所以它包含紧跟在它之后的换行符(你也会在{{1}之后看到) })。正如您所知,重新格式化和缩进是基于行的,因此单个字符很重要。

要使文本对象按您的方式工作,您需要移动到选择的开头(vit),然后将其缩小到下一行(最简单的o;对于缩进和无论如何,格式化,确切的起始列并不重要。所以重新格式化的顺序是:

j

如果你想要更快的东西,你需要编写自己的文本对象。看看我的CountJump plugintextobj-user plugin;他们可以帮助定义一个。