Como definir a região (seleção) programaticamente no Emacs Lisp usando índices?

7

Dados 2 números absolutos (compatíveis com region-beginning, region-end).

Como esses números podem ser usados ​​para definir a seleção?


Edit: Se você usa o modo maligno, pode querer verificar esta questão , no momento em que perguntei que eu não sabia que isso exigia um método diferente em alguns casos.

ideasman42
fonte

Respostas:

8

A região é definida como a extensão do texto entre ponto e marca; portanto, é suficiente ajustar os dois números em questão. Os seguintes usos point-mine point-maxpara esse fim:

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

No entanto, você menciona "definir a seleção" posteriormente, então talvez você não queira apenas alterar a região (como sempre há uma região), mas ativá-la também:

(activate-mark)
wasamasa
fonte
11
Talvez valha a pena mencionar que (setq deactivate-mark nil)talvez precise ser definido em alguns casos (como você descobriu ao analisar por que a seleção de configurações às vezes falha) .
precisa saber é o seguinte
Não é exatamente como a ativação da marca funciona, é apenas que ela é desativada logo depois. Portanto, isso é material para uma nova pergunta do "Por que a marca é desativada após um comando <...>?" tipo.
Wasamasa