在Vim中禁用部分HTML缩进


9

警告:我不是网络开发人员。

话虽这么说,在极少数情况下,我不得不编辑HTML。当我这样做时,我注意到我不喜欢的Vim行为,并希望可以通过配置进行更改。

在编写代码时,我倾向于将行换成80个字符。这通常意味着我必须将HTML标签分成多行。我想要的是发生这种情况时的一些合理的缩进。因此,例如,我可能有以下代码,并且希望以类似的方式缩进:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
   src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
   class="ri" alt="This is an image"></a>

但是,默认情况下,Vim的自动缩进会将缩进的HTML标记缩进到与从上一行开始的HTML标记相同的级别。换句话说,我得到如下信息:

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg"><img
                                                              src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
                                                              class="ri" alt="This is an image"></a>

正是我所不想要的。在输入时,我发现自己经常不得不回过头来修复这样的缩进。

我总体上喜欢Vim的自动缩进,并且不想简单地普遍禁用它。我只想禁用或更改拆分的HTML标记缩进,但是我不知道如何做。

有可能改变吗?

(我曾尝试在Stackoverflow上搜索此问题,但找不到它。如果重复,请指出原始问题。)

编辑:在这里找到解决方案https://www.reddit.com/r/vim/comments/3ogbna/disabling_partial_html_indentation_in_vim/cvy8p3u

编辑#2:好的,上面的解决方案不能解决问题。它仍然在那里。


1
我发现上一个片段中的缩进示例令人惊讶:我已经在我的香草Homebrew安装程序(版本7.4)上进行了尝试,并且按预期运行:当我在行末按<Enter>并autoindent启用了vim时缩进下一行作为我刚刚结束的行。所以我的猜测是您可能有一个可以更改默认缩进模型的插件。
弗拉德·古迪加

@VladGURDIGA,是的,我开始对此表示怀疑。我将不得不深入研究vimrc,看看我能想到什么。我的vimrc在这里,顺便说一句github.com/criswell/meh/blob/master/vim/.vimrc
criswell

还要检查〜/ .vim /,因为那里也装载了任何东西,通常是ftplugins,颜色和其他自动装载的东西。8
Vlad GURDIGA,2015年

我还对reddit进行了询问,并得到了这个答案,结果将其修复为reddit.com/r/vim/comments/3ogbna/…。我将相应地更新我的问题。
criswell

真好!感谢您的后续!:)
Vlad GURDIGA

Answers:


4

我推荐tidy-html5插件。


作为我自己的网络开发人员,我还建议对齐HTML标签略有不同,

AirBnb React样式指南(最清晰)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img
    src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
    class="ri"
    alt="This is an image"
  >
</a>

Google HTML样式指南(更常见)

<a href="http://someverylongurl.com/foo/bar/blaz/SinwzvO.jpg">
  <img src="http://someverylongurl.com/foo/bar/blaz/Sinwzv0.jpg"
       class="ri" alt="This is an image">
</a>

这确实将帮助格式化程序避免疯狂的缩进。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.