在 HTML 文档中说我有这个:
<p>
fdhjfkdj hfkjdfhkjdfhkjdh dfhdkf kjdh kjdhkjdhk
fhkdj hdjfhjkdh kjdh kjdf jkdhf d
jfdfhkdjfhkjdf
fjdj fhkd fdhfkjd hfkjdfhkjdf kdhfd
fdhjkfjk dhjdfhkjdf kjdfhdk fhdk
</p>
如果我做正常的 vit
vim 中的命令,如果我猛拉它,它会选择里面的文本,但是,如果我尝试做任何事情,比如跳转或运行 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>
缩进它不会缩进文本,而是整个标签。我如何真正选择里面的文本,以便我可以像上面那样在上面运行命令?
最佳答案
那是因为段落的内部 HTML 在开始 <p>
之后立即开始标记,因此它包含紧跟在它之后的换行符(你也会在 vit
之后看到)。如您所知,重新格式化和缩进是基于行的,因此单个字符很重要。
要使文本对象按您想要的方式工作,您需要移动到选择的开头 ( o
),然后将其缩减到下一行(使用 j
最简单;对于缩进和格式化,确切的无论如何,开始列并不重要)。所以重新格式化的顺序是:
vitojgq
如果你想要更快的东西,你需要写你自己的文本对象。看看我的CountJump plugin ,或 textobj-user plugin ;他们可以帮助定义一个。
关于html - 在 Vim 中真正选择 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23538263/