เป็นไปได้ไหมที่จะส่งเอาต์พุตจากตัวกรองโปรเซสไปยัง*Messages*บัฟเฟอร์และระงับข้อความเอาต์พุตไม่ให้ปรากฏในพื้นที่เสียงก้องเช่นนั้นฉันสามารถใช้คำสั่งแบบโต้ตอบพร้อมกันได้โดยไม่ต้องminibuffer-promptถูกลบออกโดยตัวกรอง subpress
(defun rsync-process-filter (proc string)
(when (not (or
(string-match "files...\r" string)
(string-match "files to consider\n" string)))
(message "%s" string)))
แก้ไข (3 มกราคม 2015): ต่อไปนี้เป็นลิงก์ไปยังคำถามที่คล้ายกันอย่างไรก็ตามฉันยังไม่สามารถทำให้มันทำงานกับกระบวนการสตริงที่สตริงที่แน่นอนไม่ได้ถูกผูกไว้ - ชื่อของเธรดคือ: Emacs - ปิดการใช้งานข้อความขนาดเล็ก :
*Messages*บัฟเฟอร์ - โครงการที่เกี่ยวข้องกับการประสานเป็นหนึ่งในพวกเขา ยังมีบางสิ่งที่ฉันไม่ได้ลอง ( เพราะฉันคิดว่าอาจมีวิธีแก้ปัญหาในตัว ) เช่นการทำให้*Messages*บัฟเฟอร์สามารถเขียนได้ชั่วคราวinhibit-read-onlyและใช้insertที่point-max- ฉันไม่รู้ว่าจะปรากฏขึ้นใน พื้นที่เสียงสะท้อนเช่นกัน ฉันจะทำงานอีกครั้งในเย็นนี้ . .
M-x report-emacs-bugและขอสิ่งนี้เป็นคุณสมบัติหรือไม่?
(let ((inhibit-read-only t)) (with-current-buffer (get-buffer-create "*Messages*") (goto-char (point-max)) (insert string)))และฉันโพสต์คำตอบแบบร่างซึ่งจะมีสิทธิ์ได้รับการยอมรับหลังจากระยะเวลารอคอยบังคับของคำถามของผู้ใช้หมดไป ฉันได้ส่งคำขอคุณสมบัติด้วยreport-emacs-bug: debbugs.gnu.org/cgi/bugreport.cgi?bug=19495
(messages-buffer)เพื่อรับบัฟเฟอร์ ถ้าคุณใช้วิธีนี้และสังเกตว่า(point-max)จะไม่เป็นจุดเริ่มต้นของบรรทัดใหม่ (เช่นใช้C-g)