Wie wird die Region (Auswahl) programmgesteuert in Emacs Lisp mithilfe von Indizes festgelegt?

7

Gegeben 2 absolute Zahlen (kompatibel mit region-beginning, region-end).

Wie können diese Zahlen verwendet werden, um die Auswahl festzulegen?


Bearbeiten: Wenn Sie den bösen Modus verwenden, möchten Sie möglicherweise diese Frage überprüfen. Zum Zeitpunkt der Frage war mir nicht bewusst, dass dies in einigen Fällen eine andere Methode erfordert.

ideasman42
quelle

Antworten:

8

Der Bereich ist als die Textspanne zwischen Punkt und Markierung definiert, daher reicht es aus, beide an die betreffenden Zahlen anzupassen. Folgende Verwendungen point-minund point-maxzu diesem Zweck:

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

Sie erwähnen jedoch anschließend "Auswahl festlegen". Vielleicht möchten Sie die Region nicht nur ändern (da es immer eine Region gibt), sondern sie auch aktivieren:

(activate-mark)
Wasamasa
quelle
1
Erwähnenswert ist (setq deactivate-mark nil)möglicherweise, dass dies in einigen Fällen festgelegt werden muss (wie Sie festgestellt haben, warum die Auswahl der Einstellungen manchmal fehlschlägt) .
ideasman42
Nicht wirklich so, wie das Aktivieren der Marke funktioniert, es ist nur so, dass es gleich danach deaktiviert wird. Dies ist daher Material für eine neue Frage: "Warum wird die Markierung nach einem <...> Befehl deaktiviert?" nett.
Wasamasa