2013-11-01 18 views
5

Mi piace iniziare il mio lavoro in Emacs con due finestre aperte. Per questo, ho una funzione (split-window-horizontal) nel mio file .emacs.Emacs: esegue la funzione solo dopo il riavvio, non dopo aver valutato un buffer

Funziona senza problemi, dividendo la finestra in due finestre affiancate dopo ogni valutazione del buffer .emacs. Ovviamente, divide anche la finestra ogni volta che rieseguo la valutazione del file .emacs per testare alcune nuove impostazioni. Come posso dire a emacs di non dividere la finestra dopo ogni valutazione del buffer .emacs, ma solo dopo aver riavviato emacs?

Sto cercando qualcosa di simile:

(eval-only-after-restart 
    (split-window-horizontally)) 

Esiste una tale funzione? O un altro modo come farlo?

+0

hai detto _horizontally_? La divisione orizzontale è così così, prima vai verticale. –

risposta

5

Ti piace questa:

+0

Grazie, signore! Soluzione elegante – Katarina

+0

Che cosa sono 'boundp' e' setq'? –

+0

Sono forme elitarie. Sono tutti documentati, quindi con il cursore su uno di essi digita ' f' per scoprire cosa fanno. –

0

Quanto a me, ho una macro su M-F12 che massimizza la finestra emacs (M-x maximize) e si divide verticalmente. Da quando lo attivo manualmente, decido quando farlo e quando no. Quello che sto cercando di dire è che la divisione automatica all'inizio potrebbe essere una buona idea, ma forse non la migliore.

1

Invece di rivalutare l'intero buffer quando si aggiungono nuove cose, si consideri solo la valutazione del sexp che è stato aggiunto, eseguendo C-x C-e alla fine di detto sexp.

3

Un altro modo:

(add-hook 'emacs-startup-hook #'split-window-horizontally) 
Problemi correlati