EmacsがGUIモードになっているかどうかを確認するにはどうすればよいですか(そして `tool-bar-mode`を実行するのはそれだけですか)?


16

.emacsファイルに次の行があります。

(tool-bar-mode 0)

GUI emacs(/Applications/Emacs.app/Contents/MacOS/Emacs)のツールバーが嫌いだからです。

しかし、ターミナルで他のテキストベースのemacs(/opt/local/bin/emacs)を起動すると、そのコマンドについて文句を言います:

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

GUI emacsにいるときにのみコマンドをif実行するように条件を追加するにはどうすればよいtool-bar-modeですか?

ありがとう!

回答:


22

さて、自分で見つけました。追加するだけ

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

3

別の方法は次のとおりです。

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

このように、関数は存在する場合にのみ呼び出されます



0

window-systemブール値としての変数の使用は非推奨です。代わりに、 フレームの特定のUI関連機能を報告display-graphic-pする、またはその他のdisplay-*-p述語を使用します。

コードに以前のバージョンのEmacsとの下位互換性を持たせたい場合は、次の互換性ラッパーを使用します。

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.