Jika Anda pernah diselamatkan oleh file cadangan Emacs, Anda mungkin menginginkan lebih banyak, tidak sedikit. Sangat menjengkelkan karena mereka masuk dalam direktori yang sama dengan file yang Anda edit, tetapi itu mudah diubah. Anda dapat membuat semua file cadangan masuk ke direktori dengan meletakkan sesuatu seperti yang berikut di blog Anda
.emacs
.
(setq backup-directory-alist `(("." . "~/.saves")))
Ada sejumlah detail misterius yang terkait dengan bagaimana Emacs dapat membuat file cadangan Anda. Haruskah itu mengganti nama aslinya dan menulis buffer yang diedit? Bagaimana jika yang asli ditautkan? Secara umum, taruhan paling aman tetapi paling lambat adalah selalu membuat cadangan dengan menyalin.
(setq backup-by-copying t)
Jika itu terlalu lambat untuk beberapa alasan Anda mungkin juga perlu melihatnya
backup-by-copying-when-linked
.
Karena cadangan Anda semuanya ada di tempatnya sendiri sekarang, Anda mungkin menginginkan lebih banyak, bukan lebih sedikit. Lihat dokumentasi Emacs untuk variabel-variabel ini (dengan C-h v
).
(setq delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t)
Terakhir, jika Anda benar-benar tidak boleh memiliki file cadangan:
(setq make-backup-files nil)
Itu membuat saya muak memikirkannya.
File cadangan / penyimpanan otomatis Emacs bisa sangat membantu. Tetapi fitur-fitur ini membingungkan.
Cadangkan file
File cadangan memiliki tildes (
~
atau~9~
) di bagian akhir dan akan ditulis ke direktori home pengguna. Ketikamake-backup-files
non-nil Emacs secara otomatis membuat cadangan dari file asli saat pertama kali file disimpan dari buffer. Jika Anda mengedit file baru, Emacs akan membuat cadangan saat Anda menyimpan file kedua kali.Tidak peduli berapa kali Anda menyimpan file, cadangan tetap tidak berubah. Jika Anda membunuh buffer dan kemudian mengunjungi file lagi, atau waktu berikutnya Anda memulai sesi Emacs baru, file cadangan baru akan dibuat. Cadangan baru mencerminkan konten file setelah dibuka kembali, atau pada awal sesi pengeditan. Tetapi cadangan yang ada tidak pernah disentuh lagi. Karena itu saya merasa berguna untuk membuat cadangan bernomor (lihat konfigurasi di bawah).
Untuk membuat cadangan gunakan secara eksplisit
save-buffer
(C-x C-s
) dengan argumen awalan.diff-backup
dandired-diff-backup
membandingkan file dengan cadangannya atau sebaliknya. Tetapi tidak ada fungsi untuk mengembalikan file cadangan. Misalnya, di bawah Windows, untuk mengembalikan file cadanganitu harus disalin secara manual sebagai
Simpan file secara otomatis
Simpan otomatis file menggunakan tanda pagar (
#
) dan akan ditulis secara lokal di dalam direktori proyek (bersama dengan file yang sebenarnya). Alasannya adalah bahwa file simpan otomatis hanya file sementara yang dibuat Emacs hingga file disimpan lagi (seperti dengan kepatuhan yang terburu-buru).C-x C-s
(save-buffer
) untuk menyimpan file, Emacs menyimpan file secara otomatis - berdasarkan penghitungan penekanan tombol (auto-save-interval
) atau ketika Anda berhenti mengetik (auto-save-timeout
).Saat pengguna menyimpan file, versi yang disimpan otomatis dihapus. Tetapi ketika pengguna keluar dari file tanpa menyimpannya, Emacs atau sesi X crash, file yang disimpan secara otomatis masih ada.
Gunakan
revert-buffer
ataurecover-file
untuk mengembalikan file simpan otomatis. Perhatikan bahwa catatan Emacs sesi terputus untuk pemulihan nanti dalam file bernama ~ / .emacs.d / auto-save-list . Therecover-session
fungsi akan menggunakan informasi ini.Metode yang disukai untuk memulihkan dari arsip yang disimpan secara otomatis adalah
M-x revert-buffer RET
. Emacs akan bertanya, "Buffer telah disimpan otomatis baru-baru ini. Kembalikan dari simpan otomatis file?" atau "Kembalikan buffer dari file FILENAME?". Dalam hal yang terakhir tidak ada file simpan otomatis. Misalnya, karena Anda telah menyimpan sebelum mengetikauto-save-intervall
penekanan tombol lain , dalam hal ini Emacs telah menghapus file simpan otomatis.Auto-save saat ini dinonaktifkan secara default karena dapat memperlambat pengeditan saat terhubung ke mesin yang lambat, dan karena banyak file berisi data sensitif.
Konfigurasi
Berikut adalah konfigurasi yang paling baik digunakan IMHO:
Data sensitif
Masalah lain adalah Anda tidak ingin Emacs menyebarkan salinan file dengan data sensitif. Gunakan mode ini berdasarkan per file. Karena ini adalah mode minor, untuk keperluan saya, saya menamainya kembali
sensitive-minor-mode
.Untuk mengaktifkannya untuk semua file .vcf dan .gpg , di .emac Anda gunakan sesuatu seperti:
Atau, untuk melindungi hanya beberapa file, seperti beberapa file .txt , gunakan baris seperti
dalam file.
sumber
diff
yang sebenarnya. Lalu tembak Emacs dan cari tahu sendiri apa yangrevert-buffer
dilakukannya. Ini akan membayar dengan cepat jika terjadi keadaan darurat.The jawaban yang diterima baik, tetapi dapat sangat ditingkatkan dengan tambahan back up pada setiap menyimpan dan back up berversi file .
Pertama, pengaturan dasar seperti yang dijelaskan dalam jawaban yang diterima :
Selanjutnya, juga buat cadangan file berversi, yang Emacs tidak lakukan secara default (Anda tidak melakukan setiap save, kan?):
Akhirnya, buat cadangan pada setiap penyimpanan, bukan hanya yang pertama. Kami membuat dua jenis cadangan:
backup per-sesi: sekali pada penyimpanan pertama buffer di setiap sesi Emacs. Ini mensimulasikan perilaku cadangan default Emac.
cadangan per-simpan: sekali di setiap penyimpanan. Emacs tidak melakukan ini secara default, tetapi sangat berguna jika Anda membiarkan Emacs berjalan lama.
The backup pergi di tempat yang berbeda dan Emacs menciptakan dirs cadangan otomatis jika mereka tidak ada:
Saya menjadi sangat tertarik dengan topik ini setelah saya menulis dan
$<
bukannya$@
di dalam sayaMakefile
, sekitar tiga jam setelah komit saya sebelumnya: PDi atas didasarkan pada halaman Wiki Emacs yang saya sunting .
sumber
setq
s di bagian atas jawaban saya? Di atas berfungsi untuk saya di Emacs 24.5.1.Cara lain untuk mengonfigurasi opsi cadangan adalah melalui antarmuka Kustomisasi. Memasukkan:
Dan kemudian pada
Customize group:
prompt masukbackup
.Jika Anda menggulir ke bagian bawah buffer Anda akan melihat Backup Directory Alist . Klik Tampilkan Nilai dan atur entri pertama dari daftar sebagai berikut:
Atau, Anda dapat mengubah backup off pengaturan saya Membuat Backup File ke
off
.Jika Anda tidak ingin Emacs mengedit
.emacs
file Anda secara otomatis, Anda ingin mengatur file penyesuaian .sumber
customize-group
2 tahun yang lalu. Terima kasih!Anda dapat menonaktifkannya sama sekali dengan
sumber