2

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

我想阻止这个:

<table>
    <tr>
        <td>

当我按下回车键时,我希望 HTML 只是进入下一行的开头:

<table>
<tr>
<td>

但我希望 Vim 继续为 Javascript 这样做:

function fooBar() {
    var myVar = 10;    
}

我目前在我的 .gvimrc 中有这一行:

filetype plugin indent on

我可以选择性地禁用 Vim 的仅为 HTML 标记的缩进吗?当我对此进行谷歌研究时,我最终得到了关于禁用粘贴代码缩进的教程。

4

2 回答 2

1

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

于 2012-07-03T05:26:55.017 回答
0

尝试这个:

set indentexpr=|set cindent

我相信它应该具有您正在寻找的效果,它不会基于 html 标签缩进,但它仍会在打开花括号之类的内容后缩进,并且保留 html 语法突出显示。要使其永久化,您可以在 vimrc 中使用自动命令,例如au BufEnter *.html set indentexpr=|set cindent.

有 4 级缩进。它们按优先级从低到高的顺序依次是autoindentsmartindentcindentindentexpr。因此,您需要做的就是确保indentexpr未设置,然后您可以设置cindentcindent默认情况下使用字符{,},),:,#进行缩进,因此它会缩进花括号等内容而不缩进 html。

于 2012-07-03T09:22:46.440 回答