不管怎样,PHP 代码通常包含 HTML 和 Javascript。让 Vim 正确缩进所有内容可能很棘手。
我.vimrc
指定制表符应始终为两个空格:
set tabstop=2
set softtabstop=2
set shiftwidth=2
此缩进文件在缩进混合的 PHP 和 HTML 方面做得很好,并且对两者都使用了 2 个空格,但出于某种原因,它对嵌入的 Javascript 缩进了 4 个空格。下面的代码片段自动缩进,如下所示。
<?PHP
if (false) {
$foo = 'foo';
}
?>
<html>
<head>
<script type="text/javascript">
function(){
if (false) {
// Four spaces!?
var foo = 'foo';
}
}
</script>
</head>
</html>
如果我创建一个单独的 javascript 文件,它会按应有的方式缩进,如下所示:
if (false) {
var foo = 'foo';
}
我不确定为什么 Vim 在第一个例子中缩进 Javascript。有没有办法询问 Vim“你在这一特定行上使用什么语法或缩进?”
答案1
要找出正在使用的语法,您需要知道变量 b:current_syntax 的值。键入以下示例命令
:echo b:current_syntax
b:当前语法表示 vim 为文件加载了什么语法。如果你手动设置语法,例如使用命令
:ownsyntax cpp
将语法设置为 c++ 语法,那么您想知道w:当前语法。 w:当前语法在你设置之前不存在,并且你无法更改b:当前语法已加载文件的。
看着那(这当前语法进入帮助了解更多信息。