¿Cómo establecer la región (selección) mediante programación en Emacs Lisp usando índices?

7

Dados 2 números absolutos (compatible con region-beginning, region-end).

¿Cómo se pueden usar estos números para establecer la selección?


Editar: si usa el modo malvado, es posible que desee verificar esta pregunta , al momento de preguntar no sabía que esto requería un método diferente en algunos casos.

ideasman42
fuente

Respuestas:

8

La región se define como la extensión del texto entre el punto y la marca, por lo tanto, es suficiente para ajustar ambos a los números en cuestión. Los siguientes usos point-miny point-maxpara ese fin:

(set-mark (point-min))
(goto-char (point-max))

Sin embargo, menciona "establecer la selección" después, por lo que quizás no solo desee cambiar la región (ya que siempre hay una región), sino que también la active:

(activate-mark)
wasamasa
fuente
1
Tal vez valga la pena mencionar que es (setq deactivate-mark nil)posible que deba establecerse en algunos casos (como descubrió al analizar por qué la selección de configuración a veces falla) .
ideasman42
En realidad, no es que la activación de la marca funcione, es solo que se desactiva inmediatamente después. Por lo tanto, esto es material para una nueva pregunta de "¿Por qué se desactiva la marca después de un comando <...>?" tipo.
wasamasa