Versi paling sederhana adalah: buat ~/.vim/undo-dir/
direktori dan tambahkan berikut ini ke .vimrc
:
set undodir=~/.vim/undo-dir
set undofile
Namun, ini bukan tanpa cacat, dan lebih baik dibaca terus. Dari saya sendiri .vimrc
:
" Let's save undo info!
if !isdirectory($HOME."/.vim")
call mkdir($HOME."/.vim", "", 0770)
endif
if !isdirectory($HOME."/.vim/undo-dir")
call mkdir($HOME."/.vim/undo-dir", "", 0700)
endif
set undodir=~/.vim/undo-dir
set undofile
Saya lebih suka untuk tidak mengacaukan direktori acak dengan membatalkan file. Jadi saya mengatur undodir
opsi, yang menempatkan semuanya dalam satu direktori undo. Itu menyisakan satu masalah — saya malas, dan tidak merasa ingin membuat direktori itu di semua mesin saya (saya menggunakan sistem kontrol versi untuk menyinkronkan saya .vimrc
di banyak mesin). Untungnya, cukup mudah untuk memiliki Vim memeriksa dan membuat direktori jika tidak ada.
Perhatikan juga 0700
mode pada direktori undo (itu izin penuh untuk pemilik, tidak ada izin untuk orang lain). File mana yang saya edit, kapan, dll. Harus tetap pribadi. Dan karena ini adalah direktori yang hanya dapat saya akses, saya tidak perlu khawatir tentang orang lain yang meletakkan symlink di sana, atau file undo mereka sendiri, atau apa pun yang Anda harus khawatir tentang menggunakan direktori sementara sistem.
Akhirnya, tidak menjadi direktori sistem sementara, itu tidak tunduk pada kebijakan pembersihan tempfile sistem. Seringkali, itu cukup singkat — sekitar seminggu. Tetapi agar tidak tumbuh selamanya, saya memasukkan yang berikut ini ke dalam crontab
:
# m h dom mon dow command
43 00 * * 3 find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete
Jadi setelah 90 hari tidak dimodifikasi, mereka dihapus. (Jujur, mereka tidak terlalu besar, Anda dapat dengan mudah meninggalkan mereka selamanya dengan betapa murahnya disk. Tetapi pertimbangkan juga privasi Anda sendiri jika mesin Anda pernah dikompromikan.)