Info Node: (efaq)Terminal setup code works after Emacs has begun
(efaq)Terminal setup code works after Emacs has begun
Why doesn't this [terminal or window-system setup] code work in my `.emacs' file, but it works just fine after Emacs starts up?
===============================================================================================================================
During startup, Emacs initializes itself according to a given
code/file order. If some of the code executed in your `.emacs' file
needs to be postponed until the initial terminal or window-system setup
code has been executed but is not, then you will experience this
problem (this code/file execution order is not enforced after startup).
To postpone the execution of Emacs Lisp code until after terminal or
window-system setup, treat the code as a "lambda list" and set the
value of either the `term-setup-hook' or `window-setup-hook' variable
to this lambda function. For example,
(add-hook 'term-setup-hook
(lambda ()
(when (string-match "\\`vt220" (or (getenv "TERM") ""))
;; Make vt220's "Do" key behave like M-x:
(global-set-key [do] 'execute-extended-command))))
For information on what Emacs does every time it is started, see the
`lisp/startup.el' file.