Shorten Emacs timeout of ~/.emacs read

My ~/.emacs start-up file is stored in my AFS home directory. Often when I login to a linux machine I will forget to renew my AFS credentials before attempting to edit a local (non-AFS) file with Emacs.

When this happens Emacs will attempt to load ~./emacs but cannot because it is in AFS space where I do not have access. Eventually (after a minute or so) Emacs will give up trying to load ~./emacs and continue. But waiting for Emacs to timeout is annoying (typing Ctrl-Z does not seem to interrupt this timeout).

I want to shorten the amount of time that Emacs waits before giving up. I have tried the suggestion at this site which says to put the following code in the site-start.el file:

(with-timeout (4)
 (load remote-.emacs))

However, when I do that I get the error Error in init file: Symbol's value as variable is void: remote-\.emacs whenever starting Emacs.

How can I shorten this timeout?

Answer

Your example fails because remote-.emacs isn’t quoted. This will work:

(with-timeout (4)
  (load “remote-.emacs”))

However, from the emacs docs:

…timers can run within a Lisp program only when the program calls a primitive that can wait, with-timeout cannot stop executing body while it is in the midst of a computation…

I assume that emacs is blocked by your OS waiting for a timeout on the remote file over AFS. Thus I suspect that setting a timeout in emacs may have no effect.

Attribution
Source : Link , Question Author : user35042 , Answer Author : Phil Hollenback

Leave a Comment