Vim kullanarak HTML ve PHP doğru girinti

6 Cevap php

Ben bir süre için Vim kullanarak oldum ve ben uygun HTML girinti PHP dosyaları çalışma alınamıyor.

Aşağıda gösterildiği gibi her çocuk, bu ebeveyn var birden fazla sekme girintili olması için, örneğin, ne ben istiyorum.

<?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-correct-Indent script kullanarak, olarak biçimlendirilen kod sonuçları şöyle:

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

Hatta daha sonra PHP kodu eklemek girintili HTML ile, girinti hiç bir girinti olmadan HTML kodunun yeni hatlar hareketli, göz ardı edilir.

Yani, ben Vim kullanarak, PHP dosyaları içinde HTML ile çalışmak istediğiniz girinti biçimi olsun herhangi bir yolu var mı?

6 Cevap

Bu beni hala rahatsız ediyor. Ben sadece just (şahsen benim için) iş çevresinde en iyi bu olduğuna karar verdim:

:set filetype=html

Ve sonra metni vurgulayın ve vurmak =. BOOM! HTML biçimlendirme başarı. (Ideal değil biliyorum, ama en azından çalışır.)

Tüm çözümler içine gerçekten zor baktıktan sonra, ben bu eklenti öğrendim:

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

Bu benim sorunlarını çözmüş gibi görünüyor!!

Sen deneyebilirsiniz {[(0)];} hala mükemmel çalışmıyor ama hiç yoktan iyidir.

php-doğru-indenting sadece PHP umurunda, ve HTML okunabilirlik hiçbir ilgi varsayar. Bir XML indenter güzel etiketlerini pozisyon olur, ama maç için işleme öğretimin içeriğini girinti mümkün olmaz. Belki her ikisi de C-benzeri PHP sözdizimi programlama dili ve [X] [HT] ML şablonu olan biçimlendirme dili anlayan bir girinti komut var, ama ben henüz bir hiç tanışmadım - üzgünüm.

Yine de, ben php-doğru-girinti onu parçalanmış bile önce örnekte girinti ile keman istiyorum! Ben girinti o görmek için bir yol yok deyimi eğer, ancak

elemanı bir dış içindedir. Ben gibi bir şey öneririm:

<?php if(isset($sports)) { ?>
    <?php
        // Do something
    ?>
    <div>
        <label>Uniform Size</label>
        <ul>
            <li>etc. etc.</li>
        </ul>
    </div>
<?php } ?>

Php + html ben şu benim için iyidir bulundu.

: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

Lütfen ~/.vimrc dosyasında:

set expandtab
set sw=4
set ts=4

expandtab seçeneğini sekmeleri boşluk dönüştürür, sw seçeneğini 4 vardiya genişliğini ayarlar ve ts 4 spacs için sekme durağı ayarlar.