在Vim中,如何防止HTML标记的自动缩进,而维护Javascript的部分?

在Vim中,如何防止HTML标记的自动缩进,而维护Javascript的部分?,javascript,html,vim,Javascript,Html,Vim,基本上,当我编辑一个.HTML文件时,我不希望Vim缩进HTML标记,但我希望它缩进Javascript代码 我想阻止这一切: <table> <tr> <td> 我目前在我的.gvimrc中有这一行: filetype plugin indent on 我是否可以仅对HTML标记选择性地禁用Vim的缩进?当我在谷歌上做这方面的研究时,我大部分的结果都是关于禁用缩进来粘贴代码的教程。我认为只要做set filetype=javasc

基本上,当我编辑一个.HTML文件时,我不希望Vim缩进HTML标记,但我希望它缩进Javascript代码

我想阻止这一切:

<table>
    <tr>
        <td>
我目前在我的.gvimrc中有这一行:

filetype plugin indent on

我是否可以仅对HTML标记选择性地禁用Vim的缩进?当我在谷歌上做这方面的研究时,我大部分的结果都是关于禁用缩进来粘贴代码的教程。

我认为只要做
set filetype=javascript
就足够了。但您应该将JavaScript放在单独的*.js文件中。

试试以下方法:

set indentexpr=|set cindent
我相信它应该具有您想要的效果,它不会基于html标记缩进,但它仍然会在打开大括号之后缩进,并保留html语法高亮显示。要使其永久化,可以在vimrc中使用自动命令,如
au BufEnter*.html set indentexpr=| set cindent

缩进有4个级别。它们的优先级从低到高依次为:
autoindent
smartindent
cindent
indentexpr
。因此,您需要做的就是确保未设置
indentexpr
,然后您可以只设置
cindent
cindent
默认情况下使用字符
{,},,:,#
进行缩进,因此它将缩进大括号之类的内容,而不缩进html

filetype plugin indent on
set indentexpr=|set cindent