Làm cách nào để tự động làm mới Vim trên bộ đệm / cửa sổ tập trung?


11

Tôi thường sử dụng Control + L để vẽ lại màn hình trong Vim .

Đặc biệt, khi tôi ra khỏi giấc ngủ hoặc thay đổi cấu hình màn hình, tôi thường thấy rằng Vim cần được vẽ lại. Tôi nghĩ có thể đơn giản hơn khi chỉ cần thêm một cái gì đó vào vimrc của tôi mà vẽ lại tập trung.

  • Có một lệnh mà tôi có thể thêm vào .vimrctệp của mình để vẽ lại bộ đệm khi cửa sổ / bộ đệm lấy tiêu điểm không?

Đặc biệt, một lệnh tốt sẽ không có hiệu suất tiêu cực đáng chú ý hoặc các tác dụng phụ liên quan khác.

Câu trả lời:


12

vim có một sự kiện bạn có thể liên kết để làm điều này FocusGained, kết hợp điều này với redraw!lệnh ( !nguyên nhân khiến cửa sổ bị xóa trước)

:au FocusGained * :redraw!

Cú pháp ở đây có thể được đọc là 'tự động chạy lệnh (au là viết tắt của autocmd) :redraw!khi tôi nhận được sự kiện FocusGainedcho bất kỳ tệp nào khớp với mẫu *'.

để làm cho nó vĩnh viễn thêm nó vào của bạn ~/.vimrc(hàng đầu :không cần thiết trong vimrc).

để kiểm tra các sự kiện bạn có thể sử dụng lệnh 'rõ ràng' hơn như

:au FocusGained * :q!

1
Cảm ơn. Tôi đã cho nó một bài kiểm tra cơ bản, và nó dường như hoạt động mà không có bất kỳ vấn đề nào về hiệu suất.
Jeromy Anglim
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.