Emacs bu dosyayı kurtarmayı önerdiğinde diff nasıl görülür?


51

Bazen olur: emacs, bir dosyadaki kaydedilmemiş değişiklikleri kurtarma konusunda sizi uyarır ancak bu değişiklikleri isteyip istemediğinizi hatırlayamazsınız.

Tampondan başlayarak, recover-this-filebir farklılığı görmenin ya da değişiklikleri doğrudan görmenin bir yolu var mı?

Örneğin magit-mode, durum arabelleğinde düzenlenen bir dosyada sekme yaparken ne gibi bir şey .


Yanıtlar:


51

Otomatik recover-this-filekaydetme sürümünü çalıştırdıktan ve kabul ettikten sonra , otomatik kaydetme içeriğini içeren değiştirilmiş bir arabellekiniz olur. Bu noktada M-x diff-buffer-with-file RET, değiştirilen arabellek ile kaydedilen dosya arasındaki farkları görmek için kullanabilirsiniz .

Bunun için bağladığım anahtar aslında birleştirilmiş bir fark üretmek ve arabellek istemini atlamak için (geçerli arabellek varsayar) atlamak için özel bir işlevi çalıştırıyor.

(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))))

Ayrıca mevcut olan bir ediff eşdeğeri (genellikle her ikisini de kullanmam rağmen tercih ederim) vardır M-x ediff-current-file RET

Değişikliği kontrol ettikten sonra değişiklikleri reddetmek istiyorsanız, sadece undokurtarma işlemini yapabilmelisiniz . (Her zaman revert-bufferya da kullanabilirsiniz find-alternate-file.)

Diff komutları için sık sık bağlamalar sık sık içerdiğinden =, aşağıdakileri kullanışlı buluyorum (nb, varsayılan C-zbağlamayı çözdüm ve bunun yerine C-z C-z, C-zözel bağlamalar için önek olarak açılır ):

(global-set-key (kbd "C-z =") 'my-diff-buffer-with-file)
(global-set-key (kbd "C-z C-=") 'ediff-current-file)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.