使用Vim正确缩进HTML和PHP的缩进

Sas*_*sha 49 html php vim indentation

我已经使用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
}
?>
Run Code Online (Sandbox Code Playgroud)

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

<?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
}
?>
Run Code Online (Sandbox Code Playgroud)

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

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

ste*_*eve 55

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

:set filetype=html
Run Code Online (Sandbox Code Playgroud)

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

  • 要获得更好的PHP支持,您可以尝试:设置ft = phtml (37认同)

Bri*_*per 21

在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
Run Code Online (Sandbox Code Playgroud)

Vundle

放在.vimrc中

Bundle 'captbaritone/better-indent-support-for-php-with-html'
Run Code Online (Sandbox Code Playgroud)

在vim中运行

:BundleInstall
Run Code Online (Sandbox Code Playgroud)


ale*_*lex 19

在仔细研究了所有解决方案后,我发现了这个插件:

http://www.vim.org/scripts/script.php?script_id=604

它似乎解决了我的问题!!!!!

  • 缺少说明,将其放在`〜/ .vim/indents`文件夹中 (8认同)
  • @ mblackwell8您可以编辑`php.vim`文件,第27行,以控制缩进间距.您可以将其设置为您喜欢的空格数,或者如果有选项卡,只需删除该行. (3认同)

git*_*rik 9

对我来说,如果我先做:set ft=html,那就行得很好:set syn=php.


shi*_*hin 5

在php + html中我发现以下内容对我有好处.

:set ft=html # Change the file type to html
=G # to indent all lines 
:set ft=phtml # Change the file type to phtml
=G # to indent all php lines
Run Code Online (Sandbox Code Playgroud)