El exchange-point-and-mark
comando está obligado C-x C-x, pero no puedo pensar en ningún caso de uso que lo haga merecedor de un enlace tan destacado.
¿Cómo puedo usar el exchange-point-and-mark
para mejorar mi técnica de edición?
fuente
El exchange-point-and-mark
comando está obligado C-x C-x, pero no puedo pensar en ningún caso de uso que lo haga merecedor de un enlace tan destacado.
¿Cómo puedo usar el exchange-point-and-mark
para mejorar mi técnica de edición?
Se me ocurren dos casos: reactivar la región y ajustar el tamaño de la región.
La mayoría de las veces uso este enlace para reactivar la región después de ejecutar algún comando que la desactiva, o hacer algo que establece la marca y mueve el punto sin activar la región.
Por ejemplo, haga una C y busque algo hacia adelante. Presione RET para salir de la búsqueda, luego Cx Cx para marcar todo desde donde comenzó la búsqueda.
Otro ejemplo que hago mucho cuando quiero incluir algunos ejemplos de elisp en una respuesta de StackExchange:
El otro caso es cuando está marcando una región y desea extenderla / reducirla. En ese caso, es conveniente poder saltar al "otro extremo" de la región, moverlo y luego saltar hacia atrás. Si la región ya está activa, entonces presionar Cx Cx la dejará activa, permitiéndole mover cualquier extremo.
Pregúntale a Emacs: C-h r i exchange-point-and-mark RET
o, mejor C-h r i C-x C-x RET
,. Esto lo lleva a la información que se muestra a continuación.
Esto es lo que dice el manual de Emacs, Marca de configuración de nodo en respuesta a su pregunta:
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) . UsandoC-x C-x
una segunda vez, si es necesario, coloca la marca en la nueva posición con el punto nuevamente en su posición original. Normalmente, si la marca está inactiva, este comando primero reactiva la marca donde se configuró por última vez, para garantizar que la región quede resaltada. Sin embargo, si lo llama con un argumento prefijo, deja la marca inactiva y la región no resaltada; puede usar esto para saltar a la marca de manera similar aC-u C-<SPC>
.
Y esto es lo que dice al respecto en el nodo Disabled Transient Mark :
Al
transient-mark-mode
desactivar [ ] se cambia Emacs a un modo de operación alternativo:
Establecer la marca, con comandos como
C-<SPC>
oC-x C-x
, no resalta la región. Por lo tanto, no puede saber mirando dónde se encuentra la marca; Tienes que recodar.La solución habitual a este problema es establecer la marca y luego usarla pronto, antes de olvidar dónde está. También puede verificar dónde está la marca mediante el uso
C-x C-x
, que intercambia las posiciones del punto y la marca; consulte Configuración de la marca .Mientras el modo Marca transitoria está desactivado, puede activarlo temporalmente usando
C-<SPC> C-<SPC>
oC-u C-x C-x
.
y:
C-u C-x C-x
Intercambie el punto y la marca, active la marca y habilite el modo Marca transitoria temporalmente, hasta que la marca se desactive nuevamente. (Este es elC-x C-x
comandoexchange-point-and-mark
, con un argumento de prefijo).
Lo uso cuando he perdido una selección debido a alguna operación que la eliminó, y quiero restaurar la selección. Uno de estos escenarios sería:
Esto sucede cuando quiero hacer una copia de seguridad ad hoc de un área seleccionada y experimentar con la copia, como, por ejemplo, quiero buscar y reemplazar, pero no puedo pensar en una forma de hacerlo de una manera que no destruya parte del texto que debe permanecer, por lo que luego lo revertiría de la copia.
Las otras respuestas se centran en la utilidad de C-x C-x
cuándo transient-mark-mode
está activo. Pero C-x C-x
es anterior transient-mark-mode
, y es útil independientemente de ello.
El papel principal de C-x C-x
es intercambiar puntos y marcar. Esto es útil cuando está editando dos puntos en un único búfer y, por alguna razón, no quiere dividir la ventana actual. Edite, marque, muévase a otro punto en el búfer, edite, C-x C-x
edite en el lugar anterior C-x C-x
, edite un poco más, hasta la saciedad. (Si no planea volver al segundo punto, C-u C-SPC
puede ser más intuitivo. Busque el anillo de marcas en el manual de Emacs).
Cuando transient-mark-mode
está desactivado, C-x C-x
tiene otro propósito importante: le permite averiguar dónde está la región. C-x C-x
, vislumbre rápido en el punto, de C-x C-x
nuevo.
(Y en caso de que se lo pregunte, sí, algunos de nosotros todavía preferimos usar Emacs con transient-mark-mode
discapacidad).