ฉันจะป้องกันคำสั่งจากการใช้หน้าต่างเฉพาะได้อย่างไร


14

โดยทั่วไปฉันมีกรอบแยกออกเป็นสี่หน้าต่างโดยที่สองที่ด้านล่างอุทิศให้กับฉัน*compilation*และ*grep*บัฟเฟอร์ เมื่อเรียกดูข้อผิดพลาดในการรวบรวมnext-errorในที่สุดจะแทนที่*grep*บัฟเฟอร์ของฉันด้วยหนึ่งในไฟล์เป้าหมาย

ฉันnext-errorจะกำหนดค่าให้ไม่ใช้หน้าต่างที่มี*grep*บัฟเฟอร์ได้อย่างไร

กรณีการใช้งานเฉพาะของฉันคือnext-errorคำสั่ง แต่ยินดีต้อนรับคำตอบทั่วไปเพิ่มเติมเช่นกัน


1
ที่เกี่ยวข้อง: emacs.stackexchange.com/questions/327/…
Malabarba

คำตอบ:


14

ผมสอง @ ข้อเสนอแนะ Nsukami ที่จะใช้หน้าต่างทุ่มเท เนื่องจากมันเป็นฟังก์ชั่นไม่ใช่คำสั่งการใช้set-window-dedicated-pโดยตรงจึงอาจยุ่งยาก ด้วยคำสั่งต่อไปนี้และการเชื่อมโยงคีย์ที่เกี่ยวข้องคุณสามารถสลับ "dedicatedness" ของหน้าต่างใดก็ได้โดยกดC-c t:

(defun toggle-window-dedicated ()
  "Control whether or not Emacs is allowed to display another
buffer in current window."
  (interactive)
  (message
   (if (let (window (get-buffer-window (current-buffer)))
         (set-window-dedicated-p window (not (window-dedicated-p window))))
       "%s: Can't touch this!"
     "%s is up for grabs.")
   (current-buffer)))

(global-set-key (kbd "C-c t") 'toggle-window-dedicated)

ตอนนี้เป็นวิธีที่สะดวกในการใช้คุณสมบัติหน้าต่างเฉพาะนี้! ขอบคุณมันใช้งานได้เหมือนมีเสน่ห์
piwi

ดีกว่าภายใน function + keybing
Nsukami _

4

ฉันขอแนะนำหน้าต่างแบบเฉพาะได้ไหม

คุณจะต้องอุทิศหน้าต่างเพื่อบัฟเฟอร์โดยใช้ฟังก์ชั่นนี้:

set-window-dedicated-p ธงหน้าต่าง:ฟังก์ชั่นนี้ทำเครื่องหมายหน้าต่างเป็นทุ่มเทให้กับบัฟเฟอร์ถ้าธงไม่ใช่ศูนย์และไม่ได้ทุ่มเทอย่างอื่น

ความอนุเคราะห์จากgnu

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