2012-07-22 7 views
10

मैं सी ++ के लिए सब्लिमे टेक्स्ट 2 को कॉन्फ़िगर करने में कामयाब रहा और अब मैं अपना कोड संकलित कर सकता हूं (मिनजीडब्ल्यू कंपाइलर का उपयोग करके)।विंडोज सिस्टम में सब्लिमे टेक्स्ट के साथ बाहरी कंसोल में प्रोग्राम कैसे चलाएं?

दुर्भाग्यवश, सब्लिमे टेक्स्ट कंसोल C++ के लिए किसी भी प्रकार के इनपुट का समर्थन नहीं कर सकता है।

मैं अपने संकलित प्रोग्राम को बाहरी कंसोल (उदाहरण के लिए विंडो टर्मिनल) में खोलना चाहता हूं। मैंने "कॉल" या "cmd" का उपयोग करने की कोशिश की लेकिन यह काम नहीं कर सका। (यह अभी भी कंसोल में फ़ाइल को खोलता है)

यहाँ अपने निर्माण विन्यास है:

{ 
"cmd": ["C:\\MinGW\\bin\\mingw32-g++.exe", "-Wall", "-time", "$file", "-o", "$file_base_name"], 
"cmd": ["call", "$file"], 
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
"working_dir": "${project_path:${folder}}", 
"selector": "source.c", 
"shell": true, 
"encoding": "latin1" 
} 
+0

क्या आप 'shell' को 'false' पर सेट करने का प्रयास कर सकते हैं। – nullpotent

+0

यह काम नहीं करता है जब मैं '' shell'' को 'false'' पर डालता हूं (यहां तक ​​कि संकलक तब भी काम नहीं करता है जब मैं ऐसा करता हूं) – halflings

उत्तर

13

इस के साथ प्रयास करें:

{ 
    "cmd": ["C:\\Dev-Cpp\\bin\\mingw32-g++.exe", "-static", "-Wall", "-time", "$file", "-o", "$file_base_name.exe", "&&", "start", "$file_base_name"], 
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", 
    "working_dir": "${project_path:${folder}}", 
    "selector": "source.c", 
    "shell": true, 
    "encoding": "latin1" 
} 

चाल "शुरू" उपयोग करते हुए उत्पन्न फ़ाइल निष्पादित करने के लिए है कमांड, जो फाइल को एक नई सीएमडी विंडो में खोलने के लिए मजबूर करता है, और दो सेमी को निष्पादित करने के लिए सब कुछ पहले cmd परिभाषा के अंदर रखता है (& & का उपयोग करके), क्योंकि यदि आप एक से अधिक cmd सरणी को परिभाषित करते हैं, तो वे ओवरराइट करते हैं।

+1

यह पूरी तरह से काम करता है। महान स्पष्टीकरण के लिए भी धन्यवाद, "प्रारंभ" कमांड के बारे में नहीं पता था (और मैं अक्सर इसे भविष्य में उपयोग कर सकता हूं)! – halflings

+1

@FacundoJ, मैं मैक या लिनक्स में ऐसा कैसे करूं? – Tareq

+0

@Tareq नीचे रिचस का जवाब देखें: डी – FacundoJ

7

@FacundoJ: मैक पर, आप टर्मिनल का उपयोग बाहरी रूप से ऐप चलाने के लिए कर सकते हैं। सी ++ में। सब्लिम-बिल्ड में, cmd को बदलें ताकि संकलित आउटपुट को चलाने के बजाए, इसे टर्मिनल में लॉन्च किया जा सके।

इससे बदलें:

"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"] 

करने के लिए:

"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && open -a Terminal.app '${file_path}/${file_base_name}'"] 
+0

क्या यह लिनक्स के लिए समान है? –

+0

नहीं, यह लिनक्स के लिए काम नहीं करेगा क्योंकि टर्मिनल एक मैक ऐप है। लेकिन, मुझे यकीन है कि एक समकक्ष तंत्र है। – RichS

2

@FacundoJ से स्वीकार किए जाते हैं जवाब में आप इस कार्यक्रम हर आप इसे चलाने संकलन। यह हमेशा जरूरी नहीं है (यानी जब आप कुछ बाहरी संसाधनों को संशोधित करते हैं या मुख्य तर्कों के साथ खेलते हैं)। उस मामले में मैं इस सेटिंग की सिफारिश:

{ 
    "cmd": ["g++", "$file", "-o", "$file_base_name.exe"], 
    "working_dir": "${project_path:$folder}", 
    "selector": "source.cpp", 
    "shell": true, 
    "variants": [{ 
    "name": "Run", 
    "cmd": ["start", "", "$file_base_name"] 
    }] 
} 

