我正在用vim编写一些html/vue代码,但是我发现自动内置功能无法正常工作,尤其是嵌套标签和属性分解为多行。
。我阅读了长时间HTML标签商定的编码标准,我认为如果VIM可以支持这种凹痕样式,那将是不错的。我发现了这样的多个类似的问题,但是他们没有给出令人满意的答案。我还尝试了VIM的HTML5插件,但似乎没有太大帮助。
例如,我希望vim缩进以下内容:
<template>
<my-tag
attr1
attr2
attr3>
<my-sub-tag
attr1
attr2
attr3>
</my-sub-tag>
</my-tag>
</template>
但是目前,当我按gg=G
时,它会缩进这样的东西:
<template>
<my-tag
attr1
attr2
attr3>
<my-sub-tag
attr1
attr2
attr3>
</my-sub-tag>
</my-tag>
</template>
是否有一种相对较快的方法来修复它(例如一个不错的插件(,或者尚未成为VIM的主要问题?
您不必为此使用插件!当您使用gg=G
时,运行equalprg
(请参阅:H'QueliendPrg'(。当未设置此选项时,它会使用默认或内置的QuarePRG,这就是为什么您会看到奇数凹痕,因为它们不是为HTML构建的。
您可以使用更有能力格式化特定文件类型的外部程序。例如,对于HTML,您可以将html-beautify
(npm install --global html-beautify
(用于CSS,JSON和其他您使用prettier
您可以执行以下操作以使用外部程序。
:setlocal equalprg=html-beautify -f - -I -s 2
prettier
的新版本还支持HTML格式。
:setlocal equalprg=prettier --stdin --parser=html
将其添加到~/.vim/after/ftplugin/html.vim
并使用相同的命令gg=G
进行格式化行。
另请参见:h 'formatprg'
和:h gq
命令。