2012-05-06 25 views
19

Đâ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:

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.

+0

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

+0

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". –

Trả lời

0

Điều này có cụ thể để hoàn tác cây không? Tôi không sử dụng nó, vì vậy những điều sau có thể không áp dụng ...

Tôi không chắc liệu bạn có thể sửa đổi số lượng chỉnh sửa mà cơ chế hoàn tác coi là một đơn vị hay không, nhưng những gì bạn có thể làm là :

Chọn khu vực trước rồi nhập phím hoàn tác và Emacs sẽ chỉ hoàn tác các thay đổi đã được thực hiện trong khu vực đó.

Điều đó có thể rất hữu ích.

+0

Điều này có thể liên quan đến điều ác mô phỏng hành vi vim, mà cần những sửa đổi được hiển thị ở trên. – justingordon

Các vấn đề liên quan