2012-03-08 15 views
5

Me gustaría ejecutar un comando de shell y obtener su salida en un búfer seleccionable en emacs. El comando es un script de shell que eventualmente ejecuta un vistazo en un montón de archivos fuente. Su salida se parece a la salida de grep. Incluye nombre de archivo y número de línea. Me gustaría poder hacer clic en un archivo o ingresar mientras estoy de pie y que emacs me lleve a esa línea del archivo. Supongo que necesito alguna función personalizada para hacer eso, pero soy nuevo en emacs, por lo que aún no sé cómo programarlo.Ejecutar comando en emacs, obtener salida en el búfer en el que se puede hacer clic

Respuesta

7

M-x grep escriba en su orden en lugar del predeterminado.

M-x propósito "grep. * Nula" encuentra grep-use-null-device si es necesario para que no envíe "/ dev/null"

+0

Esto parece una dirección interesante. El problema es que emacs agrega/dev/null como último argumento a mi comando. Supongo que espera que grep se ejecute en un conjunto de archivos y dado que mi comando no incluye ningún archivo en sus argumentos, agrega/dev/null como un archivo predeterminado. –

+1

M-x apropos "grep. * Null" encuentra 'grep-use-null-device'. –

+0

Sí, funciona. ¡Muchas gracias! –

1

Un enfoque alternativo consiste en ejecutar el comando utilizando shell-commandM-!, y cambiar el modo del búfer de salida a compilation-mode usando M-x compilation-mode.

Otra alternativa más es ejecutar el comando usando M-x compilar. La desventaja de esto es que, Emacs solo permite un buffer de compilación activo por defecto.

Cuestiones relacionadas