Вот проблема, которую я решаю: преобразовать область текста в структуру данных строки для последующей обработки программой elisp.Проблема в том, что
- Я хочу, чтобы программа elisp выполнялась в интерактивном режиме, не влияя на выбор области
- , сохраняя строковое значение в переменной, чтобы я мог в дальнейшем манипулировать им.
Насколько я понимаю, регион определяется меткой и последующей позицией курсора.И я обычно выполняю программу elisp в * нуля * буфере.Кроме того, регион также находится в буфере * scratch *.
Но чтобы записать вызов функции и выполнить его в буфере, мне нужно отодвинуть курсор от конца выделения текста (региона), чтобы написать программу
(setq grabbed (buffer-substring-no-properties (region-beginning) (region-end)))
, но тогда область выбора изменится из-за движения курсора.
Так что мне интересно, как я мог бы выполнить программу elisp, сохранив выбор без изменений и все еще имея доступ к возвращаемому значению.