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