Đừng hoảng sợ!
Khôi phục tập tin luôn an toàn, bởi vì vim không bao giờ viết bất kỳ thay đổi nào cho đến khi bạn tự viết chúng. Vì vậy, phục hồi từ một tập tin trao đổi và sau đó đóng mà không lưu sẽ không thay đổi bất cứ điều gì.
Tổ chức trao đổi của bạn:
Nhận vim để đặt tất cả các tệp hoán đổi của bạn ở cùng một nơi, vì vậy bạn luôn biết chúng ở đâu:
set directory^=$HOME/.vim/swap//
hoặc bất cứ nơi nào bạn thích. Sử dụng //
ở cuối tên tệp khiến vim sử dụng đường dẫn tệp tuyệt đối cho tên tệp hoán đổi để bạn không bị va chạm tên. Đảm bảo thư mục tồn tại hoặc vim sẽ không sử dụng nó (nó sẽ không tạo thư mục cho bạn).
Lưu ý: Điều này chỉ hoạt động trên các biến môi trường, nếu bạn muốn sử dụng biến vimscript thì chúng ta cần sử dụng một số :execute
phép thuật:
execute "set directory^=".my_vim_home_var."/swap//"
Khác biệt:
Trợ giúp của Vim gợi ý một lệnh rất hữu ích để sử dụng trong tình huống này : :DiffOrig
. Đây không phải là một lệnh vim mặc định , vì vậy hãy sao chép việc thực hiện từ :h :DiffOrig
vào vimrc của bạn. (đó cũng là trong $VIMRUNTIME/defaults.vim
nếu bạn có vim8). Bây giờ, bạn có thể khôi phục tệp và chỉ cần chạy DiffOrig để có được một vimdiff về những gì đã thay đổi từ phiên bản chưa sửa đổi.
Nếu bạn muốn so sánh nội dung của nhiều tệp hoán đổi, hãy khôi phục tệp của bạn với từng tệp hoán đổi khác nhau, sau đó ghi kết quả vào các tệp tạm thời. Bây giờ tải lên các tệp và chạy :diffthis
trên mỗi tệp, thực hiện các thay đổi bạn muốn, ghi lại vào tệp gốc và xóa các tệp tạm thời và trao đổi.
Các lệnh hữu ích:
:swapname
: lấy tên vim đang sử dụng cho tệp hoán đổi cho bộ đệm hiện tại ( :h :swapname
)
:recover
: khôi phục tệp đã chọn, giống như khi bạn bắt đầu vim và nhấn R( :h :recover
)
Kiểm tra sự giúp đỡ:
Vim có toàn bộ phần hướng dẫn sử dụng khi khôi phục:
Trợ giúp :usr_11.txt
tham chiếu của Vim trên các tệp hoán đổi : :h swap-file
, h recovery
Trợ giúp về tùy chọn thư mục (để đặt vị trí tệp hoán đổi)::h 'directory'
Chỉnh sửa: Ví dụ đã sửa đổi để cài đặt thư mục, như được chỉ ra trong các nhận xét của @B Layer