10 Ejecutar Comandos por Nombre =============================== Cada comando de Emacs tiene un nombre que puede usar para lanzarlo. Por conveniencia, muchos comandos también tienen teclas. Puede ejecutar esos comandos pulsando las teclas, o ejecutarlos por su nombre. La mayoría de los comandos de Emacs no tienen atajos de teclado, así que la única forma de ejecutarlos es por nombre. (Ver :ref:`50.3`, para saber cómo configurarlas). Por convención, un nombre de comando consiste en una o más palabras, separadas por guiones; por ejemplo, ``auto-fill-mode`` o ``manual-entry``. Los nombres de comandos suelen usar palabras completas en inglés para que sean más fáciles de recordar. Para ejecutar un comando por nombre, inicie con :kbd:`Alt`-:kbd:`x` (``M-x``), escriba el nombre del comando y termine con :kbd:`RETURN` (``RET``). ``M-x`` usa el minibuffer para leer el nombre de la orden. La cadena ``M-x`` aparece al principio del minibuffer como *prompt* para recordarle que introduzca el nombre de la orden a ejecutar. ``RET`` sale del minibuffer y ejecuta el comando. Para más información sobre el minibuffer, véase :ref:`9`. Puede usar el completado para introducir el nombre del comando. Por ejemplo, para invocar el comando ``forward-char``, puede escribir :kbd:`Alt`-:kbd:`x` ``forward-char`` :kbd:`RETURN` (``M-x`` ``forward-char`` ``RET``) o :kbd:`Alt`-:kbd:`x` ``forw`` :kbd:`TAB` ``c`` :kbd:`RETURN` (``M-x`` ``forw`` ``TAB`` ``c`` ``RET``) Tenga en cuenta que ``forward-char`` es el mismo comando que se invoca con la tecla ``C-f``. La existencia de una vinculación de teclas no le impide ejecutar el comando por su nombre. Cuando ``M-x`` completa los comandos, ignora los que fueron declarados obsoletos en cualquier versión mayor anterior de Emacs; para éstos, tendrá que escribir su nombre completo. Se listan los comandos que fueron marcados como *obsoletos* en la versión actual de Emacs. (Los comandos obsoletos son aquellos para los que existen alternativas más nuevas y mejores, y que están programados para ser eliminados en alguna versión futura de Emacs). Además, el completado M-x puede excluir comandos que no son relevantes para, y generalmente no pueden funcionar con, el modo mayor del buffer actual (ver :ref:`24.1`) y los modos menores (ver :ref:`24.2`). Por defecto, no se excluye ningún comando, pero puede personalizar la opción ``read-extended-command-predicate`` para excluir esos comandos irrelevantes de los resultados de la finalización. A la inversa, Emacs puede excluir todos los comandos excepto aquellos que son particularmente relevantes para el buffer actual. El comando :kbd:`Alt`-:kbd:`Shift`-:kbd:`s` (``M-S-x`` que significa "meta shift x") funciona igual que ``M-x``, pero en lugar de listar todos (o la mayoría) de los comandos que Emacs conoce, sólo listará los comandos que han sido marcados como "pertenecientes" al modo mayor actual, o a cualquier modo menor habilitado. Para cancelar ``M-x`` y no ejecutar un comando, teclee :kbd:`Ctrl`-:kbd:`g` (``C-g``) en lugar de introducir el nombre del comando. Volverá al nivel de comandos. Para pasar un argumento numérico al comando que está invocando con ``M-x``, especifique el argumento numérico antes de ``M-x``. El valor del argumento aparece en el prompt mientras se lee el nombre del comando, y finalmente ``M-x`` pasa el argumento a ese comando. Por ejemplo, para pasar el argumento numérico 42 al comando ``forward-char`` puede escribir :kbd:`Ctrl`-:kbd:`u` :kbd:`4`:kbd:`2` :kbd:`Alt`-:kbd:`x` ``forward-char`` :kbd:`RETURN` (``C-u`` ``42`` ``M-x`` ``forward-char`` ``RET``). Cuando el comando que ejecuta con ``M-x`` tiene un atajo de teclado, Emacs lo menciona en el área de eco después de ejecutar el comando. Por ejemplo, si teclea :kbd:`Alt`-:kbd:`x` ``forward-word`` (``M-x`` ``forward-word``), el mensaje dice que puede ejecutar el mismo comando tecleando :kbd:`Alt`-:kbd:`f` (``M-f``). Puede desactivar estos mensajes estableciendo la variable ``suggest-key-bindings`` en ``nil``. El valor de ``suggest-key-bindings`` también puede ser un número, en cuyo caso Emacs mostrará el enlace durante tantos segundos antes de quitarlo de la pantalla. El comportamiento por defecto es mostrar el enlace durante 2 segundos. Además, cuando ``suggest-key-bindings`` es distinto de ``nil``, la lista de finalización de ``M-x`` muestra las combinaciones de teclas equivalentes para todos los comandos que las tienen. Los comandos que no tienen atajos de teclado, aún pueden ser invocados después de teclear menos que su nombre completo en el prompt ``M-x``. Emacs menciona estos atajos en el área de eco si son significativamente más cortos que el nombre completo del comando, y ``extended-command-suggest-shorter`` es distinto de ``nil``. La configuración de ``suggest-key-bindings`` también afecta a estas sugerencias. En este manual, cuando hablamos de ejecutar un comando por su nombre, a menudo omitimos el ``RET`` que termina el nombre. Así, podríamos decir :kbd:`Alt`-:kbd:`x` ``auto-fill-mode`` (``M-x`` ``auto-fill-mode``) en lugar de :kbd:`Alt`-:kbd:`x` ``auto-fill-mode`` :kbd:`RETURN` (``M-x`` ``auto-fill-mode`` ``RET``). Mencionamos ``RET`` sólo para enfatizar, como cuando el comando va seguido de argumentos. :kbd:`Alt`-:kbd:`x` (``M-x``) funciona ejecutando el comando ``execute-extended-command``, que se encarga de leer el nombre de otro comando e invocarlo.