2009-05-28 9 views

Antwort

15

Ihre Antwort ist korrekt, obwohl, wenn Sie zwischen anderen Fenstersystemen unterscheiden wollen und nur den Code auszuführen, wenn Sie tatsächlich mit X sind, dann würden Sie gehen, um

(if (eq window-system 'X) (foo)) 
+0

Obwohl ich diese Art von Spezifität nicht brauche, ist das eine bessere Antwort als meine. Vielen Dank! – JasonFruit

+2

Als ich versuchte, herauszufinden, wie ich das Thema im Nur-Fenster-Modus deaktivieren konnte, endete ich mit der ersten Antwort von JasonFruit, aber sie kommen wirklich auf dasselbe zu. '(if (eq window-system 'X) (foo))' oder '(wenn window-system (foo))' oder '(wenn window-system (foo))' es macht keinen Unterschied. Für diejenigen, die an den Details interessiert sind, lass mich dir sagen "C-h a" ist dein Freund. Ich habe "variable" gesucht und "describe-variable" gefunden. Mit dieser plus tab-completion habe ich die window-system Variable gefunden. Dann tippte ich 'window-system' einfach in den Scratch-Buffer und testete es dann –

+3

Sie funktionieren genauso, wenn Sie nur daran interessiert sind, ob das Fenstersystem X ist oder nicht, aber der Wert des Fenstersystems kann ein anderer sein als ' X. –

14

Ich glaube, ich meine eigene Antwort gefunden:

(when window-system 
    (foo)) 

nur foo, wenn ich laufen werde in X.

+0

Bitte hören Sie auf, meine eigene Antwort auf meine Frage zu wählen - die eine, die ich oben akzeptiert habe, ist im Wesentlichen die gleiche, aber vollständiger! – JasonFruit

+0

In Ordnung --- wer hat das gemacht?!?! – JasonFruit

+0

Wir brauchen nur eine weitere Upvote ... –

3

Beachten Sie, dass die Frage etwas falsch konzipiert ist: Emacs kann zur selben Zeit sowohl mit tty-Frames als auch mit GUI-Frames laufen.

Die Variable window-system ist "terminal-local", was bedeutet, dass ihr Wert davon abhängt, ob der aktuell ausgewählte Rahmen ein tty-Rahmen oder ein GUI-Rahmen ist.

+0

Ich wusste nicht einmal, dass das gemacht werden könnte. Faszinierend! – JasonFruit

Verwandte Themen