VIM缩进:HTML注释,注释内带有<openedTag>

问题描述

即使找到了注释,也会在发现 HTML结束标记对后立即缩进HTML块。>

如何根据需要缩进?请

<!-- Right indentation: -->
<div class="x"> <!-- div -->
  <h1>Title</h1>
</div>
                               
<!-- Wrong indentation: -->
<div class="x"> <!-- <div> -->
  <h1>Title</h1>
  </div>

顺便说一句,什么都没有改变

:set smartindent!
:set cindent!

也许以下链接为比我聪明的人提供了线索:Vim Wrong Indent When There Is Dash - in Html Tag

解决方法

您可以尝试使用类似的东西

:inoremap,<c-o><<<c-o>O

,然后在关闭标签(例如

,

在Steve Oualline的Vi iMproved (VIM)中,它解释了如何不限制行中引号"的语法,而仅注意行引号的开头/结尾。

[...]区域开始(双引号)和区域结束(双引号)。定义如下:

:syntax region xString start=/”/ end=/”/

start和end指令定义用于定义区域开始和结束的模式。但是看起来像这样的字符串呢?

“其中包含双引号(\“)的字符串”

这会产生一个问题:字符串中间的双引号将以字符串结尾。您需要告诉Vim跳过字符串中所有转义的双引号,您可以使用skip关键字:

:syntax region xString start=/”/ skip=/\\”/ end=/”/

也许这些语法规则与缩进有关。

也许像Qualline先生对<div> </div>所做的那样,使用" "解决应用类似策略的问题。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...