2012-07-03 47 views
2

基本上,當我編輯.HTML文件時,我不希望Vim縮進HTML標籤,但我確實希望縮進Javascript代碼。在Vim中,如何防止HTML標記的自動縮進,但是維護Javascript的部分?

我想停止這樣的:

<table> 
    <tr> 
     <td> 

我寧願HTML只是去下一行的開始,當我按下回車鍵:

<table> 
<tr> 
<td> 

但我想Vim繼續這樣做爲Javascript:

function fooBar() { 
    var myVar = 10;  
} 

我現在有這條線在我的.gvimrc裏:

filetype plugin indent on 

我是否可以選擇性地禁用Vim的僅用於HTML標記的縮進?當我在Google上做了這方面的研究之後,我最終得到了關於禁止粘貼代碼的教程。

回答

1

我認爲只要做set filetype=javascript就足夠了。但是你應該把你的JavaScript放在單獨的* .js文件中。

0

試試這個:

set indentexpr=|set cindent 

我相信它應該有你要找的效果,它不基於html標籤縮進,但它仍然會縮進後之類的東西開大括號,它保留html語法突出顯示。爲了使這個永久性,你可以在你的vimrc中使用自動命令,如au BufEnter *.html set indentexpr=|set cindent

有4個級別的縮進。它們按從低到高的順序排列,分別爲autoindent,smartindent,cindentindentexpr。因此,所有你需要做的是確保indentexpr沒有設置,然後你可以設置cindentcindent默認情況下使用字符{,},),:,#進行縮進,因此它會在不縮進html的情況下縮進花括號等內容。