В: Как мне вставить / изменить текст в буфере, не undo
замечая этого?
Вот пример использования. У меня есть блок комментариев в начале каждого файла, который, помимо прочего, обновляет временную метку для самого последнего изменения в файле. Я хотел бы иметь возможность изменять эту временную метку, не undo
обращая на это внимания.
Причина, по которой я хочу закорачивать undo
здесь, связана со следующим краевым случаем, который возникает при редактировании / компиляции документов LaTeX (и, возможно, других, но это тот, который сводит меня с ума чаще всего):
- Сделайте небольшое изменение в файле, чтобы увидеть, как это повлияет на скомпилированный документ
- Сохраните файл (который обновляет отметку времени)
- Запустите
latex
файл - Решите, что изменение плохое
undo
перемены
Проблема на этапе (5) ( undo
) состоит в том, что он не отменяет изменения, сделанные на этапе (1), а скорее отменяет обновление метки времени на этапе (2). Это не будет беспокоить меня (я мог бы просто еще undo
раз), за исключением того, что оно также перемещает точку до отметки времени в верхней части файла, которая почти всегда на много-много строк от фактического существенного изменения. Это очень неприятно и полностью нарушает мою концентрацию.
Я задаю вопрос относительно файла, который я посещаю, но в целом он касается модификации буферов.
Итак: как я могу не undo
заметить конкретную модификацию буфера?
undo
отменяет оба.
with-undo-collapse
макрос, который был очень полезен: emacs.stackexchange.com/a/7560/2418