Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Making Vim auto-indent PHP/HTML using alternative syntax

Tags:

syntax

php

vim

I edit PHP in Vim and have enjoyed the auto-indenting, but PHP's alternative syntax doesn't auto-indent how I would like. For instance, in an HTML template, Vim doesn't recognize the open control structure in the same way it does when using braces. Example:

<html>
  <body>
    <p>
      <?php if (1==1): ?>
      This line should be indented.
      <?php endif; ?>
    </p>
  </body>
</html>

I want Vim to recognize the open control structure and indent the HTML within it. Another example which uses pure PHP:

<?php
  if (1==1):
    echo "This line gets indented";
  echo "This one doesn't";
  endif;
?>

The indentation is terminated by the semicolon, even though the control structure is still open.

Does anybody know how to get Vim to work in these situations? Thanks.

like image 883
njbair Avatar asked Apr 17 '10 16:04

njbair


1 Answers

It would seem that this is not possible given the currently available Vim plugins, nor is it likely to be addressed.

like image 65
njbair Avatar answered Sep 29 '22 21:09

njbair