2010-10-05 16 views
11

è possibile controllare se emacs è in esecuzione nella modalità --no-window-system (-nw) all'interno del file dot-emacs (.emacs)? Vorrei abilitare/includere determinate estensioni solo se emacs è in modalità finestra (/ o non).Emacs: controllare il sistema senza finestra in .emacs

saluti, Mefix

risposta

19

La variabile window-system è nil se il frame selezionato è in un solo testo terminale.

+0

Grande! Grazie! – mefiX

+3

Ho usato '(quando window-system ... stuff ...)' per valutare tutte le cose che voglio solo in modalità finestra. – mefiX

+11

Si noti che il valore di 'window-system' è specifico per il frame corrente; se si avvia Emacs in modalità GUI, 'window-system' sarà' t', ma se ci si connette a quella * stessa * istanza di Emacs usando 'emacsclient -t' da un terminale, quindi' window-system' sarà 'nil 'all'interno di quel frame del terminale. Per questo motivo, non è una buona pratica prendere decisioni in '.emacs' basate su' window-system' - invece, incorporare il codice condizionale corrispondente in hook o altre funzioni che verranno chiamate in seguito. – sanityinc

0

mettere il codice che si desidera eseguire quando emacs esegue in un ambiente a finestre all'interno di un blocco quando e utilizzare il display-grafico-p predicato cioè

(when (display-graphic-p) 
    (do something) 
    (do-another-thing)) 

o invertire