自动格式化(gg=G
)适用于类似代码(来自here的示例):
fun()
{
for(...)
{
for(...)
{
if(...)
{
}
}
}
}
变为
fun()
{
for(...)
{
for(...)
{
if(...)
{
}
}
}
}
但它失败了更复杂的代码(从here复制)
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
</body>
</html>
变为:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("p").click(function(){
$(this).hide();
});
});
</script>
</head>
<body>
<p>If you click on me, I will disappear.</p>
</body>
</html>
为什么<p>
标签没有在主体中缩进?这是vim格式化程序的缺点还是我错误地使用它?
编辑:感谢所有提及我应将filetype plugin indent on
放入.vimrc
文件的人。这使得缩进更好。但是,它有时仍然失败。观察(从here复制)
<!DOCTYPE html>
<html>
<body>
<div style="text-align:center">
<button onclick="playPause()">Play/Pause</button>
<button onclick="makeBig()">Big</button>
<button onclick="makeSmall()">Small</button>
<button onclick="makeNormal()">Normal</button>
<br />
<video id="video1">
<source src="mov_bbb.mp4" type="video/mp4" />
<source src="mov_bbb.ogg" type="video/ogg" />
Your browser does not support HTML5 video.
</video>
</div>
<script type="text/javascript">
var myVideo=document.getElementById("video1");
function playPause()
{
if (myVideo.paused)
myVideo.play();
else
myVideo.pause();
}
function makeBig()
{
myVideo.height=(myVideo.videoHeight*2);
}
function makeSmall()
{
myVideo.height=(myVideo.videoHeight/2);
}
function makeNormal()
{
myVideo.height=(myVideo.videoHeight);
}
</script>
<p>Video courtesy of <a href="http://www.bigbuckbunny.org/" target="_blank">Big Buck Bunny</a>.</p>
</body>
</html>
根本没有变化。它没有意识到这些函数嵌套在<script>
标记内。将文件类型设置为js.html
或html.js
也无济于事
答案 0 :(得分:1)
因此,vim针对不同的文件类型具有不同的格式/语法突出显示选项。你可以阅读它here。所以对于你的常规c ++文件,缩进是非常标准的,所以它通常是正确的但是对于你的html文件你可能有不同的参数,然后是制作格式文件的pereson。您可以在~/.vim/ftplugin
下编辑并查看linux中的格式配置,html文件将被称为html.vim
。
此外,比如说,您可能需要通过在~/.vimrc
中设置文件类型插件或通过键入:filetype plugin indent on
启用它来启用文件类型插件