2010-04-24 19 views
5

¿Hay alguna manera de ejecutar un comando de shell, hacer que la salida aparezca en un nuevo búfer y mostrar esa salida de forma incremental? Eshell y otros emuladores de terminal de emacs hacen un trabajo de búsqueda de esto, pero no veo forma de crearlos.Comandos de Emacs y Shell largos

Lo que me gustaría hacer es escribir pequeñas funciones de elisp para hacer cosas como pruebas de unidad de ejecución, etc. y ver cómo la salida se filtra en un búfer.

El shell-command de la función elisp está cerca de lo que quiero, pero muestra toda la salida a la vez cuando finaliza el proceso.

+3

No es exactamente lo que necesita, pero 'M-x compile' muestra el progreso de compilación de forma incremental. – doublep

+0

Eso es exactamente lo que necesito. – darrint

Respuesta

4

Como doublep mencionado, no es M-x compilar, y también hay sólo la simple M-x shell y en esa cáscara de ejecutar lo que quiera.

1

También puede usar comint-run para ejecutar un comando sin necesidad de iniciar primero un subconjunto. Creo que M-x shell usa el modo comint con algunas modificaciones, por lo que no será muy diferente de eso. Pero si desea llamar directamente a un programa y hacer que su entrada y salida estén vinculadas a un búfer, comint-run es la función a llamar. Es un poco complicado de usar, así que lea la documentación: C-h f comint-run.

Cuestiones relacionadas