วิธีการรีเฟรชเป็นกลุ่มโดยอัตโนมัติในการโฟกัสของบัฟเฟอร์ / หน้าต่าง?


11

ฉันมักจะใช้Control + L เพื่อวาดหน้าจอเป็นกลุ่ม

โดยเฉพาะอย่างยิ่งเมื่อฉันออกจากโหมดสลีปหรือเปลี่ยนการกำหนดค่าจอภาพฉันมักพบว่า Vim จำเป็นต้องวาดใหม่ ฉันคิดว่ามันอาจจะง่ายกว่าที่จะเพิ่มบางสิ่งลงใน vimrc ของฉันที่วาดโฟกัสใหม่

  • มีคำสั่งที่ฉันสามารถเพิ่มลงใน.vimrcไฟล์ของฉันที่วาดบัฟเฟอร์ใหม่เมื่อหน้าต่าง / บัฟเฟอร์ได้รับโฟกัสหรือไม่?

โดยเฉพาะอย่างยิ่งคำสั่งที่ดีไม่ควรมีประสิทธิภาพด้านลบที่เห็นได้ชัดเจนหรือผลข้างเคียงอื่น ๆ ที่เกี่ยวข้อง

คำตอบ:


12

vim มีเหตุการณ์ที่คุณสามารถผูกกับสิ่งนี้FocusGained, รวมสิ่งนี้กับredraw!คำสั่ง ( !ทำให้หน้าต่างถูกล้างก่อน)

:au FocusGained * :redraw!

ไวยากรณ์ที่นี่สามารถอ่านได้เป็น 'เรียกใช้คำสั่งอัตโนมัติ (au สั้นสำหรับ autocmd) :redraw!เมื่อฉันได้รับเหตุการณ์FocusGainedสำหรับไฟล์ใด ๆ ที่ตรงกับรูปแบบ*'

เพื่อให้ถาวรเพิ่มในของคุณ~/.vimrc(ผู้นำ:ไม่จำเป็นต้องใช้ vimrc)

เพื่อทดสอบกิจกรรมคุณสามารถใช้คำสั่ง 'ชัดเจน' เช่น

:au FocusGained * :q!

1
ขอบคุณ ฉันได้ทำการทดสอบขั้นพื้นฐานและดูเหมือนว่าจะทำงานได้โดยไม่มีปัญหาด้านประสิทธิภาพ
Jeromy Anglim
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.