Як переглянути розріз, коли emacs пропонує відновити цей файл?


51

Іноді це трапляється: emacs спонукає вас до відновлення збережених змін у файлі, але ви не можете згадати, хочете ви ці зміни чи ні.

Починаючи з recover-this-fileбуфера, чи існує спосіб перегляду різниці або іншим чином безпосередньо побачити зміни?

Наприклад, щось на кшталт того, що magit-modeдає під час вкладки на відредагований файл у буфері статусу.


Відповіді:


51

Після запуску recover-this-fileта прийняття версії автоматичного збереження у вас буде модифікований буфер, що містить вміст автоматичного збереження. У цей момент ви можете використовувати, M-x diff-buffer-with-file RETщоб побачити відмінності між зміненим буфером і збереженим файлом.

Ключ, який я прив’язав до цього, насправді виконує власну функцію, щоб створити єдиний розріз та пропустити підказку для буфера (він передбачає поточний буфер).

(defun my-diff-buffer-with-file ()
  "Compare the current modified buffer with the saved version."
  (interactive)
  (let ((diff-switches "-u")) ;; unified diff
    (diff-buffer-with-file (current-buffer))))

Є також еквівалент едіффа (який я, як правило, віддаю перевагу, хоча я використовую і те й інше), який доступний у M-x ediff-current-file RET

Якщо ви хочете відхилити модифікації після перевірки різниці, вам слід мати можливість просто undoвідновити. (Якщо цього не можна використовувати revert-bufferабо find-alternate-file).

Оскільки часто пов'язані сполучення клавіш для команд diff =, я вважаю таке зручним (nb я розв'язав C-zприв'язку за замовчуванням і перемістив її замість до C-z C-z, що відкривається C-zяк префікс для спеціальних прив’язок):

(global-set-key (kbd "C-z =") 'my-diff-buffer-with-file)
(global-set-key (kbd "C-z C-=") 'ediff-current-file)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.