2013-07-25 7 views
12

PHP geliştirmesi için geçerli olan mevcut kurulumumda çeşitli eksiklikler var. Genellikle bir html ve php karma modunu kullanırım. Modun hangi bağlamda olduğumu ve uygun biçimde formatlandığını anlamasını istiyorum. Özellikle uygun sekmelerle ilgileniyorum. Bu benim için en önemli özellik. Doğru renklendirme güzel olurdu, ama eğer bir zamanlar ortalığı karıştırırsa sorun yok. Şu anda multi-web-mode ve en sinir bozucu sorunlarınUygun PHP geliştirmesi için emacs'i nasıl yapılandırabilirim?

Bir MacOS X'te Emacs 24.3 varsayılan php-mode kullanıyorum

Yorumlu metin sözdizimi birleştiren bir: echo <<< Benim şu anki sistem bu sözdizimi olması gerektiğini tanımıyor Sekmeli değil. Genellikle böyle uyarıları almak: Zaten mumao/nxhtml kullanarak denedim ama bu beni istediğim sonuçları vermemiştir

Indentation fails badly with mixed HTML/PHP in the HTML part in 
plaín `php-mode'. To get indentation to work you must use an 
Emacs library that supports 'multiple major modes' in a buffer. 
Parts of the buffer will then be in `php-mode' and parts in for 
example `html-mode'. Known such libraries are: 
    mumamo, mmm-mode, multi-mode 
You have these available in your `load-path': 
    mumamo 

. Bazı yönlerden daha kötüydü. İnsanların emacs için çalışan bir php geliştirme ortamı kurulumu için sahip oldukları ipuçlarını gerçekten takdir ediyorum.

+7

Re: bu soruyu kapatma oyu. Yardım merkezi, programcılar tarafından yaygın olarak kullanılan yazılım araçlarına hitap eden bir sorunun, Yığın Taşması kapsamına girer. – Avery

cevap

11

Karma PHP/HTML dosyaları için web-mode (http://web-mode.org/) ve salt PHP dosyaları için php-mode kullanıyorum. php-mode'un en son sürümü, karışık HTML/PHP dosyaları için web-mode'u da önerilir: https://github.com/ejmr/php-mode#avoid-html-template-compatibility. bir tampon farklı bölümlerine farklı davranışlar uygulamak için denemek mmm-mode, mumamo veya multi-web-mode gibi diğer modlar aksine

, web-mode HTML ile karıştırılabilir mevcut tüm sözdizimi/şablonun farkındadır. Ayrıca Twig, Django, ERB gibi karışık HTML dosyaları/şablonları için web-mode'u da kullanabilirsiniz ... Aslında HTML içeren herhangi bir şey için web-mode kullanın.

PHP şablonu için bir yakalama var ancak: Diğer şablon sistemleri farklı dosya uzantısına sahiptir, bu nedenle modu otomatik olarak değiştirmek kolaydır, ancak PHP şablonları genellikle aynı .php uzantısını kullanır; Bu yüzden, klasörlere geçmeli ya da bazen manuel olarak M-x web-mode'u çağırmalıyım. İşte benim şimdiki yapılandırma var:

(defun add-auto-mode (mode &rest patterns) 
    (mapc (lambda (pattern) 
      (add-to-list 'auto-mode-alist (cons pattern mode))) 
     patterns)) 

(add-auto-mode 'web-mode 
       "*html*" "*twig*" "*tmpl*" "\\.erb" "\\.rhtml$" "\\.ejs$" "\\.hbs$" 
       "\\.ctp$" "\\.tpl$" "/\\(views\\|html\\|templates\\)/.*\\.php$") 

BTW, PHP dosya ve şablonları ayırmak ve (saf dosyada fonksiyonları içine refactor uzun PHP blokları) karışık mümkün olduğunca basit bir HTML/PHP dosyası tutmaya çalışın. Kodun okunması/takip edilmesi daha kolay olacaktır.