2012-09-10 12 views
6

मैं शानदार टेक्स्ट 2 का उपयोग कर रहा हूं, और मैं प्लगइन sublimelinter का उपयोग करना चाहता था। यह php -l के साथ पृष्ठभूमि में कोड की जांच करता है। मैं वर्चुअलबॉक्स वीएम में चल रहे एक वेबसर्वर के साथ विकास कर रहा हूं, वेबसर्वर वीएम (अतिथि) में है और मेजबान पर शानदार पाठ चल रहा है।वर्चुअलबॉक्स vm में चल रहे PHP के साथ शानदार टेक्स्ट लिटर चलाने का कोई तरीका?

उन 2 को एक साथ काम करने का कोई तरीका? मैं वास्तव में वीएम के बाहर PHP स्थापित करने से बचना चाहता था।

उत्तर

6

मुझे कुछ ऐसा मिला है जो मेरी मशीन पर उचित रूप से अच्छी तरह से काम करता है, लेकिन यह नाजुक लगता है।

आइडिया

विचार यहाँ है कि आपके वीएम पर एक PHP कॉल करने के लिए अपने सभी मापदंडों गुजरता अपने मेजबान पर एक कमांड लाइन स्क्रिप्ट बनाने के लिए है, एक SSH सुरंग के माध्यम से। SublimeLinter तब इस स्क्रिप्ट को कॉल कर सकता है क्योंकि यह आमतौर पर PHP बाइनरी को कॉल करेगा, और सब्लिमे के दृष्टिकोण से सबकुछ आपके होस्ट पर PHP इंस्टॉल किए बिना "बस काम करेगा"।

मैं विंडोज और ओएस एक्स दोनों होस्ट्स का उपयोग कर रहा हूं इसलिए मुझे अपनी सुरंग लिपि के दो संस्करण मिल गए हैं। ध्यान दें कि विंडोज़ पर आपको विंडोज पुटी एसएसएच टूल्स लाने की आवश्यकता होगी, लेकिन यूनिक्स-स्वाद वाले होस्ट्स के लिए एसएसएच पहले ही मौजूद होगा।

Windows के लिए मेजबान

  • putty उपकरण डाउनलोड करें और उन्हें C:/Users/Youruser/bin/putty की तरह कहीं उपयोगी अनज़िप।
  • इस सामग्री के साथ C:/Users/Youruser/bin/php_vm_tunnel.bat पर बैच स्क्रिप्ट बनाएं:

    @echo off 
    C:/Users/Youruser/bin/putty/plink -l youruser -pw yourpassword 192.168.56.101 php %* 
    

नोट - सुनिश्चित करें कि हो सकता है और पथ सही पथ जहां पोटीन ऊपर अनज़िप साथ plink को बदलें। इसके अलावा, -l और -pw उपयोगकर्ता नाम और पासवर्ड के साथ फ़्लैग मानों को प्रतिस्थापित करें जिन्हें आप अपने वीएम में एसएसएच करते समय उपयोग करते हैं। अंत में, उदाहरण के लिए आईपी पते को सुनिश्चित करें और उस आईपी पते के साथ बदलें जिसे आप अपने वीएम में एसएसएच में उपयोग करते हैं।

यूनिक्स-ish होस्ट के लिए (ओएस एक्स, लिनक्स, आदि)

  • ~\bin\php_vm_tunnel

    #!/usr/bin/env bash 
    FIXED_ARGS=''; 
    for ((i = 1; i <= $# ; i++)); do 
        eval ARG=\$$i 
        FIXED_ARGS="$FIXED_ARGS $(echo "$ARG" | awk '{gsub(".", "\\&");print}')" 
    done 
    ssh -l root 192.168.56.101 php $FIXED_ARGS 
    

नोट पर bash स्क्रिप्ट बनाएं - हो -l ध्वज v को प्रतिस्थापित करना सुनिश्चित करें आपके द्वारा उपयोग किए जाने वाले उपयोगकर्ता नाम के साथ-साथ जब आप अपने वीएम में एसएसएच करते हैं। साथ ही, उदाहरण के लिए आईपी पते को उस आईपी पते के साथ प्रतिस्थापित करना सुनिश्चित करें जिसका उपयोग आप अपने वीएम में एसएसएच में करते हैं।

स्क्रिप्ट

परीक्षण इस बिंदु पर आप एक स्क्रिप्ट है कि सुरंग कुछ भी आप अपने वी एम के माध्यम से इसे करने के लिए पारित करना चाहिए।तो अगर एक टर्मिनल में तुम क्या करने थे, कहते हैं:

cd wherever_you_put_the_script 
php_vm_tunnel -v 

आप अपने आभासी मशीन से PHP संस्करण जानकारी वापसी देखना चाहिए।

उदात्त पाठ 2 विन्यास

अब आप इस सुरंग की स्थापना की है, आप कॉन्फ़िगर उदात्त पाठ 2 यह का उपयोग करने के कर सकते हैं:

  • Package Control उदात्त पाठ 2 प्लग-इन इंस्टॉल
  • स्थापित करें SublimeLinter प्लगइन (ऐसा लगता है जैसे आप पहले से ही इस बिंदु पर थे)
  • Preferences पर जाएं ->Package Settings ->SublimeLinter ->Settings - User
  • विन्यास फाइल करने के लिए (फिर स्क्रिप्ट के लिए उचित रास्ते में प्रतिस्थापन और डबल स्लैश ध्यान देने योग्य बात ठीक से बैकस्लैश वर्ण से बचने के लिए) इस जोड़ें और सहेजें:

    { 
        "sublimelinter_executable_map": 
        { 
         "php": "C:\\\Users\\\Youruser\\\bin\\\php_vm_tunnel.bat" 
         "php": "/Users/youruser/bin/php_vm_tunnel" 
        } 
    } 
    

    नोट - आपके पास केवल एक "php" कथन हो सकता है। उपरोक्त पहला संस्करण विंडोज संस्करण है, दूसरा यूनिक्स संस्करण है। जिसकी आपको आवश्यकता नहीं है उसे हटाएं।

  • पुनः आरंभ उदात्त पाठ

आप उदात्त पाठ कंसोल खोलें (और सब कुछ योजना के अनुसार हुआ) आप की तरह की तरह स्टार्टअप पाठ में कुछ देखना चाहिए हैं:

SublimeLinter: php enabled (using "C:\Users\Youruser\bin\php_vm_tunnel.bat" for executable) 

और SublimeLinter PHP फ़ाइलों को ठीक तरह से लिफ्ट करना चाहिए जैसे कि यह देशी PHP बाइनरी को कॉल कर रहा था।

शुभकामनाएं।

+0

यह ध्यान देने योग्य है कि यह चाल अन्य प्लगइन के लिए भी काम कर सकती है, क्योंकि PHP सुरंग स्क्रिप्ट बहुत सामान्य उद्देश्य है। यह रणनीति टूट जाएगी, हालांकि यदि प्लगइन एक कॉन्फ़िगरेशन फ़ाइल लिखने का प्रयास करता है और फिर इसे PHP कॉलम में पैरामीटर के रूप में पास करता है, क्योंकि फ़ाइल को लोड करने के लिए php को होस्ट की फ़ाइल सिस्टम तक पहुंच नहीं होगी। –

+0

मैं अब परीक्षण नहीं कर सकता क्योंकि मैंने काम के कारण जावा पर स्विच किया था, लेकिन यह उचित और पूर्ण स्वीकार्य लगता है। धन्यवाद। – JSamir

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