LINUX.ORG.RU

ELisp: регекс замена


0

0

Разбираюсь с elisp. В качестве упражнения поставил себе задачу - заменить в определенном пространстве текст по регексу, как в replace-regexp. Воспользовался методом описанным в replace-regexp:
  (while (re-search-forward regexp end t)
    (replace-match to-string nil nil))

Проблема в том, что после замены точка конца смещается. Для целого буфера можно накалякать лямбду, которая будет дергать (point-max). А Для режима с выделением такой номер не прокатывает - (region-begin) и(regiond-end)начинают совпадать в процессе исполнения.

Вобщем я что то явно пропустил :) Ткните куданить в поточнее

Оказалось, что надо работать не с позициями, а с маркерами.
(copy-marker (region-end))

vasily_pupkin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.