[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
M-! (shell-command
) lee una línea de texto utilizando
el minibúfer y la ejecuta como comando de shell en una subshell creada
solamente para dicho comando. La entrada estándar para el comando viene
del dispositivo nulo. Si el comando de shell produce alguna salida, la
misma aparece, bien en el área de eco (si es breve), o en un búfer de
Emacs llamado `*Shell Command Output*', que se muestra en otra ventana
pero no se selecciona (si la salida es extensa).
Por ejemplo, una forma de descomprimir un archivo `foo.gz' desde Emacs es teclear M-! gunzip foo.gz RET. Dicho comando de shell normalmente crea el archivo `foo' y no produce salida en la terminal.
Un argumento numérico, tal como M-1 M-!, manda insertar la salida de terminal en el búfer actual en lugar de en un búfer aparte. Pone el punto antes de la salida, y establece la marca después de la misma. Po ejemplo, M-1 M-! gunzip < foo.gz RET insertaría el equivalente descomprimido de `foo.gz' en el búfer actual.
Si la línea de comando de shell termina con un `&', correrá
asincrónicamente. Para un comando de shell sincrónico, shell-command
devuelve el estado de salida del comando (0 quiere decir exitoso), cuando
se lo llama desde un programa Lisp. Para un comando asincrónico, ud. no
obtiene ninguna información de estado, ya que aún no ha terminado.
M-| (shell-command-on-region
) es como M-! pero
en lugar de no pasar entrada alguna, pasa el contenido de la región
como entrada estándar al comando de shell. Si se usa un argumento numérico
para insertar la salida en el búfer actual, entonces la región antigua se
borra primero y la salida la reemplaza como contenido de la región.
Cuando es llamado desde un programa Lisp, devuelve el estado de salida del
comando.
Un uso para M-| es correr uudecode
. Por ejemplo, si el
búfer contiene texto uuencoded, teclee C-x h M-| uudecode
RET para pasar el contenido del búfer entero al programa uudecode
.
Dicho programa hará caso únicamente al texto codificado, y almacenará la
salida decodificada en el archivo cuyo nombre especifica el texto codificado.
Tanto M-! como M-| utilizan shell-file-name
para
especificar la shell utilizada. Esta variable se inicializa a partir de
su variable de entorno SHELL
al iniciarse Emacs. Si el nombre de
archivo no especifica un directorio, se busca en los directorios de la
lista exec-path
; esta lista se inicializa a partir de la variable
de entorno PATH
al iniciarse Emacs. Su archivo `.emacs' puede
redefinir cualquiera de ellas o ambas inicializaciones por defecto.
Tanto M-! como M-| esperan que el comando de shell acabe.
Para no esperar más, teclee C-g para abandonar; esto termina el
comando de shell con la señal SIGINT
, la misma señal generada
normalmente por C-c en la shell. Emacs espera hasta que el comando
termine realmente. Si el comando de shell no se detiene (porque no hace
caso a la señal SIGINT
), vuelva a teclear C-g; esto envía al
comando una señal SIGKILL
que es imposible de evadir.
Para especificar un sistema de codificación para M-! o M-|, utilice el comando C-x RET c inmediatamente antes. See section Especificar un sistema de codificación.
La salida de error del comando normalmente se mezcla con la salida
común. Si establece la variable shell-command-default-error-buffer
como una cadena con el nombre de un búfer, la salida de errores se inserta
antes del punto en el búfer con dicho nombre.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Roberto on abril, 2 2007 using texi2html 1.76.