使用 Vim 正确缩进 HTML 和 PHP

2021-12-24 00:00:00 indentation vim php html

我已经使用 Vim 一段时间了,但我无法在 PHP 文件中使用正确的 HTML 缩进.

例如,我希望每个子项比其父项多缩进一个制表符,如下所示.

<div><label>统一尺寸</label><ul><li class="left"><label for="s" class="small">S</label><input type="radio" name="size[]" value="S"id="s" class="radio"/></li><li class="left"><label for="m" class="small">M</label><input type="radio" name="size[]" value="M"id="m" class="radio"/></li><li class="left"><label for="l" class="small">L</label><input type="radio" name="size[]" value="L"id="l" class="radio"/></li><li class="left"><label for="xl" class="small">XL</label><input type="radio" name="size[]" value="XL"id="xl" class="radio"/></li>

<?php}?>

使用 PHP-correct-Indent 脚本,代码结果格式如下:

<div><label>统一尺寸</label><ul><li class="left"><label for="s" class="small">S</label><input type="radio" name="size[]" value="S"id="s" class="radio"/></li><li class="left"><label for="m" class="small">M</label><input type="radio" name="size[]" value="M"id="m" class="radio"/></li><li class="left"><label for="l" class="small">L</label><input type="radio" name="size[]" value="L"id="l" class="radio"/></li><li class="left"><label for="xl" class="small">XL</label><input type="radio" name="size[]" value="XL"id="xl" class="radio"/></li>

<?php}?>

即使使用缩进的 HTML,然后我将 PHP 代码添加到其中,缩进也会被忽略,移动 HTML 代码的新行而根本没有任何缩进.

那么,有什么方法可以使用 Vim 获得我想要在 PHP 文件中处理 HTML 的缩进格式吗?

解决方案

这仍然困扰着我.我只是只是决定最好的解决方法(对我个人而言)是这样的:

:set filetype=html

然后突出显示您的文本并点击=.繁荣!HTML 格式化成功.(不理想,我知道,但至少它有效.)

I've been using Vim for a while, and I can't get proper HTML indentation working in PHP files.

For example, what I want is for each child to be indented one tab more than it's parent, as shown below.

<?php
if(isset($sports)) {
    //Do something
?>
<div>
    <label>Uniform Size</label>
    <ul>
        <li class="left"><label for="s" class="small">S</label><input type="radio" name="size[]" value="S" id="s" class="radio" /></li>
        <li class="left"><label for="m" class="small">M</label><input type="radio" name="size[]" value="M" id="m" class="radio" /></li>
        <li class="left"><label for="l" class="small">L</label><input type="radio" name="size[]" value="L" id="l" class="radio" /></li>
        <li class="left"><label for="xl" class="small">XL</label><input type="radio" name="size[]" value="XL" id="xl" class="radio" /></li>
    </ul>
</div>
<?php
}
?>

Using the PHP-correct-Indent script, the code results in being formatted as follows:

<?php
if(isset($sports)) {
    //Do something
?>
<div>
<label>Uniform Size</label>
<ul>
<li class="left"><label for="s" class="small">S</label><input type="radio" name="size[]" value="S" id="s" class="radio" /></li>
<li class="left"><label for="m" class="small">M</label><input type="radio" name="size[]" value="M" id="m" class="radio" /></li>
<li class="left"><label for="l" class="small">L</label><input type="radio" name="size[]" value="L" id="l" class="radio" /></li>
<li class="left"><label for="xl" class="small">XL</label><input type="radio" name="size[]" value="XL" id="xl" class="radio" /></li>
</ul>
</div>
<?php
}
?>

Even with indented HTML which I then add PHP code to, the indentation is ignored, moving new lines of HTML code without any indentation at all.

So, is there any way that I can get the indentation format that I want working with HTML within PHP files, using Vim?

解决方案

This still bothers me. I only just decided that the best work-around (for me personally) is this:

:set filetype=html

And then highlight your text and hit =. BOOM! HTML formatting succes. (Not ideal, I know, but at least it works.)

相关文章