基本上当我编辑.HTML文件时,我不希望Vim缩进HTML标记,但我确实希望它缩进Javascript代码。
我想阻止这一点:
<table>
<tr>
<td>
当我点击输入时,我希望HTML只是在下一行的开头:
<table>
<tr>
<td>
但我希望Vim继续为Javascript做这个:
function fooBar() {
var myVar = 10;
}
我目前在.gvimrc中有这一行:
filetype plugin indent on
我是否可以有选择地仅针对HTML标记禁用Vim的缩进?当我对谷歌进行研究时,我最终得到了关于禁用粘贴代码的缩进的教程。
答案 0 :(得分:1)
我认为仅仅做set filetype=javascript
就足够了。但是你应该把你的JavaScript放在单独的* .js文件中。
答案 1 :(得分:0)
试试这个:
set indentexpr=|set cindent
我相信它应该具有您正在寻找的效果,它不会基于html标签进行缩进,但它仍然会在打开花括号之后缩进,并且它会保留html语法高亮显示。要使此永久化,您可以在vimrc中使用自动命令,如au BufEnter *.html set indentexpr=|set cindent
。
有4个级别的缩进。它们按从低到高的顺序排列autoindent
,smartindent
,cindent
和indentexpr
。因此,您需要做的就是确保未设置indentexpr
,然后您可以设置cindent
。 cindent
默认情况下使用字符{,},),:,#
进行缩进,因此它会缩进大括号之类的内容,而不会缩进html。