2013-07-25 7 views
12

PHP विकास के लिए emacs में मेरा वर्तमान सेटअप कई प्रकार की कमियों में है। मैं अक्सर एचटीएमएल और PHP के मिश्रित मोड का उपयोग करता हूं। मैं चाहता हूं कि मोड यह पहचानने में सक्षम हो कि मैं किस संदर्भ में हूं और उचित रूप से प्रारूपित हूं। मैं विशेष रूप से उपयुक्त टैबबिंग में रूचि रखता हूं। यह मेरे लिए सबसे महत्वपूर्ण विशेषता है। सही रंग अच्छा होगा, लेकिन अगर यह थोड़ी देर में गड़बड़ हो जाता है तो ठीक है।मैं उचित PHP विकास के लिए Emacs को कैसे कॉन्फ़िगर कर सकता हूं?

मैं वर्तमान में multi-web-mode और MacOS एक्स

सबसे निराशा होती समस्याओं में से एक पर डिफ़ॉल्ट php-mode Emacs 24.3 में उपयोग कर रहा हूँ हियरडॉक वाक्य-विन्यास को शामिल किया गया है: echo <<< मेरे वर्तमान प्रणाली नहीं पहचानती है कि इस वाक्य रचना होने की जरूरत है टैब्ड नहीं मैं आम तौर पर इस तरह चेतावनी मिलती है:

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 

मैं पहले से ही mumao/nxhtml उपयोग करने की कोशिश की है, लेकिन है कि मुझे परिणाम मैं चाहता था नहीं दिया। कुछ मायनों में यह बदतर था। मैं वास्तव में Emacs के लिए एक काम कर रहे PHP विकास पर्यावरण सेटअप के लिए किसी भी सुझाव की सराहना करता हूं।

+7

पुन: इस प्रश्न को बंद करने के लिए वोट। सहायता केंद्र बताता है कि एक प्रश्न जो प्रोग्रामर द्वारा उपयोग किए जाने वाले 'सॉफ़्टवेयर टूल' को संबोधित करता है, स्टैक ओवरफ़्लो के दायरे में आता है। – Avery

उत्तर

11

मैं मिश्रित HTML/PHP फ़ाइलों और php-mode शुद्ध PHP फ़ाइलों के लिए web-mode (http://web-mode.org/) का उपयोग करता हूं। php-mode का नवीनतम संस्करण मिश्रित HTML/PHP फ़ाइलों के लिए web-mode भी अनुशंसित है: https://github.com/ejmr/php-mode#avoid-html-template-compatibility

mmm-mode, mumamo या multi-web-mode की तरह अन्य साधनों कि एक बफर के विभिन्न भागों में अलग अलग व्यवहार लागू करने का प्रयास के विपरीत, web-mode HTML के साथ मिलाया जा सकता है कि सभी उपलब्ध वाक्य रचना/टेम्पलेट के बारे में पता है। आप मिश्रित एचटीएमएल फाइलों/टेम्पलेट्स जैसे ट्विग, डीजेगो, ईआरबी के लिए web-mode का भी उपयोग कर सकते हैं ... असल में मैं HTML में शामिल किसी भी चीज़ के लिए web-mode का उपयोग करता हूं।

PHP टेम्पलेट के लिए एक पकड़ है हालांकि: अन्य टेम्पलेट सिस्टम में अलग-अलग फ़ाइल एक्सटेंशन हैं, इसलिए मोड को स्वचालित रूप से स्विच करना आसान है, लेकिन PHP टेम्पलेट आमतौर पर उसी .php एक्सटेंशन का उपयोग करते हैं; तो मुझे इसे फ़ोल्डरों द्वारा स्विच करना होगा या कभी-कभी मैन्युअल रूप से एम-एक्स वेब-मोड का आह्वान करना होगा। यहाँ मेरे वर्तमान विन्यास है:

(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 फ़ाइलों और टेम्पलेट्स अलग और (एक शुद्ध फ़ाइल में कार्यों में refactor लंबे पीएचपी ब्लॉक) यथासंभव सरल मिश्रित HTML/PHP फ़ाइल रखने के लिए प्रयास करें। कोड पढ़ने/अनुसरण करना आसान होगा।

संबंधित मुद्दे

 संबंधित मुद्दे