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

时间:2020-09-23 08:31:37

标签: html vim comments indentation auto-indent

即使找到了注释,也会在发现 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

2 个答案:

答案 0 :(得分:0)

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

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

,然后在关闭标签(例如

之后)后键入,以通过向后缩进1级来“修复”错误的缩进。

您还可以在插入模式下映射一些其他组合键,而不是2个逗号。

这仅在插入模式下会有所帮助,但如果重新格式化ex的整个缓冲区则无济于事。通过“ =”。

答案 1 :(得分:0)

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

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

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

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

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

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

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

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

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

相关问题
最新问题