2012-07-22 30 views
10

Tôi đã quản lý cấu hình Sublime Text 2 cho C++ và bây giờ tôi có thể biên dịch mã của tôi (sử dụng trình biên dịch MinGW).Làm thế nào để chạy các chương trình trong bảng điều khiển bên ngoài với văn bản siêu văn bản trong hệ thống Windows?

Thật không may, bảng điều khiển Văn bản tuyệt vời không thể hỗ trợ bất kỳ loại đầu vào nào cho C++.

Tôi muốn mở chương trình đã biên dịch của mình trong bảng điều khiển bên ngoài (ví dụ như cổng của Window). Tôi đã cố gắng sử dụng "gọi" hoặc "cmd" nhưng không thể làm cho nó hoạt động. (Nó vẫn mở tập tin trong giao diện điều khiển)

Dưới đây là xây dựng cấu hình của tôi:

{ 
"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

Bạn có thể thử đặt 'shell' thành' false' không. – nullpotent

+0

Nó không hoạt động khi tôi đặt '' shell'' thành '' false'' (ngay cả trình biên dịch không hoạt động khi tôi làm điều đó) – halflings

Trả lời

13

Hãy thử với điều này:

{ 
    "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" 
} 

Bí quyết là để thực hiện các tập tin được tạo ra bằng cách sử dụng "bắt đầu" lệnh, để buộc tệp mở trong cửa sổ cmd mới và đặt mọi thứ bên trong định nghĩa cmd đầu tiên (sử dụng & & để thực thi hai lệnh), vì nếu bạn xác định nhiều hơn một mảng cmd, chúng sẽ ghi đè lên.

+1

Điều này hoạt động hoàn hảo. Cảm ơn bạn đã giải thích tuyệt vời quá, không biết về lệnh "bắt đầu" (và tôi thường có thể sử dụng nó trong tương lai)! – halflings

+1

@FacundoJ, Làm cách nào để thực hiện điều đó trong Mac hoặc Linux? – Tareq

+0

@Tareq xem câu trả lời của RichS dưới đây: D – FacundoJ

7

@FacundoJ: Trên máy Mac, bạn có thể sử dụng Thiết bị đầu cuối để chạy ứng dụng bên ngoài. Trong C++, xây dựng cao cấp, thay đổi cmd để thay vì chỉ chạy đầu ra được biên dịch, nó sẽ khởi chạy nó trong Terminal.

Thay đổi từ:

"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

Có giống với Linux không? –

+0

Không, nó sẽ không hoạt động với Linux vì Terminal là một ứng dụng Mac. Nhưng, tôi chắc rằng có một cơ chế tương đương. – RichS

2

Trong câu trả lời chấp nhận từ @FacundoJ bạn biên dịch chương trình mỗi khi bạn chạy nó. Điều này không phải lúc nào cũng cần thiết (tức là khi bạn chỉ sửa đổi một số tài nguyên bên ngoài hoặc chơi với các nhóm chính). Trong trường hợp đó tôi khuyên bạn nên cài đặt này:

{ 
    "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"] 
    }] 
} 

(Giả sử bạn có C: \ MinGW \ bin trong PATH của bạn) để bạn có thể sử dụng nó như

  • Ctrl + B Compile chương trình

  • Ctrl + Shift + B Chạy nó (sau khi biên soạn, tất nhiên)

Note1 Note chuỗi rỗng sau start lệnh: nó should be used.

Note2 bạn nên sử dụng .cpp hậu tố, hoặc cú pháp C89 được sử dụng bởi mặc định (ít nhất là với MinGW g ++ biên dịch)

2

Đối với ubuntu

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

điều này xây dựng hệ thống làm là biên dịch .cpp tập tin và mở tập tin đầu ra trong xterm.

-> nếu bạn muốn đầu ra để mở trong gnome-terminal, tạo một hồ sơ

Trong gnome-terminal, hãy vào Edit -> Hồ sơ Preferences-> Nhấp vào tab Command. Chọn 'Giữ nhà ga mở' từ trình đơn thả xuống có nhãn Khi lệnh exits.You nên tạo một cấu hình mới cho

và sau đó thay thế "cmd" với

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

Câu trả lời được chấp nhận cho phép bạn thực hiện chương trình trong Windows CMD và chấp nhận đầu vào. Nhưng khi thực thi chương trình kết thúc, cửa sổ cmd sẽ đóng ngay lập tức trước khi bạn có thể thấy rõ ràng đầu ra.

Tôi nghĩ bạn nên thử giải pháp sau, để giữ cửa sổ CMD mở sau khi thực hiện chương trình, để bạn có thể kiểm tra kết quả.

{ 
    "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" 
     } 
    ] 
} 

Đầu tiên bấm Ctrl + B để biên dịch chương trình, sau đó nhấn Ctrl + phím Shift + B và chọn run in cmd tùy chọn, mà sẽ chạy chương trình trong hệ thống CMD thay vì Bảng điều khiển văn bản tuyệt vời.

Các cài đặt ở trên được kiểm tra trên Windows 8.1 và cũng nên hoạt động trên Windows 7 và Windows 10 ra khỏi hộp.

0

Đây là CÁCH LÀM VIỆC !!

{"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} 
  • Chỉ cần goto Tools> Xây dựng Sytem> New build Hệ thống ... "C++. Siêu việt-xây dựng" ... và phải lưu nó như ALL FILES
  • Chọn rằng xây dựng

Chỉ cần nhập (ctrl + b) để xem lời nhắc lệnh nâng cao mở và cung cấp cho các đầu vào của bạn như IDE khác.

Các vấn đề liên quan