2012-03-07 121 views

Respuesta

11

shell-command es lo que buscas.

Pregunte a Emacs al respecto: C-h f "shell-command". Está obligado a M-!

EDIT: aclarar la acción exacta requerida

Haga lo siguiente:

M-! foo-programenter

Donde foo-program es el nombre del archivo ejecutable compilado.

+2

Miré y no fue útil. – clay123

+2

Sugiero que probablemente necesite leer la documentación con más cuidado. La sugerencia de event_jr fue bastante razonable. – Perry

+1

Lo leí. Soy muy nuevo en esto. No entiendo qué significa la mitad de eso.Solo necesito saber qué escribir para que mi programa se ejecute – clay123

18

Una idea mucho mejor sería utilizar un Makefile

---- X Makefile X---- 
build: 
     gcc -o exec_name input.c 
run: 
    ./exec_name 

Y entonces usted puede hacer Mx compile y dar orden como hacen construir para compilar el programa y Mx compile seguido por haga ejecutar para ejecutar el programa.

Otro modo de funcionamiento sería M-x gdb

+1

Por supuesto, usted querrá que el objetivo 'run' dependa del ejecutable y probablemente no tenga un objetivo' build'. Solía ​​usar una configuración como esta. Teníamos los destinos '%: run','%: gdb', '%: valgrind', etc. que construirían cualquiera de nuestros ejecutables y se ejecutarían (normalmente, bajo gdb, bajo valgrind). Es muy útil, especialmente si la compilación lleva mucho tiempo. –

3

Otra forma es ejecutar programa directamente en la cáscara con M-x shell o M-x term para abrir shell en tampón en primer caso y shell real en segundos. Luego ejecute su programa ./myprog

3

Siempre puede usar compile como lo haría para construirlo. Esto es agradable si su programa escupe mensajes que pueden ser resaltados y saltó a un compilador. También puede escribir una breve función como:

(defun run-current-file() 
    "Runs the compilation of the current file. 
Assumes it has the same name, but without an extension" 
    (interactive) 
    (compile (file-name-sans-extension buffer-file-name))) 

para que no tenga que escribir el nombre del archivo todo el tiempo. Esto tiene la ventaja añadida de que puede dejar enlazar default-directory si el producto de compilación se encuentra en otro directorio, y puede tener munging de nombres más complicado. Por supuesto puede cambiar compile a shell-command etc. si prefiere esa salida.

5

Si bien este podría no ser el método más óptimo para hacerlo, pero esta es una manera muy rápida de ver salida de un programa C.

;; Run C programs directly from within emacs 
(defun execute-c-program() 
    (interactive) 
    (defvar foo) 
    (setq foo (concat "gcc " (buffer-name) " && ./a.out")) 
    (shell-command foo)) 

(global-set-key [C-f1] 'execute-c-program) 

Sólo hay que poner el siguiente código en su archivo de inicio y pulse Ctrl +F1 para ver la salida en el minibúfer.

Cuestiones relacionadas