Phiên bản đơn giản nhất là: tạo ~/.vim/undo-dir/
thư mục và thêm các mục sau vào .vimrc
:
set undodir=~/.vim/undo-dir
set undofile
Tuy nhiên, nó không hoàn hảo, và tốt hơn là đọc tiếp. Từ riêng tôi .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
Tôi không muốn làm lộn xộn các thư mục ngẫu nhiên với các tập tin hoàn tác. Vì vậy, tôi đặt undodir
tùy chọn, đặt tất cả chúng trong một thư mục hoàn tác. Điều đó gây ra một vấn đề. Tôi lười biếng và không cảm thấy muốn tạo thư mục đó trên tất cả các máy của mình (Tôi sử dụng hệ thống kiểm soát phiên bản để đồng bộ hóa .vimrc
trên một loạt các máy). Rất may, thật dễ dàng để Vim kiểm tra và tạo các thư mục nếu chúng không tồn tại.
Cũng lưu ý 0700
chế độ trên thư mục hoàn tác (đó là quyền đầy đủ cho chủ sở hữu, không có quyền cho bất kỳ ai khác). Những tập tin nào tôi đã chỉnh sửa, khi nào, v.v. nên ở chế độ riêng tư. Và vì đây là thư mục duy nhất tôi có thể truy cập, tôi không phải lo lắng về việc người khác sẽ đặt liên kết tượng trưng vào đó, hoặc tệp hoàn tác của riêng họ hoặc bất cứ điều gì bạn phải lo lắng khi sử dụng thư mục tạm thời của hệ thống.
Cuối cùng, không phải là một thư mục tạm thời của hệ thống, nó không chịu sự điều chỉnh của chính sách dọn dẹp tempfile hệ thống. Thông thường, đó là khá ngắn một tuần hoặc lâu hơn. Nhưng để giữ cho nó phát triển mãi mãi, tôi đặt những điều sau đây vào crontab
:
# m h dom mon dow command
43 00 * * 3 find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete
Vì vậy, sau 90 ngày không được sửa đổi, họ đã bị xóa. (Thành thật mà nói, chúng không thực sự lớn như vậy, bạn có thể dễ dàng rời khỏi chúng mãi mãi với giá rẻ như thế nào. Nhưng hãy xem xét cả quyền riêng tư của bạn nếu máy của bạn bị xâm phạm.)