Làm cách nào để kiểm tra xem Emacs có ở chế độ GUI không (và chỉ thực hiện `tool-bar-mode`)?


16

Tôi có dòng này trong .emacstập tin của tôi :

(tool-bar-mode 0)

bởi vì tôi ghét các thanh công cụ trong GUI emacs ( /Applications/Emacs.app/Contents/MacOS/Emacs) của tôi.

Nhưng khi tôi khởi động các emacs dựa trên văn bản khác trong terminal ( /opt/local/bin/emacs) thì nó phàn nàn về lệnh đó:

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

Làm cách nào tôi có thể thêm một ifđiều kiện để nó chỉ thực thi tool-bar-modelệnh khi tôi ở trong emacs GUI?

Cảm ơn!

Câu trả lời:


22

Được rồi, tìm thấy nó bản thân mình. Chỉ cần thêm

;; turn off toolbar
(if window-system
    (tool-bar-mode 0))

3

một cách khác để làm điều đó sẽ là:

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

như thế này, hàm chỉ được gọi nếu nó tồn tại



0

Sử dụng window-systembiến như một boolean không được dùng nữa . Thay vào đó, hãy sử dụng display-graphic-phoặc bất kỳ display-*-p vị từ nào khác báo cáo các khả năng liên quan đến giao diện người dùng cụ thể của khung.

Trong trường hợp bạn muốn mã của mình tương thích ngược với các phiên bản Emacs trước đó, thì trình bao bọc tương thích sau đây là cách để thực hiện:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.