M-x ibuffer- เลือกบัฟเฟอร์
- ฆ่าบัฟเฟอร์นั้น
หลังจากบัฟเฟอร์ถูกฆ่าแล้วบัฟเฟอร์ ibuffer จะปรากฏขึ้นอีกครั้ง แต่ก็ยังคงแสดงชื่อบัฟเฟอร์ที่ถูกฆ่าในขั้นตอนที่ 3
เป็นไปได้หรือไม่ที่จะให้ ibuffer รีเฟรชรายการบัฟเฟอร์อัตโนมัติ
M-x ibufferหลังจากบัฟเฟอร์ถูกฆ่าแล้วบัฟเฟอร์ ibuffer จะปรากฏขึ้นอีกครั้ง แต่ก็ยังคงแสดงชื่อบัฟเฟอร์ที่ถูกฆ่าในขั้นตอนที่ 3
เป็นไปได้หรือไม่ที่จะให้ ibuffer รีเฟรชรายการบัฟเฟอร์อัตโนมัติ
คำตอบ:
การรันคำสั่งibuffer-auto-modeในบัฟเฟอร์ Ibuffer ทำให้รีเฟรชจอแสดงผลหลังจากแต่ละคำสั่งแบบโต้ตอบ
ดูเหมือนจะไม่มีวิธีการเปิดใช้งานโดยตรงโดยอัตโนมัติ คุณสามารถใส่มันลงในไฟล์ init ของคุณ:
(add-hook 'ibuffer-mode-hook (lambda () (ibuffer-auto-mode 1)))
ibufferการเลือกจะหายไป
วิธีการที่เหมาะสมที่จะทำคือการแนะนำการสนับสนุนสำหรับibuffer auto-revert-modeสิ่งนี้สามารถทำได้โดยการกำหนดbuffer-stale-functionบัฟเฟอร์เหล่านั้น เนื่องจากbuffer-menuสนับสนุนฟีเจอร์นั้นมันก็ดีที่จะทำให้มันอัปสตรีมibufferด้วยเช่นกัน แต่ตอนนี้ดูเหมือนจะไม่เป็นเช่นนั้น
อย่างไรก็ตามนี่เป็นวิธีที่จะทำ:
(defun my-ibuffer-stale-p (&optional noconfirm)
;; let's reuse the variable that's used for 'ibuffer-auto-mode
(frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed))
(defun my-ibuffer-auto-revert-setup ()
(set (make-local-variable 'buffer-stale-function)
'my-ibuffer-stale-p)
(set (make-local-variable 'auto-revert-verbose) nil)
(auto-revert-mode 1))
(add-hook 'ibuffer-mode-hook 'my-ibuffer-auto-revert-setup)
หมายเหตุ: โดยทั่วไปจะต้องกำหนดค่าrevert-buffer-functionแต่ทำibufferแล้ว (ตั้งค่าเป็นibuffer-update)
ibuffer-auto-mode?
auto-revert-modeใช้จับเวลาและibuffer-auto-modeการใช้งานpost-command-hookเพื่อให้มีความชัดเจนที่แตกต่างกัน ; แต่ทันใดนั้นฉันก็ไม่สามารถพูดได้
ibufferบัฟเฟอร์มีพฤติกรรมเหมือนคนอื่นเมื่อพูดถึงการรีเฟรชเนื้อหาที่ล้าสมัยทำให้ฉันรู้สึกสะอาดขึ้น นอกจากนี้โดยทั่วไปแล้วฉันไม่ชอบการใช้post-command-hookวิธีนี้ในทางที่ผิด: มันเกินความจริงเมื่อคุณทำบางสิ่งที่ไม่เกี่ยวข้องอย่างสมบูรณ์ในบัฟเฟอร์ สุดท้ายหากต้องกดแป้นพิมพ์บางประเภทเพื่อให้มีการรีเฟรชเนื้อหาก็อาจเป็นเช่นgนั้นซึ่งเป็นวิธีที่ชัดเจนในการอัปเดตเนื้อหา แต่ได้รับก็อาจเป็นปัญหาปรัชญา :)
Reverting buffer `*Ibuffer*'. ดังกล่าวรบกวนเพราะมันทำให้ฉันขัดจังหวะเมื่อฉันทำงานใน minibuffer ข้อความปรากฏขึ้นไม่ว่าibufferจะมองเห็นบัฟเฟอร์หรือไม่
(setq auto-revert-verbose nil), ที่อาจเกิดขึ้นในพื้นที่