4

I am using the latest version of Emacs on Windows 7.

I unzipped Emacs to: C:\Users\MyName\OneDrive\emacs

.emacs.d is in: C:\Users\MyName\AppData\Roaming

I would like to have to set up .emacs.d in C:\Users\MyName along with an init.el instead of ~.emacs. Do I transfer .emacs.d to the new location or create a new .emacs.d folder?

I assume changing the .emacs.d location will also require me to change %HOME%. If so, how do I change the home variable?

1
  • 1
    See here.
    – Pradhan
    Commented Feb 16, 2015 at 6:27

2 Answers 2

7

Well, based on the manual and my memory of how I set up my emacs configuration, you're correct, you'll need to set up the HOME environment variable.

You can set up the HOME variable on Windows 7 by going to the Control Panel > System > Advanced System Settings > Advanced > Environment Variables… and checking the User Variables for < User Name > list.

If there isn't already a user variable called HOME in that list, just press “New” and put one in pointing to the directory you want. Not exactly sure if there are any other programs that use HOME as an environment variable, but so far I've not encountered any other program in Windows that uses it.

6
  • I think I didn't make my question clear. Before changing User Variables, I'd need to make changes to .emacs.d and make a new init.el. How do I transfer my .emacs.d to a new location and have an init.el within it. Commented Feb 16, 2015 at 13:12
  • @curious-scribbler -- If you have changed your home environment correctly, Emacs will create a new .emacs.d folder in that new home directory when you launch Emacs. You can either use a .emacs file in the new home directory for your user configurations, or you can create an init.el and place it inside your new .emacs.d folder. In terms of copying anything over from the previous installation, you can use Windows Explorer to copy / paste until you are more comfortable with using Emacs (which contains other possibilities for copy / paste).
    – lawlist
    Commented Feb 16, 2015 at 16:17
  • @curious-scribbler: What @lawlist said, although I'm a little mystified. I just copy my existing init.el into an .emacs.d directory in the HOME directory I set up, using Windows Explorer. They're really just text files you can move about, which is great for backing up and synchronizing your emacs settings across multiple machines. Commented Feb 17, 2015 at 6:07
  • @TariqKamal I am completely confused at the moment. Can you please break this down for me. Should I change my HOME or redirect emacs to load something else? Commented Feb 17, 2015 at 6:27
  • @curious-scribbler: Well, what I did was change my HOME variable to C:\Users\UserName and moved my existing .emacs.d directory to C:\Users\UserName (in your case, if you haven't made any customizations, just create your .emacs.d directory and init.el file). That's worked okay for me. Commented Feb 18, 2015 at 7:33
8

I really like the answer posted by @Ryan here.

;; Place this file in C:\Users\Username\AppData\Roaming and point to the appropriate files
(setq user-init-file "C:/path/to/.emacs")
(setq user-emacs-directory "C:/path/to/.emacs.d/")
(setq default-directory "C:/whatever/you/want/to/start/in")
(setenv "HOME" "D:/my/home/directory")
(load user-init-file)

P.S. I cannot make a comment, so I posted an answer.

3
  • 1
    "All problems in computer science can be solved by another level of indirection" (the "fundamental theorem of software engineering") -- David Wheeler.
    – NickD
    Commented Jun 16, 2018 at 1:28
  • 1
    this file beeing C:\Users\Username\AppData\Roaming\.emacs. Everything is in the manual : M-x info-emacs-manual >> Emacs and Microsoft Windows/MS-DOS >> Windows HOME
    – Flint
    Commented Oct 2, 2018 at 11:10
  • I appreciate this response so much, as well as the pointer to the manual. Thanks!
    – taranaki
    Commented Sep 28, 2020 at 22:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.