Как запустить программы на внешней консоли с помощью Sublime Text в системе Windows?

Мне удалось настроить Sublime Text 2 для С++, и теперь я могу скомпилировать свой код (используя компилятор MinGW).

К сожалению, консоль Sublime Text не может поддерживать какой-либо вход для С++.

Я хочу открыть свою скомпилированную программу на внешней консоли (например, в Window Terminal). Я пытался использовать "call" или "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"
}

Ответ 1

Попробуйте следующее:

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

Хитрость заключается в том, чтобы выполнить сгенерированный файл с помощью команды "start", которая заставляет файл открываться в новом окне cmd и помещать все в первое определение cmd (используя && для выполнения две команды), потому что если вы определяете более одного массива cmd, они перезаписываются.

Ответ 2

@FacundoJ: на Mac вы можете использовать терминал для запуска приложения извне. В С++. Sublime-build измените cmd так, чтобы вместо запуска скомпилированного вывода он запускает его в Terminal.

Изменить:

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

To:

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

Ответ 3

В принятом ответе от @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\bin в вашем PATH), поэтому вы можете использовать его как

  • Ctrl + B Скомпилировать программу

  • Ctrl + Shift + B Запустите его (после компиляции, конечно)

Примечание1 Обратите внимание на пустую строку после команды start: следует использовать.

Примечание2, вы должны использовать суффикс .cpp, или по умолчанию используется синтаксис C89 (по крайней мере, с компилятором MinGW g++)

Ответ 4

Для ubuntu

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

что делает эта сборка, компилирует файл .cpp и открывает выходной файл в xterm.

- > , если вы хотите, чтобы выход был открыт в gnome-terminal, создайте профиль

В gnome-terminal перейдите в Edit → Настройки профиля- > Перейдите на вкладку Command. Выберите "Удержать терминал открыто" в раскрывающемся меню с надписью "Когда команда выйдет". Вы должны создать новый профиль для этого

а затем замените "cmd" на

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

Ответ 5

Принятый ответ позволяет выполнить программу в Windows CMD и принять ввод. Но как только выполнение программы закончено, окно 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 + B, чтобы скомпилировать программу, затем нажмите Ctrl + Shift + B и выберите опцию run in cmd, которая будет запускать программу в системе CMD вместо Sublime Text консоли.

Вышеуказанные настройки тестируются в Windows 8.1, а также должны работать в Windows 7 и Windows 10.

Ответ 6

Это РАБОТА!

{"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}
  • Просто перейдите в Инструменты > Build Sytem > Новая сборка System... "С++. Sublime-build"... и Должен SAVE это как ВСЕ ФАЙЛЫ
  • Выберите эту сборку

Просто введите (ctrl + b), чтобы открыть открытую командную строку с повышенными правами и введите свои входы, как и другие IDE.