在
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或运行gqit影响整个< 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;他们可以帮助定义一个.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。


