Najprostsza wersja to: utwórz ~/.vim/undo-dir/
katalog i dodaj następujące elementy do .vimrc
:
set undodir=~/.vim/undo-dir
set undofile
Jednak nie jest bezbłędny i lepiej czytać dalej. Z mojego własnego .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
Wolę nie zaśmiecać losowych katalogów plikami cofania. Ustawiłem więc undodir
opcję, która umieszcza je wszystkie w jednym katalogu cofania. Pozostaje jeden problem - jestem leniwy i nie mam ochoty tworzyć tego katalogu na wszystkich moich komputerach (używam systemu kontroli wersji do synchronizowania moich .vimrc
na wielu komputerach). Na szczęście Vim może łatwo sprawdzić i utworzyć katalogi, jeśli nie istnieją.
Zwróć także uwagę na 0700
tryb w katalogu cofania (to pełne uprawnienia dla właściciela, brak uprawnień dla kogokolwiek innego). Które pliki, które edytowałem, kiedy itp. Powinny pozostać prywatne. A ponieważ jest to katalog, do którego tylko ja mogę uzyskać dostęp, nie muszę się martwić, że ktoś w nim umieści dowiązanie symboliczne, własny plik cofania lub cokolwiek, co musiałoby się martwić o użycie systemowego katalogu tymczasowego.
Wreszcie, nie będąc tymczasowym katalogiem systemowym, nie podlega zasadom czyszczenia plików tymczasowych systemu. Często jest to dość krótkie - około tygodnia. Ale aby nie rosnąć wiecznie, umieszczam w moim crontab
:
# m h dom mon dow command
43 00 * * 3 find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete
Więc po 90 dniach bez modyfikacji są usuwane. (Szczerze mówiąc, nie są tak duże, możesz łatwo zostawić je na zawsze z tym, jak tani jest dysk. Ale weź pod uwagę swoją prywatność, jeśli kiedykolwiek twoja maszyna zostanie naruszona.)