Найпростіша версія: створити ~/.vim/undo-dir/
каталог і додати наступне до .vimrc
:
set undodir=~/.vim/undo-dir
set undofile
Однак це не бездоганно, і краще читати далі. З мого власного .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
Я вважаю за краще не захаращувати випадкові каталоги з скасуванням файлів. Тож я встановив undodir
параметр, який розміщує їх усіх в одному скасуванні каталогу. Це залишає одну проблему - я ледачий, і мені не здається створювати цей каталог на всіх моїх машинах (я використовую систему контролю версій для синхронізації моїх .vimrc
вершин у багатьох машинах). На щастя, досить легко попросити Vim перевірити і створити каталоги, якщо вони не існують.
Зверніть увагу також і на 0700
режим скасування режиму (це повні дозволи для власника, жодні дозволи для інших). Які файли я редагував, коли і т. Д. Повинні залишатися приватними. А оскільки це лише каталог, до якого я можу отримати доступ, мені не потрібно турбуватися про те, щоб хтось там вклав симпосилання, або власний файл скасування, або все, що вам потрібно буде турбуватися про використання системного тимчасового каталогу.
Нарешті, не будучи тимчасовим каталогом системи, він не підпадає під дію політики очищення системних темпфілів. Часто це досить коротко - тиждень або близько того. Але щоб вона не зростала назавжди, я вклав у своє crontab
:
# m h dom mon dow command
43 00 * * 3 find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete
Тож через 90 днів, коли їх не змінювали, їх видаляють. (Чесно кажучи, вони насправді не такі великі, ви можете легко залишити їх назавжди за допомогою дешевого диска. Але врахуйте також свою конфіденційність, якщо ваша машина коли-небудь буде порушена.)