Nếu tôi nhấn ESC để thoát Chế độ trực quan sau khi tôi chọn một số văn bản, sẽ có độ trễ đáng chú ý trước khi văn bản không được chọn và tôi trở về Chế độ bình thường (ngay cả khi tôi chỉ chọn 1-2 ký tự). Có thể tránh sự chậm trễ này?
Nếu tôi nhấn ESC để thoát Chế độ trực quan sau khi tôi chọn một số văn bản, sẽ có độ trễ đáng chú ý trước khi văn bản không được chọn và tôi trở về Chế độ bình thường (ngay cả khi tôi chỉ chọn 1-2 ký tự). Có thể tránh sự chậm trễ này?
Câu trả lời:
Điều này có thể được gây ra bởi việc được ánh xạ tới một số chức năng bổ sung. Ví dụ: tôi sử dụng plugin tabbar và nó ánh xạ 0-9 để chuyển sang bộ đệm số. Bất cứ khi nào một phím được ánh xạ tới chức năng bổ sung như thế này, vim sẽ đợi vài giây sau khi nhấn để xem bạn có nhấn bất kỳ phím bổ sung nào không.
Để xem nếu có bất kỳ ánh xạ bổ sung nào, hãy chạy :map
và tìm kiếm <Esc>
trong cột đầu tiên. Khi chạy mà không có bất kỳ tham số nào, :map
sẽ liệt kê tất cả các ánh xạ tùy chỉnh. Nếu bạn chỉ muốn liệt kê các ánh xạ trong khi ở chế độ trực quan, hãy chạy :vmap
.
Nếu không có ánh xạ bổ sung, tôi không biết cách nào để xóa tạm dừng, ngoài việc xóa ánh xạ. Việc tạm dừng là cần thiết để vim rõ ràng biết hành động mà bạn dự định thực hiện.
:help 'timeout'
.
Tôi không có ánh xạ nào bị ràng buộc với <ESC> trên toàn cầu hoặc cho chế độ Trực quan (gọi: verbose vmap <ESC> không cho kết quả) nhưng vẫn có độ trễ đáng kể khi thoát khỏi chế độ Visual. Ngay cả trên các bản cài đặt mới không có vimrc, vẫn có độ trễ. Sử dụng <Cc> sẽ thoát chế độ trực quan mà không bị trễ.
Vì tôi không thích nhấn <Cc> để thoát bất kỳ chế độ nào, tôi hiện ánh xạ <ESC> sang <Cc> ở chế độ trực quan. Điều này thoát khỏi chế độ trực quan bằng cách sử dụng <ESC> mà không có bất kỳ độ trễ nào.
:vmap <ESC> <C-c>
Hoặc đặt dòng sau vào vimrc của bạn
vnoremap <ESC> <C-c>
Điều này sẽ không hoạt động nếu bạn có ánh xạ chế độ toàn cầu hoặc trực quan ràng buộc với <ESC>.
Esc
cũng là tiền tố cho tất cả các phím đặc biệt, bao gồm cả các phím mũi tên.