Ejecutar en Terminal linux desde Sublime Text
Después de muchos intentos, he conseguido que Sublime Text abra un terminal, compile y ejecute nuestros programas ahí, evitando problemas al leer datos por la entrada estándar en la propia consola del editor. De esta manera conseguiremos un efecto equivalente al de la entrada Ejecutar en cmd.exe desde Sublime Text.
La idea es crear un script en linux que compile y ejecute un código fuente en un terminal, y mediante un Build System de Sublime Text, se llame a este script pasandole como parámetros el nombre del archivo de código fuente.
Lo primero que debemos hacer es crear un script en linux, para ello crear un nuevo archivo con Sublime Text, y guárdalo en tu carpeta personal en Documentos como runJava.sh o con el nombre del lenguaje que ejecutará (runC.sh, runC#.sh, etc).
Seguidamente en ese archivo deberás colocar el siguiente código:
Seguidamente solo nos queda crear un nuevo Build System que si no sabes lo que es, en la siguiente entrada lo explico detalladamente Compilar y ejecutar JAVA desde Sublime Text, el Build System podría llamarse runJava.sublime-build, siguiendo con el ejemplo anterior, y su contenido quedará así:
Nota
Esta es una solución un tanto particular, si utilizas otro lenguaje de programación, y no sabes como configurar el script, comenta aquí abajo e intentaré echarte una mano.
La idea es crear un script en linux que compile y ejecute un código fuente en un terminal, y mediante un Build System de Sublime Text, se llame a este script pasandole como parámetros el nombre del archivo de código fuente.
Lo primero que debemos hacer es crear un script en linux, para ello crear un nuevo archivo con Sublime Text, y guárdalo en tu carpeta personal en Documentos como runJava.sh o con el nombre del lenguaje que ejecutará (runC.sh, runC#.sh, etc).
Seguidamente en ese archivo deberás colocar el siguiente código:
#!/bin/bash gnome-terminal -e "/bin/bash -c 'javac $1; java $2; echo; read -p 'Pulse_intro_para_salir...'; exit; exec /bin/bash'; &"Este script nos servirá para compilar y ejecutar un archivo .java, si quieres utilizar otro lenguaje, tan solo debes borrar donde pone "javac $1; java $2;" y colocar ahí los comandos para compilar y ejecutar con el lenguaje deseado separados ambas acciones con un ";". Por ejemplo para compilar y ejecutar C++ el script quedaría así:
#!/bin/bash gnome-terminal -e "/bin/bash -c 'g++ -Wall $1 -o $2; ./$2; echo; read -p 'Pulse_intro_para_salir...'; exit; exec /bin/bash'; &"Lo siguiente que debemos hacer es dar permisos de ejecución a este script para que podamos ejecutarlo. Si os manejáis con el Terminal, ya sabéis, chmod 700 y todo listo ;), si no, tan solo debes hacer click con el botón derecho sobre nuestro archivo .sh, pinchar en Propiedades, y en la pestaña Permisos hacer click en Permitir ejecutar el archivo como un programa.
Seguidamente solo nos queda crear un nuevo Build System que si no sabes lo que es, en la siguiente entrada lo explico detalladamente Compilar y ejecutar JAVA desde Sublime Text, el Build System podría llamarse runJava.sublime-build, siguiendo con el ejemplo anterior, y su contenido quedará así:
{ "cmd": ["~/Documentos/runJava.sh ${file_name} ${file_base_name}"], "shell": true }Y eso es todo, selecciona el Build System y la próxima vez que compiles tu código (Ctrl+b) este se compilará y ejecutará en un Terminal donde podrá recibir datos de entrada sin problemas.
Nota
Esta es una solución un tanto particular, si utilizas otro lenguaje de programación, y no sabes como configurar el script, comenta aquí abajo e intentaré echarte una mano.
Como puedo ejecutar un programa .c en un script
ResponderEliminarAcabo de hacer una nueva entrada explicándolo, espero que te sea de utilidad y si tienes alguna otra duda, no dudes en comentar.
EliminarSaludos.
Compilar y ejecutar C en terminal linux Sublime Text
Hola amigo soy en que te pregunto como se haria en una Mac OS X Mavericks!
ResponderEliminarMira ya he echo lo que dice el tutorial pero no consigo que funcione ahora me marca el siguiente error:
/Users/LexCovent/Documents/SOFTWARE DESIGNING TOOLS/runJava.sh: line 2: gnome-terminal: command not found
Quedo a la espera de tu ayuda por favor!
Gracias por el aporte. Seguí investigando y al final me quedé con un 'runC++.sublime-build' asi:
ResponderEliminar{
"cmd": ["g++ -Wall ${file_name} -o ${file_base_name}"],
"working_dir": "${file_path}",
"shell": true,
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
// "selector": "source.c, source.c++",
"variants":
[
{
"name": "Run",
"cmd": ["gnome-terminal -e ${file_path}/${file_base_name}"]
}
]
}
La variante run aparece en el menú Tools y es suficiente para mi.
Por favor alguien podria ayudarme, algo así para ejecutar y compilar Java en Termina y poder ingresar datos con Scanner pero para sistema Mac OS X??
ResponderEliminarSe los agradeceria tanto, porque ya he buscado y no encuentro nada. Por favor!!
Muchas gracias, me sirvió a la perfección!!
ResponderEliminarBuenas un saludo y ante todo muchisimas gracias. Me funciono lo único que tuve que quitar para que se lanzara la terminal en mi caso uso linux, fueron los corchetes ala sublime-build en mi caso c++ el lenguaje.
ResponderEliminarI did everything step by step and I still got this error message while trying to build it
ResponderEliminar/bin/sh: 1: /home/ravenclaw/Documentos/runC.sh: not found
I got that for this (C) and also for your example on java.... I don't really know what to do.
Quizas un tanto-demasiado tarde, pero en caso que alguien mas tenga el problema es por el archivo sublime-build el cual se tiene que cambiar "Documentos" por "Documents" en algunos sistemas.
EliminarOtra opcion es cambiar de lugar el archivo sh y ponerlo en la carpeta de Sublime Text... por lo cual opte para no eliminarlo por accidente (de hacer esto, obviamente tambien se tendria que modificar el archivo sublime-build o crear un symlink a la carpeta Documentos)
como compilo el c++ de sublime en mac si puedes ayudarme te lo agradeciria no quiero estar usando wine para este tipo de cosas debe aver algo nativo o diseñaso para mac para compilar c++ y c#
ResponderEliminarmuchas gracias , quedo muy bien solo que tuve que modificar un poquito el script ya que lo ocupaba para python y python no compila , mas bien interpreta al vuelo , pero quedo de maravilla , seguire esta pagina saludos
ResponderEliminarComo se puede modificar para python?
ResponderEliminarPara el que necesite para Python 3, quedaria algo asi (de usarse en Python 2 solo habria que cambiar "python3" por "python"):
ResponderEliminar#!/bin/bash
gnome-terminal -e "/bin/bash -c 'python3 $1; echo; read -p 'Salir...'; exit; exec /bin/bash'; &"
hace mas de 2 dias estoy buscando y tu comentario y este post por fin me ayudaron
Eliminardesde sublime sin el archivo .sh tenia problemas y nunca podia ejecutar la terminal
Gracias a los 2
Muchas gracias! Muy útil. Lo que estaba buscando desde hace mucho!
ResponderEliminarniquiXtinc-ba Tony Wiest Crack
ResponderEliminarbestkenykar