ฉันมีการค้นหาระดับโลกที่ไม่ใช่ emacs และแทนที่ฟังก์ชั่นที่ทำให้ไฟล์ดิสก์ของฉันทันสมัยกว่าบัฟเฟอร์ emacs ของฉัน (en masse) มีวิธีใดที่จะบอกให้ emacs รีเฟรชบัฟเฟอร์ทั้งหมดจากดิสก์ในคราวเดียวล้มเหลวแทนที่จะต้องทำทีละตัวด้วยการโหลดไฟล์ซ้ำ?
ขอบคุณ! D
ฉันมีการค้นหาระดับโลกที่ไม่ใช่ emacs และแทนที่ฟังก์ชั่นที่ทำให้ไฟล์ดิสก์ของฉันทันสมัยกว่าบัฟเฟอร์ emacs ของฉัน (en masse) มีวิธีใดที่จะบอกให้ emacs รีเฟรชบัฟเฟอร์ทั้งหมดจากดิสก์ในคราวเดียวล้มเหลวแทนที่จะต้องทำทีละตัวด้วยการโหลดไฟล์ซ้ำ?
ขอบคุณ! D
คำตอบ:
(global-auto-revert-mode t)
ในของคุณ.emacs
นี่เป็นอีกทางเลือกหนึ่งถ้าคุณใช้ Emacs GUI (Mine is GNU Emacs 25.1.1 บน Windows 7):
หากคุณมีไฟล์เปิดอยู่สองสามไฟล์คุณควรเห็นผลกระทบที่เกิดขึ้นทันที โชคดี!
ขอขอบคุณที่ @Ashwin (global-auto-revert-mode t)
สำหรับการชี้ออก ฉันพบว่า Emacs จะไม่อัปเดตบัฟเฟอร์โดยอัตโนมัติซึ่งไฟล์มีการเปลี่ยนแปลงบนดิสก์ด้วยการเปลี่ยนแปลงนี้เพียงอย่างเดียว จากhttps://www.gnu.org/software/emacs/manual/html_node/emacs/Reverting.html :
ตามค่าเริ่มต้นโหมดการย้อนกลับอัตโนมัติจะทำงานโดยใช้การแจ้งเตือนไฟล์ซึ่งการเปลี่ยนแปลงในระบบไฟล์จะถูกรายงานไปยัง Emacs โดยระบบปฏิบัติการ คุณสามารถปิดการใช้งานการแจ้งเตือนไฟล์โดยกำหนดตัวแปร auto-revert-use-alert เป็นค่าศูนย์จากนั้น Emacs จะตรวจสอบการเปลี่ยนแปลงไฟล์โดยการสำรวจทุกห้าวินาที คุณสามารถเปลี่ยนช่วงเวลาการสำรวจผ่านตัวแปรช่วงเวลาย้อนกลับอัตโนมัติ
หลังจากที่ฉันตั้งค่า(auto-revert-use-notify nil)
แล้ว Emacs ได้รีเฟรชบัฟเฟอร์ทั้งหมดทุก ๆ 5 วินาที