2009-05-28 11 views

risposta

15

la risposta di cui sopra è corretta, anche se se si vuole distinguere tra gli altri sistemi per finestre e solo desidera eseguire il codice se in realtà si sta utilizzando X, che avrebbe dovuto andare

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

Anche se non ho bisogno di quel tipo di specificità, questa è una risposta migliore della mia. Grazie! – JasonFruit

+2

Quando stavo cercando di capire come disabilitare i temi in modalità solo finestra, ho finito per andare con la risposta iniziale di JasonFruit, ma stanno ottenendo davvero la stessa cosa. '(if (eq window-system 'X) (foo))' o '(se window-system (foo))' o '(quando window-system (foo))' non fa davvero la differenza. Per chi è interessato ai dettagli, lascia che ti dica "C-h a" è tuo amico. Usandolo ho cercato "variabile" e ho trovato 'Descrive-Variable e usando quel completamento di tabulazioni ho trovato la variabile del sistema di finestre. Poi ho semplicemente scritto 'window-system' nel buffer zero e poi l'ho testato –

+3

Funzioneranno allo stesso modo se tutto quello che ti interessa è se il sistema di finestre è X o no, ma il valore del sistema di finestre può essere un valore diverso da ' X. –

14

Credo di avere trovato la mia risposta:

(when window-system 
    (foo)) 

sarà solo foo quando sono in esecuzione in X.

+0

Si prega di smettere di votare la mia risposta alla mia domanda --- quella che ho accettato sopra è essenzialmente la stessa, ma più completa! – JasonFruit

+0

Va bene --- chi l'ha fatto?!?! – JasonFruit

+0

Abbiamo solo bisogno di un altro upvote ... –

3

Si noti che la domanda è alquanto mal concepita: Emacs può essere eseguito sia con frame tty sia con frame GUI allo stesso tempo.

La variabile window-system è "terminal-local", il che significa che il suo valore dipenderà dal fatto che il frame attualmente selezionato è un frame tty o un frame della GUI.

+0

Non avevo nemmeno capito che si poteva fare. Affascinante! – JasonFruit

Problemi correlati