Что делает следующая команда в системе сборки Sublime Text? - PullRequest
0 голосов
/ 16 апреля 2020

Я скопировал систему пользовательской сборки Sublime Text для компиляции и запуска кодов C и C ++ на моем компьютере с Ubuntu. Каждый раз, когда я нажимаю Ctrl + B, открывается терминал, и мне приходится явно набирать

g ++ "File_NAme"

. / A.out

Находясь в моей системе от 4 до 5 месяцев, я уже чувствую себя комфортно с терминалом. Поэтому я пытаюсь обойти всю эту типизацию и напрямую выполнить код в терминале. Я прочитал документацию по Системе Sublime text build и затем попытался внести соответствующие изменения в мою систему сборки. Исходная система сборки выглядит следующим образом:

{
  "cmd": ["g++", "$file", "-o", "${file_path}/${file_base_name}"],
  "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
  "working_dir": "${file_path}",
  "selector": "source.c, source.c++, source.cxx, source.cpp",
  "variants":
  [
      {
          "name": "Run",
          "shell": true,
          "cmd": ["gnome-terminal", "--", "'bash -c \"${file_path}/${file_base_name}; echo Press ENTER to continue; read line;exit; exec bash\"'"]
      }
  ]
}

Я перепробовал много изменений, но потерпел неудачу. Может кто-нибудь сказать мне, что именно происходит в командах "cmd", командах "bash - c" и т.д. c.?

Я прочитал, что для того, что я хочу, shell_cmd должен использовать (трубопровод и перенаправление), но я не могу заставить его работать.

Вот что я попробовал:

"shell_cmd": "gnome terminal -- g++ \"${file_path}/${file_base_name}\"; ./a.out"

вместо обоих «cmd», но теперь местоположение файла не открывается, потому что в расположении файла есть пробелы. Этого не произошло в первой системе сборки. Пожалуйста, помогите мне.

...