Đây là một số tùy chọn tuyệt vời: emacs-24, chế độ ác (sử dụng các ràng buộc vim trong emacs) và hoàn tác cây.Làm thế nào để thay đổi mức độ chi tiết của hoàn tác trong chế độ độc ác với undo-tree?
Tuy nhiên, khi tôi đang ở chế độ chỉnh sửa (chế độ chèn), đôi khi tôi nhảy xung quanh để chèn số, xóa, v.v. trước khi nhấn thoát và thoát khỏi chế độ chèn.
"Hoàn tác" nhận toàn bộ chèn (bao gồm cả xóa) dưới dạng một chỉnh sửa. Ví dụ: tôi không thể hoàn tác đoạn tôi vô tình xóa mà không hoàn tác xóa toàn bộ!
Có cách nào để sửa lỗi này không?
Dưới đây là một số liên kết có liên quan:
- How Emacs determines a unit of work to undo
- http://vim.wikia.com/wiki/Using_undo_branches
- http://vim.wikia.com/wiki/Modified_undo_behavior
- This tip có thể có lời giải thích tốt nhất từ phía vim.
Sau đây là các ánh xạ vim chuyển đổi lệnh vim nhất định để họ có thể được hoàn tác:
inoremap <c-u> <c-g>u<c-u>
inoremap <c-w> <c-g>u<c-w>
inoremap <End> <C-g>u<End>
inoremap <BS> <c-g>u<BS>
inoremap <CR> <c-g>u<CR>
inoremap <del> <c-g>u<del>
Điều cần thiết là cho chế độ lùi lại bên trong emacs ác undo-cây để theo dõi sự kiện bổ sung bên cạnh chỉ cần thoát khỏi chế độ chèn. Ví dụ, bạn sẽ có thể ở lại trong chế độ chèn một thời gian dài và sau đó hoàn tác bất kỳ loại xóa, cắt, dán.
Dựa trên http://stackoverflow.com/questions/6590889/how-emacs-determines-a-unit-of-work-to-undo, các lệnh thêm trong nhu ác gọi undo-boundary. – justingordon
Chỉ vì nó chưa được nói: "Bạn nên xử lý chế độ chèn như bạn đang chạy trên một cái nóng của than, hãy ra khỏi đó càng sớm càng tốt". –