.. _12: 12 La marca y la región ======================= Emacs, como muchas otras aplicaciones, le permite seleccionar alguna parte arbitraria del texto del buffer e invocar comandos que operan sobre dicho *texto seleccionado*. En Emacs, llamamos *región* al texto seleccionado; su manejo es muy similar al del texto seleccionado en otros programas, pero también hay diferencias importantes. La región es la porción del buffer entre *la marca* y la posición actual del *punto*. Puede definir una región colocando la marca en algún lugar (por ejemplo, con el comando ``C-SPC``) y moviendo el punto hasta donde desee que termine la región. (O puede usar el ratón para definir una región). La región siempre se extiende entre el punto y la marca, independientemente de cuál de ellos se encuentre antes en el texto; cada vez que mueve el punto, la región cambia. Al colocar la marca en una posición del texto, ésta se *activa*. Cuando la marca está activa, decimos también que la región está activa; Emacs indica su extensión resaltando el texto dentro de ella, usando la cara de la ``region`` (ver :ref:`50.1.5`). Después de ciertos comandos que no son de movimiento, incluyendo cualquier comando que cambie el texto en el buffer, Emacs desactiva automáticamente la marca; esto apaga el resaltado. También puede desactivar explícitamente la marca en cualquier momento, tecleando :kbd:`Ctrl`-:kbd:`g` (``C-g``) (véase :ref:`51`). Muchos comandos limitan el texto sobre el que actúan a la región activa. Por ejemplo, el comando :kbd:`Alt`-:kbd:`%` (``M-%``) (que reemplaza el texto coincidente) normalmente funciona en toda la porción accesible del buffer, pero si tiene una región activa, funcionará sólo en esa región. La marca es útil aunque no esté activa. Por ejemplo, puede desplazarse a ubicaciones de marcas anteriores usando el anillo de marcas. Véase :ref:`12.4`. Además, algunos comandos tendrán efecto incluso en una región inactiva (por ejemplo, *upcase-region*). También puede reactivar la región con comandos como :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`x` (``C-x C-x``). El comportamiento anterior, que es el predeterminado en las sesiones interactivas, se conoce como modo Marca Transitoria. Deshabilitando el modo de Marca Transitoria cambia Emacs a un comportamiento alternativo, en el que la región normalmente no está resaltada. Véase :ref:`12.6`. Establecer la marca en un buffer no tiene efecto en las marcas de otros buffers. Cuando vuelva a un búfer con una marca activa, la marca estará en el mismo lugar que antes. Cuando varias ventanas muestran el mismo búfer, pueden tener diferentes valores de punto y, por tanto, diferentes regiones, pero todas comparten una posición de marca común. Véase :ref:`21`. Normalmente, sólo la ventana seleccionada resalta su región; sin embargo, si la variable ``highlight-nonselected-windows`` es distinta de ``nil``, cada ventana resalta su propia región. Existe otro tipo de región: la región rectangular. Véase :ref:`13.5`. .. _12.1: 12.1 Fijar la Marca ------------------- A continuación se indican algunos comandos para fijar la marca: :kbd:`Ctrl`-:kbd:`SPACE` (``C-SPC``) Coloca la marca en el punto y la activa (``set-mark-command``). :kbd:`Ctrl`-:kbd:`@` (``C-@``) Lo mismo que el anterior. :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`x` (``C-x C-x``) Coloca la marca en el punto y la activa; a continuación, mueve el punto donde estaba la marca (``exchange-point-and-mark``). Arrastrar con ``ratón-1`` Establece el punto y la marca alrededor del texto que arrastra. ``ratón-3`` Coloca la marca en el punto y, a continuación, desplaza el punto al lugar en el que hace clic (``mouse-save-then-kill``). Desplazar con Teclas de Movimiento del Cursor Fija la marca en el punto si la marca está inactiva, luego mueve el punto. Véase :ref:`12.6`. La forma más común de fijar la marca es con ``C-SPC`` (``set-mark-command``) [5]_. Esto fija la marca donde está el punto, y la activa. A continuación, puede mover el punto, dejando la marca detrás. Por ejemplo, supongamos que desea convertir parte del búfer a mayúsculas. Para ello, vaya a un extremo del texto deseado, escriba :kbd:`Ctrl`-:kbd:`SPACE` (``C-SPC``) y mueva el punto hasta que la parte deseada del texto quede resaltada. Ahora teclee :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`u` (``C-x C-u``, ``upcase-region``, región de mayúsculas). Esto convierte el texto de la región a mayúsculas y desactiva la marca. Siempre que la marca esté activa, puede desactivarla tecleando :kbd:`Ctrl`-:kbd:`g` (``C-g``) (véase :ref:`51`). La mayoría de los comandos que operan sobre la región también desactivan automáticamente la marca, como ``C-x C-u`` en el ejemplo anterior. En lugar de activar la marca para operar en una región, también puede usarla para recordar una posición en el buffer (tecleando :kbd:`Ctrl`-:kbd:`SPACE` :kbd:`Ctrl`-:kbd:`SPACE` (``C-SPC C-SPC``)), y más tarde saltar de nuevo allí (tecleando :kbd:`Ctrl`-:kbd:`u` :kbd:`Ctrl`-:kbd:`SPACE` (``C-u C-SPC``)). Véase :ref:`12.4`, para más detalles. El comando :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`x` (``C-x C-x``, ``exchange-point-and-mark``) intercambia las posiciones del punto y la marca. :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`x` (``C-x C-x``) es útil cuando está satisfecho con la posición del punto pero desea mover el otro extremo de la región (donde está la marca). Si es necesario, al usar ``C-x C-x`` por segunda vez, la marca se coloca en la nueva posición y el punto vuelve a su posición original. Normalmente, si la marca está inactiva, este comando reactiva primero la marca donde se fijó por última vez, para asegurarse de que la región queda resaltada. Sin embargo, si lo llama con un argumento prefijo, deja la marca inactiva y la región sin resaltar; puede usarlo para saltar a la marca de forma similar a ``C-u C-SPC``. También puede fijar la marca con el ratón. Si pulsa el botón izquierdo del ratón (``down-mouse-1``) y arrastra el ratón a través de un rango de texto, esto establece la marca donde pulsó por primera vez el botón del ratón y pone el punto donde lo suelta. Alternativamente, pulsar el botón derecho del ratón (``mouse-3``, ratón-3) fija la marca en el punto y luego mueve el punto al lugar donde pulsó. Para una descripción más detallada de estos comandos del ratón, véase :ref:`22.1`. Por último, puede fijar la marca manteniendo pulsada la tecla Mayús (:kbd:`Shift`) mientras escribe determinados comandos de movimiento del cursor (como ``S-DERECHA`` (:kbd:`Shift`-:kbd:`→`), ``S-C-f`` (:kbd:`Shift`-:kbd:`Ctrl`-:kbd:`f`), ``S-C-n`` (:kbd:`Shift`-:kbd:`Ctrl`-:kbd:`n`), etc.). Esto se denomina *selección de mayúsculas*. Establece la marca en el punto antes de mover el punto, pero sólo si no hay ninguna marca activa establecida mediante una selección de mayúsculas anterior o comandos del ratón. La marca establecida por comandos del ratón y por la selección con mayúsculas se comporta de forma ligeramente diferente a la marca habitual: cualquier comando de movimiento del cursor sin mayúsculas posterior la desactiva automáticamente. Para más detalles, consulte :ref:`12.6`. Muchos comandos que insertan texto, como :kbd:`Ctrl`-:kbd:`y` (``C-y``, ``yank``), fijan la marca en el otro extremo del texto insertado, sin activarla. Esto le permite volver fácilmente a esa posición (véase :ref:`12.4`). Puede saber que un comando hace esto cuando muestra ``Mark set`` (Marca fijada) en el área de eco. En X, cada vez que la región activa cambia, Emacs guarda el texto de la región en la *selección primaria*. Esto le permite insertar ese texto en otras aplicaciones X haciendo clic con ``ratón-2``. Ver :ref:`13.3.2`. .. [5] No existe un carácter ``C-SPC`` en ASCII; normalmente, al teclear ``C-SPC`` en un terminal de texto se obtiene el carácter ``C-@``. Esta tecla también está vinculada a ``set-mark-command``, por lo que a menos que tenga la mala suerte de tener un terminal de texto que se comporte de forma diferente, puede pensar en ``C-@`` como ``C-SPC``. .. _12.2: 12.2 Comandos para Marcar Objetos Textuales ------------------------------------------- Estos son los comandos para colocar el punto y la marca alrededor de un objeto textual, como una palabra, una lista, un párrafo o una página: :kbd:`Alt`-:kbd:`@` (``M-@``) Coloca la marca al final de la palabra siguiente (``mark-word``). Esto no mueve el punto. :kbd:`Ctrl`-:kbd:`Alt`-:kbd:`@` (``C-M-@``) Marca el final de la siguiente expresión compuesta (``mark-sexp``). Esto no mueve el punto. :kbd:`Alt`-:kbd:`h` (``M-h``) Mueve el punto al principio del párrafo actual, y fija la marca al final (``mark-paragraph``). :kbd:`Ctrl`-:kbd:`Alt` :kbd:`h` (``C-M-h``) Mueve el punto al principio de la definición de función actual y fija la marca al final (``mark-defun``). :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`p` (``C-x C-p``) Mueve el punto al principio de la página actual, y fija la marca al final (``mark-page``). :kbd:`Ctrl`-:kbd:`x` :kbd:`h` (``C-x h``) Mueve el punto al principio del buffer, y fija la marca al final (``mark-whole-buffer``). ``M-@``, (``mark-word``, marcar palabra) coloca la marca al final de la palabra siguiente (véase :ref:`26.1`, para obtener información sobre las palabras). Las invocaciones repetidas de este comando amplían la región haciendo avanzar la marca una palabra cada vez. Como excepción, si la marca está activa y situada antes del punto, ``M-@`` desplaza la marca hacia atrás desde su posición actual una palabra cada vez. Este comando también acepta un argumento numérico *n*, que le indica que avance la marca *n* palabras. Un argumento negativo *-n* hace retroceder la marca *n* palabras. Del mismo modo, ``C-M-@`` (``marca-sexp``) coloca la marca al final de la siguiente expresión equilibrada (véase :ref:`27.4.1`). Las invocaciones repetidas extienden la región a expresiones posteriores, mientras que los argumentos numéricos positivos o negativos desplazan la marca hacia delante o hacia atrás el número de expresiones especificado. Los demás comandos de la lista anterior establecen tanto el punto como la marca, para delimitar un objeto en el búfer. ``M-h`` (``mark-paragraph``) marca párrafos (véase véase :ref:`26.4`), ``C-M-h`` (``mark-defun``) marca definiciones de nivel superior (véase :ref:`27.2`), y ``C-x C-p`` (``mark-page``) marca páginas. Las invocaciones repetidas juegan de nuevo el mismo papel, extendiendo la región a objetos consecutivos; de forma similar, los argumentos numéricos especifican por cuántos objetos mover la marca. ``C-x h`` (``mark-whole-buffer``) establece todo el buffer como región, poniendo el punto al principio y la marca al final. .. _12.3: 12.3 Operar en la Región ------------------------ Una vez que tenga una región, aquí tiene algunas formas de operar sobre ella: * Matar con :kbd:`Ctrl`-:kbd:`w` (``C-w``, ver :ref:`13`). * Copiar en el anillo de muerte con :kbd:`Alt`-:kbd:`w` (``M-w``, vea :ref:`13.2`). * Convertir mayúsculas y minúsculas con :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`l` (``C-x C-l``) o :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`u` (``C-x C-u``) (ver :ref:`26.7`). * Deshacer los cambios en su interior con :kbd:`Ctrl`-:kbd:`u` :kbd:`Ctrl`-:kbd`/` (``C-u C-/``, ver :ref:`17.1`). * Reemplazar texto con :kbd:`Alt`-:kbd:`%` (``M-%``, ver :ref:`16.10.4`). * Aplicar sangría con :kbd:`Ctrl`-:kbd:`x` :kbd:`TAB` (``C-x TAB``) o :kbd:`Ctrl`-:kbd:`Alt`-:kbd:`\\` (``C-M-\`` , ver :ref:`25`). * Rellenar como texto con :kbd:`Alt`-:kbd:`x` (``M-x``) ``fill-region`` (véase :ref:`26.6`). * Comprobar la ortografía de las palabras que contiene con :kbd:`Alt`-:kbd:`$` (``M-$``, consulte :ref:`17.4`). * Evaluar como código Lisp con ``M-x`` ``eval-region`` (vea :ref:`28.9`). * Guardar en un registro con :kbd:`Ctrl`-:kbd:`x` :kbd:`r`:kbd:`s` (``C-x r s``, vea :ref:`14`). * Guardarlo en un buffer o en un fichero (vea :ref:`13.4`). Algunos comandos tienen un comportamiento por defecto cuando la marca está inactiva, pero operan en la región si la marca está activa. Por ejemplo, ``M-$`` (``ispell-word``) normalmente comprueba la ortografía de la palabra en el punto, pero comprueba el texto en la región si la marca está activa (véase :ref:`17.4`). Normalmente, estos comandos utilizan su comportamiento por defecto si la región está vacía (es decir, si la marca y el punto están en la misma posición). Si desea que operen en la región vacía, cambie la variable ``use-empty-active-region`` a ``t``. Como se describe en :ref:`8.3` Borrar texto, los comandos ``DEL`` (``backward-delete-char``) y ``Delete`` (``delete-forward-char``) también actúan de esta forma. Si la marca está activa, borran el texto de la región. (Como excepción, si proporciona un argumento numérico *n*, donde *n* no es uno, estos comandos borran *n* caracteres independientemente de si la marca está activa). Si cambia la variable ``delete-active-region`` a ``nil``, estos comandos no actuarán de forma diferente cuando la marca esté activa. Si cambia el valor a *kill* (matar), estos comandos matan la región en lugar de borrarla (véase :ref:`13`). Otros comandos operan siempre sobre la región y no tienen un comportamiento predeterminado. Estos comandos suelen llevar la palabra región en sus nombres, como ``C-w`` (``kill-region``) y ``C-x C-u`` (``upcase-region``). Si la marca está inactiva, actúan sobre la región inactiva, es decir, sobre el texto situado entre el punto y la posición en la que se estableció la marca por última vez (véase :ref:`12.1`). Para desactivar este comportamiento, cambie la variable ``mark-even-if-inactive`` a ``nil``. Entonces estos comandos señalarán un error si la marca está inactiva. Por defecto, la inserción de texto se produce normalmente incluso si la marca está activa; por ejemplo, al escribir a se inserta el carácter ``a`` y, a continuación, se desactiva la marca. El modo Borrar selección (Delete Selection mode), un modo secundario, modifica este comportamiento: si activa este modo, la inserción de texto mientras la marca está activa hace que el texto de la región se borre primero. Sin embargo, puede ajustar este comportamiento personalizando la opción ``delete-selection-temporary-region`` (borrar-selección-región-temporal). Su valor predeterminado es ``nil``, pero puede establecerlo en ``t``, en cuyo caso sólo se reemplazarán las regiones temporalmente activas: las que se establezcan arrastrando el ratón (véase :ref:`12.1`) o mediante selección con Mayúsculas (véase :ref:`12.6`), así como mediante :kbd:`Ctrl`-:kbd:`u` :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`x` (``C-u C-x C-x``) cuando el Modo de Marca Transitoria esté desactivado. Puede ajustar aún más el comportamiento estableciendo ``delete-selection-temporary-region`` en ``selection``: entonces no se reemplazarán las regiones temporales mediante ``C-u C-x C-x``, sino sólo las activadas al arrastrar el ratón o mediante shift-selection. Para activar o desactivar el modo Eliminar selección (Delete Selection mode), escriba ``M-x delete-selection-mode``. .. _12.4: 12.4 El Anillo de Marcas ------------------------ Cada búfer recuerda las ubicaciones anteriores de la marca, en el *anillo de marcas*. Los comandos que fijan la marca también empujan la marca anterior a este anillo. Uno de los usos del anillo de marcas es recordar puntos a los que puede querer volver. :kbd:`Ctrl`-:kbd:`SPACE` :kbd:`Ctrl`-:kbd:`SPACE` (``C-SPC C-SPC``) Coloca la marca, empujándola sobre el anillo de marca, sin activarla. :kbd:`Ctrl`-:kbd:`u` :kbd:`Ctrl`-:kbd:`SPACE` (``C-u C-SPC``) Mueve el punto a donde estaba la marca y restaure la marca del anillo de marcas anteriores. El comando ``C-SPC C-SPC`` es útil cuando se quiere usar la marca para recordar una posición a la que se desea volver. Empuja el punto actual al anillo de marca, sin activar la marca (lo que haría que Emacs resaltara la región). En realidad se trata de dos invocaciones consecutivas de ``C-SPC`` (``set-mark-command``); la primera ``C-SPC`` activa la marca, y la segunda ``C-SPC`` la desactiva. (Cuando el modo de marca transitoria (Transient Mark mode) está desactivado, ``C-SPC C-SPC`` activa en su lugar el modo de marca transitoria temporalmente; véase :ref:`12.7`). Para volver a una posición marcada, use ``set-mark-command`` con un argumento prefijo: ``C-u C-SPC``. Esto mueve el punto a donde estaba la marca, y desactiva la marca si estaba activa. Cada ``C-u C-SPC`` posterior salta a una posición anterior almacenada en el anillo de marcas. Las posiciones por las que se desplaza de este modo no se pierden; van al final del anillo. Si establece ``set-mark-command-repeat-pop`` como no nulo, inmediatamente después de escribir ``C-u C-SPC``, puede escribir ``C-SPC`` en lugar de ``C-u C-SPC`` para recorrer el anillo de marcas. Por defecto, ``set-mark-command-repeat-pop`` es ``nil``. Cada búfer tiene su propio anillo de marcas. Todos los comandos de edición utilizan el anillo de marcas del búfer actual. En particular, ``C-u C-SPC`` siempre permanece en el mismo búfer. La variable ``mark-ring-max`` especifica el número máximo de entradas a mantener en el anillo de marcas. Por defecto es de 16 entradas. Si existen tantas entradas y se introduce otra, se descarta la más antigua de la lista. Repitiendo ``C-u C-SPC`` hace un ciclo a través de las posiciones actualmente en el anillo. Si desea volver al mismo lugar una y otra vez, puede que el anillo de marcas no sea lo suficientemente práctico. Si es así, puede grabar la posición en un registro para recuperarla más tarde (consulte :ref:`14.1`). 12.5 El Anillo de Marcas Global ------------------------------- Además del anillo de marcas ordinario que pertenece a cada búfer, Emacs tiene un único *anillo de marcas global*. Cada vez que establezca una marca, ésta se registra en el anillo de marcas global además del propio anillo de marcas del búfer actual, si ha cambiado de búfer desde el anterior ajuste de marca. Por lo tanto, el anillo de marca global registra una secuencia de memorias intermedias en las que ha estado y, para cada memoria intermedia, un lugar en el que ha establecido la marca. La longitud del anillo de marca global está controlada por ``global-mark-ring-max``, y es 16 por defecto. El comando :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`SPACE` (``C-x C-SPC``, ``pop-global-mark``) salta al búfer y a la posición de la última entrada en el anillo global. También gira el anillo, de modo que los usos sucesivos de ``C-x C-SPC`` le llevan a búferes y posiciones de marca anteriores. .. _12.6: 12.6 Selección mediante Mayúsculas (Shift) ------------------------------------------ Si mantiene pulsada la tecla :kbd:`Shift` mientras escribe un comando de movimiento del cursor, se establece la marca antes de mover el punto, de modo que la región se extiende desde la posición original del punto hasta su nueva posición. Esta función se denomina *selección con Mayúsculas* (shift-selection). Es similar a la forma en que se selecciona texto en otros editores. La marca establecida a través de la selección de Mayúsculas se comporta de forma un poco diferente a la descrita anteriormente. En primer lugar, además de las formas habituales de desactivar la marca (como cambiar el texto del búfer o teclear :kbd:`Ctrl`-:kbd:`g` (``C-g``)), la marca se desactiva con cualquier comando de movimiento del cursor *sin desplazamiento*. En segundo lugar, cualquier comando de movimiento del cursor desplazado posterior evita volver a activar la marca. Por lo tanto, una serie de comandos de movimiento del cursor *desplazado* ajustará continuamente la región. La selección mediante mayúsculas sólo funciona si la tecla de movimiento del cursor desplazado no está asociada a un comando independiente (véase :ref:`50`). Por ejemplo, si vincula :kbd:`Shift`-:kbd:`Ctrl`-:kbd:`f` (``S-C-f``) a otro comando, al teclear :kbd:`Shift`-:kbd:`Ctrl`-:kbd:`f` se ejecutará ese comando en lugar de realizar una versión de :kbd:`Ctrl`-:kbd:`f` (``C-f``, ``forward-char``) con selección de mayúsculas. Una marca establecida mediante comandos del ratón se comporta igual que una marca establecida mediante la selección por desplazamiento (véase :ref:`12.1`). Por ejemplo, si especifica una región arrastrando el ratón, puede seguir ampliando la región mediante comandos de movimiento del cursor desplazado. En ambos casos, cualquier comando de movimiento del cursor sin desplazamiento desactiva la marca. Para desactivar la selección por mayúsculas, establezca el modo ``shift-select-mode`` (modo selección por desplazamiento) en ``nil``. Al hacerlo, no se desactiva el establecimiento de la marca mediante comandos del ratón. Si establece ``shift-select-mode`` en el valor ``permanent``, las teclas de movimiento del cursor que no hayan sido desplazadas por shift no desactivarán la marca, por lo que, por ejemplo, la región establecida por comandos anteriores puede ampliarse mediante shift-selection (selección de mayúsculas), y las teclas de movimiento del cursor no desplazadas ampliarán la región establecida por *selección de mayúsculas*. .. _12.7: 12.7 Desactivar el Modo de Marca Transitoria -------------------------------------------- El comportamiento por defecto de la marca y la región, en el que al fijar la marca se activa ésta y se resalta la región, se denomina Transient Mark mode (modo Marca Transitoria). Se trata de un modo menor que está activado por defecto en las sesiones interactivas. Puede activarse con M-``x transient-mark-mode``, o con la opción ``Highlight Active Region`` (Resaltar Región Activa) del menú ``Options`` (Opciones). Si se desactiva, Emacs pasa a un modo de funcionamiento alternativo: * Al fijar la marca, con comandos como :kbd:`Ctrl`-:kbd:`SPACE` (``C-SPC``) o :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`x` (``C-x C-x``), no se resalta la región. Por lo tanto, no se puede saber con sólo mirar dónde se encuentra la marca; hay que acordarse. La solución habitual a este problema es fijar la marca y utilizarla pronto, antes de que se le olvide dónde está. También puede comprobar dónde está la marca utilizando ``C-x C-x``, que intercambia las posiciones del punto y de la marca (véase :ref:`12.1`). * Algunos comandos, que normalmente actúan sobre la región cuando la marca está activa, ya no lo hacen. Por ejemplo, normalmente (``M-%``, ``query-replace``, consulta-reemplazo) realiza reemplazos dentro de la región, si la marca está activa. Cuando el modo de marca transitoria está desactivado, siempre actúa desde el punto hasta el final de la memoria intermedia. Los comandos que actúan de este modo se identifican en su propia documentación. Mientras el modo Marca Transitoria (Transient Mark mode) está desactivado, puede activarlo temporalmente utilizando :kbd:`Ctrl`-:kbd:`SPACE` :kbd:`Ctrl`-:kbd:`SPACE` (``C-SPC C-SPC``) o :kbd:`Ctrl`-:kbd:`u` :kbd:`Ctrl`-:kbd:`x` :kbd:`Ctrl`-:kbd:`x` (``C-u C-x C-x``). :kbd:`Ctrl`-:kbd:`SPACE` :kbd:`Ctrl`-:kbd:`SPACE` (``C-SPC C-SPC``) Establece la marca en el punto (como ``C-SPC`` normal) y activa el modo Marca Transitoria (Transient Mark mode) sólo una vez, hasta que la marca se desactiva. (En realidad, no se trata de un comando independiente; está usando el comando ``C-SPC`` dos veces). :kbd:`Ctrl`-:kbd:`u` :kbd:`Ctrl`-:kbd:`x` :kbd:`x` (``C-u C-x C-x``) Intercambia punto y marca, activa la marca y habilita temporalmente el modo Marca Transitoria (Transient Mark mode), hasta la siguiente desactivación de la marca. (Se trata del comando ``C-x C-x``, ``exchange-point-and-mark``, con un argumento de prefijo). Estos comandos establecen o activan la marca, y habilitan el modo Marca Transitoria sólo hasta que se desactiva la marca. Una de las razones por las que es posible que desee utilizarlos es que algunos comandos operan en todo el búfer intermedia en lugar de en la región cuando el modo Marca transitoria está desactivado. La activación momentánea del modo Marca Transitoria permite utilizar estos comandos en la región. Cuando especifique una región con el ratón (véase :ref:`12.1`), o con la selección de mayúsculas (véase :ref:`12.6`), también se activará temporalmente el modo Marca Transitoria y se resaltará la región.