Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reload .emacs for all active buffers

A question already has been asked how to reload a .emacs file after changing it.

The proposed solutions were to use M-x load-file or M-x eval-region RET on the changed region.

Neither of these solutions affect other open buffers for me. Is there a way to reload the .emacs file for all open buffers?

I should also note that the M-x load-file does not have the desired effect for reasons outlined in the comments to that answer.

like image 881
Alan Turing Avatar asked Aug 26 '11 23:08

Alan Turing


People also ask

How do I reload a .Emacs file?

You can use the command load-file ( M-x load-file , then press return twice to accept the default filename, which is the current file being edited). You can also just move the point to the end of any sexp and press C-x C-e to execute just that sexp.

How do I refresh a buffer in Emacs?

Refresh the Dired buffer using switches as dired-listing-switches . Type g ( revert-buffer ) to update the contents of the Dired buffer, based on changes in the files and directories listed. This preserves all marks except for those on files that have vanished. Hidden subdirectories are updated but remain hidden.

What is auto reverting?

One use of Auto Revert mode is to “tail” a file such as a system log, so that changes made to that file by other programs are continuously displayed. To do this, just move the point to the end of the buffer, and it will stay there as the file contents change.

How do I restart Emacs?

There is no way to restart an Emacs session once you have killed it. You can, however, arrange for Emacs to record certain session information, such as which files are visited, when you kill it, so that the next time you restart Emacs it will try to visit the same files and so on.


1 Answers

Your .emacs file is a global configuration that gets evaluated once only. It does not get applied to each buffer individually.

How you actually achieve what you want is really going to depend on what those .emacs changes are. Some elisp will only take effect the first time it is evaluated; or when a buffer changes major modes; or when a file is loaded; etc, etc...

If you want to reload some or all of the file buffers, ibuffer makes that pretty easy:

  • M-x ibuffer RET to start ibuffer (I recommend binding this to C-xC-b).
  • /f.RET to filter by filename regexp . so as to match any filename.
  • m (on [default]) to mark all filtered buffers.
  • V (uppercase) to revert all marked buffers.

or you could replace steps 2+3 with M-x ibuffer-mark-by-file-name-regexp RET . RET. You may wish to bind that command to *f:

;; Bind `ibuffer-mark-by-file-name-regexp' to *f
(eval-after-load "ibuffer"
  '(define-key ibuffer-mode-map (kbd "* f") 'ibuffer-mark-by-file-name-regexp))

type *c-h to see all the other ibuffer-mark-* commands which are bound by default.

like image 63
phils Avatar answered Sep 30 '22 18:09

phils