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)
, ที่อาจเกิดขึ้นในพื้นที่