Làm thế nào để tôi có được vim để giữ lịch sử hoàn tác của nó?


36

Nếu tôi đang chỉnh sửa hai tệp bằng vim, việc đổi sang tệp khác (: bnext ,: bprev) dường như bỏ lịch sử hoàn tác khỏi tệp đang mở - nhấn vào báo cáo khóa 'u' "Đã thay đổi cũ nhất".

Ví dụ:

  1. vim testfile1 testfile2
  2. thêm một số thứ vào testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! không thể hoàn tác!

Có cách nào để giữ lịch sử này cho bộ đệm không nhìn thấy?


thay vào đó nên ở trong superuser hoặc stackoverflow?
Ressu

@Ressu - điểm tốt, làm thế nào để chúng tôi nói? Câu hỏi meta được đăng: meta.ubfox.stackexchange.com/questions/47/ Kẻ
Jeremy Kerr

Tùy thuộc vào kết quả của câu hỏi meta đó, tôi có khả năng xóa câu hỏi này.
Jeremy Kerr

Câu trả lời:


42

Phiên bản mới nhất của vim (7.3) đã hoàn tác liên tục, để bạn có thể thực hiện thay đổi, đóng hoàn toàn vim (thậm chí tắt máy và khởi động lại), khởi động lại vim và hoàn tác. Trong của bạn .vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/

11
Lưu ý rằng bạn phải tạo thư mục trước, vim không tự động làm điều đó. Hoàn tác các tệp được lưu bằng đường dẫn hệ thống tệp (cùng lúc khi lưu tệp). Nếu bạn đang ở /home/peter, sau đó chỉnh sửa .bashrcsẽ tạo tập tin /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn

19

Có vẻ như điều này sẽ làm điều đó:

:set hidden

(trong .vimrc)


1

Bạn có thể sử dụng Viewports .
"vim -o testfile1 testfile2" - mở các tệp trong cửa sổ chia nhỏ.
": sp tên tệp" - tách và mở "tên tệp".
": tên tệp vsp" - tách dọc và mở "tên tệp".
"Ctrl + w + mũi tên" - Thay đổi chế độ xem.


Tôi không muốn giữ một bộ đệm hiển thị vĩnh viễn cho mỗi tệp; Không có gì lạ khi mở> 20 tệp cùng một lúc.
Jeremy Kerr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.