Saltar al contenido

Sublime text 3 – compilar programa y ejecutar en terminal

Melina, miembro de este staff, nos hizo el favor de redactar este post ya que conoce perfectamente el tema.

Solución:

Sublime Text 3 incluye dos sistemas de compilación que podrían interesarle: C++ y Make. los C++.sublime-build archivo es el siguiente:


    "shell_cmd": "g++ "$file" -o "$file_path/$file_base_name"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "working_dir": "$file_path",
    "selector": "source.c, source.c++",

    "variants":
    [
        
            "name": "Run",
            "shell_cmd": "g++ "$file" -o "$file_path/$file_base_name" && "$file_path/$file_base_name""
        
    ]

Para usarlo, vaya a Tools -> Build System y seleccione C++. Ahora puedes usar ControlB para ejecutar la compilación (comando superior), o ControlCambioB para ejecutar el Run variante.


  "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 -e 'bash -c "$file_path/$file_base_name;echo;echo;  echo Press ENTER to continue; read line;exit; exec bash"'"]
      
  ]    

Puede ejecutarse en la terminal e ingresar datos desde el teclado

Creo que la respuesta aceptada no logra lo que el OP quiere lograr. El OP quería saber cómo ejecutar el archivo actual en una terminal.

La configuración de @Flycode no funciona para mí. Estoy usando CentOS 7 con Sublime Text 3. Dado que las personas pueden usar diferentes emuladores de terminal, enumero diferentes configuraciones para diferentes terminales.

Nota

Las siguientes configuraciones se prueban en el entorno anterior y funcionan bien. No puedo garantizar que funcionen en otros entornos. Avísame si no te funciona.

Opción 1: Terminal GNOME

Puede utilizar la siguiente configuración,


    "shell_cmd": "g++ -std=c++11 -Wall "$file" -o "$file_path/$file_base_name"",
    "file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
    "shell": true,
    "working_dir": "$file_path",
    "selector": "source.c++, source.cxx, source.cpp, source.cc",

    "variants":
    [
        
            "name": "Run",
          "shell_cmd": "gnome-terminal -e 'bash -c "$file_path/$file_base_name;exec bash "'",
        
    ]

gnome-terminal cerrará automáticamente la ventana de ejecución, el comando anterior

   "shell_cmd": "gnome-terminal -e 'bash -c "$file_path/$file_base_name;exec bash "'" 

se usa de esa manera para asegurarse de que podamos ver el resultado de la ejecución. Consulte esta publicación de SO para obtener una discusión detallada sobre cómo evitar que gnome-terminal se cierre automáticamente.

Opción 2: XTermo

Puede usar la siguiente configuración (por brevedad, omito algunas configuraciones)

    // same stuff as option 1
    "variants":
    [
        
           "name": "Run",
            //use this if you want to input other command after programm execution
           "shell_cmd": "xterm -e '$file_path/$file_base_name; bash'",
           //or you can use the below setting if you just want to execute this program
           // "shell_cmd": "xterm -hold -e $file_path/$file_base_name",

        
    ]

Consulte esta publicación de SO sobre cómo evitar que la ventana xterm se cierre automáticamente.

Opción 3: Consola

Puede utilizar la siguiente configuración,

    // same stuff as option 1
        "variants":
        [
            
                "name": "Run",
                "shell_cmd": "konsole --hold -e $file_path/./$file_base_name",        
            
        ]

Ver aquí y aquí en la discusión para mantener las ventanas de la consola después de ejecutar el programa.

Comentarios y calificaciones

Agradecemos que desees animar nuestra labor fijando un comentario o dejando una puntuación te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *