วิธีการตรวจสอบว่า Emacs อยู่ในโหมด GUI (และเรียกใช้งาน `แถบเครื่องมือโหมดเท่านั้น ')


16

ฉันมีบรรทัดนี้ใน.emacsไฟล์ของฉัน:

(tool-bar-mode 0)

เพราะฉันเกลียดแถบเครื่องมือใน GUI emacs ของฉัน ( /Applications/Emacs.app/Contents/MacOS/Emacs)

แต่เมื่อฉันเริ่มต้นอื่น ๆ emacs แบบข้อความใน terminal ( /opt/local/bin/emacs) มันบ่นเกี่ยวกับคำสั่งที่:

Symbol's function definition is void: tool-bar-mode

ฉันจะเพิ่มifเงื่อนไขเพื่อให้รันtool-bar-modeคำสั่งได้เฉพาะเมื่อฉันอยู่ใน GUI emacs เท่านั้น

ขอบคุณ!

คำตอบ:



3

อีกวิธีที่จะทำคือ:

 (if (functionp 'tool-bar-mode) (tool-bar-mode 0))

เช่นนี้ฟังก์ชั่นที่เรียกว่าถ้ามันมีอยู่



0

ใช้ของwindow-systemตัวแปรเป็นบูลจะเลิก ให้ใช้display-graphic-pหรือเพรดิเคตอื่นใดdisplay-*-p ซึ่งความสามารถเฉพาะที่เกี่ยวข้องกับ UI ของเฟรมรายงาน

ในกรณีที่คุณต้องการให้โค้ดของคุณสามารถใช้งานร่วมกับรุ่นก่อนหน้าของ Emacs ได้ดังนั้น wrapper ที่ใช้งานร่วมกันได้ดังต่อไปนี้คือวิธีการ:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.