使用 Vim 更正 HTML 和 PHP 的缩进

2022-08-30 10:15:55

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

例如,我希望每个孩子比其父级多缩进一个选项卡,如下所示。

<?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
}
?>

使用 PHP 更正缩进脚本,代码的格式如下所示:

<?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
}
?>

即使使用缩进的HTML,我随后添加PHP代码,缩进也会被忽略,移动HTML代码的新行而没有任何缩进。

那么,有没有办法让我使用Vim获得我想要在PHP文件中处理HTML的缩进格式?


答案 1

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

:set filetype=html

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


答案 2

Vim Wiki上有一组vimrc指令,称为对HTML的PHP的更好缩进支持,它将根据块使用正确的插件。

还有一个Vundle/Pathogen插件,它使用相同的代码,但更易于安装并保持清洁。.vimrc

病原体

cd ~/.vim/bundle
git clone https://github.com/captbaritone/better-indent-support-for-php-with-html.git

冯德尔

在 .vimrc 中放置

Bundle 'captbaritone/better-indent-support-for-php-with-html'

在 vim 中运行

:BundleInstall

推荐