(यह मानते हुए आप C: \ MinGW \ अपने पथ में बिन) ताकि आप

  • की तरह उपयोग कर सकते हैं Ctrl + बी संकलित कार्यक्रम

  • Ctrl +शिफ्ट + बी भागो यह (के बाद निश्चित रूप से संकलित,)

Note1 नोट start आदेश के बाद रिक्त स्ट्रिंग: यह should be used

टिप्पणी 2 आप .cpp प्रत्यय, या C89 वाक्य रचना का उपयोग करना चाहिए डिफ़ॉल्ट

2

ubuntu के लिए (कम से कम MinGW जी ++ संकलक के साथ) द्वारा किया जाता है

{ 
"cmd": ["g++ ${file} && xterm -hold -e ./a.out"], 
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 
"working_dir": "${file_path}", 
"selector": "source.c++", 
"shell": true, 
} 

क्या इस बिल्ड-प्रणाली करता है संकलित ।सीपीपी फ़ाइल और xterm में आउटपुट फ़ाइल खोलें।

-> यदि आप उत्पादन GNOME टर्मिनल में खोलने के लिए, एक प्रोफ़ाइल

GNOME टर्मिनल में बनाने चाहते हैं, संपादित करने के लिए जाना -> प्रोफ़ाइल वरीयताएँ-> कमान टैब पर क्लिक करें। का चयन करें ड्रॉप-डाउन मेनू लेबल जब आदेश exits.You कि

के लिए एक नया प्रोफ़ाइल बनाने और उसके बाद

"cmd": ["g++ ${file} && gnome-terminal --window-with-profile=PROFILENAME -e ./a.out"] 
2

स्वीकार किए जाते हैं जवाब देने के लिए आप की अनुमति देता है के साथ "cmd" की जगह चाहिए से 'खुला टर्मिनल पकड़ो' विंडोज सीएमडी में प्रोग्राम निष्पादित करें और इनपुट स्वीकार करें। लेकिन एक बार प्रोग्राम निष्पादन खत्म होने के बाद, आप आउटपुट स्पष्ट रूप से देख सकने से पहले cmd विंडो बंद हो जाएंगे।

मुझे लगता है कि आपको निम्न समाधान, का प्रयास करना चाहिए जो प्रोग्राम को निष्पादित करने के बाद सीएमडी विंडो खोलता है, ताकि आप अपने परिणाम की जांच कर सकें।

{ 
    "shell_cmd": "g++ -Wall -std=c++11 \"${file}\" -o \"${file_path}/${file_base_name}.exe\"", 
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$", 
    "working_dir": "${file_path}", 
    "selector": "source.c, source.c++", 

    "variants": 
    [ // run in the sublime text console 
     { 
      "name": "Run", 
      "shell_cmd":"\"${file_path}/${file_base_name}\"" 
     }, 
     // run in the Windows cmd 
     { 
      "name": "Run in cmd", 
      // the following two settings are all valid, choose one you prefer 
      "shell_cmd": "start cmd /k $file_base_name " 
      // "shell_cmd": "start \"$file_base_name\" call $file_base_name" 
     } 
    ] 
} 

पहले प्रेस Ctrl +बी कार्यक्रम संकलित करने के लिए, उसके बाद Ctrl +शिफ्ट + बी और run in cmd विकल्प है, जो के बजाय सिस्टम सीएमडी में कार्यक्रम चलेंगे चुनें शानदार पाठ कंसोल।

उपर्युक्त सेटिंग्स विंडोज 8.1 पर परीक्षण की जाती हैं, और बॉक्स के बाहर विंडोज 7 और विंडोज 10 पर भी काम करना चाहिए।

0

यह काम कर रहा है !!

{"cmd": ["g++", "-Wall", "-ansi", "-pedantic-errors", "$file_name", "-o", 
"${file_base_name}.exe", "&&", "start", "cmd", "/k" , "$file_base_name"], 
"selector": "source.cpp", 
"working_dir": "${file_path}", 
"shell": true} 
  • बस गोटो उपकरण> निर्माण Sytem> नई निर्माण सिस्टम ... "सी ++। उदात्त-निर्माण" ... और सभी फ़ाइलों
  • करें कि
  • निर्माण के रूप में यह सहेजना चाहिए

एक उन्नत कमांड प्रॉम्प्ट को खोलने के लिए बस (ctrl + b) दर्ज करें और अन्य आईडीई की तरह अपना इनपुट दें।

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