tôi sẽ có thêm một bình luận, nhưng tôi không thể định dạng giải pháp.
Giải pháp dành cho nguồn cấp dữ liệu tuyệt vời, với sự cố nhỏ mà nó luôn quay trở lại chế độ bình thường, bất kể bạn đang ở chế độ nào khác. Tôi không muốn hủy chế độ dòng lệnh (để kéo các tệp thả & xuống Windows) và tôi không cần phải hủy chế độ trực quan, tôi chỉ muốn hủy chế độ chèn.
Các giải pháp, sau đó, xuất hiện như:
autocmd FocusLost * call PopOutOfInsertMode()
function! PopOutOfInsertMode()
if v:insertmode
feedkeys("\<C-\>\<C-n>")
endif
endfunction
Nói cách khác, chỉ bật ra nếu bạn đang ở trong một chế độ chèn. Điều này có thể được tinh chỉnh hơn nữa, vì v: insertmode sẽ là 'i' trong 'chèn bình thường', 'r' trong chế độ Thay thế, và 'v' trong chế độ Thay thế Ảo. Đối với tôi, popping ra bất kể là tốt, nhưng người dùng có thể muốn chỉnh sửa cho phù hợp.
Nếu đây không phải đang làm việc cho bạn trong MacVim, thay thế nội dung của PopOutOfInsertMode
với:
if v:insertmode == 'i' | call feedkeys("\<C-\>\<C-n>") | endif
Nguồn
2010-10-18 18:18:19
có một câu hỏi trùng lặp và trả lời trên superuser: http://superuser.com/questions/236534/change -to-normal-mode-khi-macvim-go-background – rubiii