[英]VIM indentation: HTML comment with <openedTag> inside comment
Vim 在找到结束的 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
然后在结束标记(例如 </div> 之后)之后键入,,以通过向后缩进 1 级来“修复”错误的缩进。
您还可以 map 在插入模式下使用其他一些组合键,而不是 2 个逗号。
这仅在插入模式下有帮助,但如果您为 ex 重新格式化整个缓冲区则无济于事。 通过'='。
来自 Steve Oualline 的Vi iMproved (VIM)它解释了如何不限制行中引号"
的语法,并且只关注行引号的开始/结束。
[...] 一个区域开始(双引号)和一个区域结束(双引号)。定义如下:
:syntax region xString start=/”/ end=/”/
开始和结束指令定义了用于定义区域开始和结束的模式。 但是看起来像这样的字符串呢?
“其中包含双引号 (\”) 的字符串”
这就产生了一个问题:字符串中间的双引号会结束字符串。你需要告诉 Vim 跳过字符串中任何转义的双引号。你可以使用 skip 关键字来做到这一点:
:syntax region xString start=/”/ skip=/\\”/ end=/”/
也许这些语法规则与缩进有关。
也许答案是通过应用<div> </div>
来解决的,就像 Qualline 先生对" "
所做的那样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.