Emacs in Microsoft Windows FAQ

By Xah Lee. Date: . Last updated: .

Where to download emacs for Windows?

Where is emacs init file on Microsoft Windows?

How to list environment variables?

  1. Launch PowerShell: press the ❖ Window key, then type powershell.
  2. in PowerShell prompt, type dir env:

[see Windows Environment Variable Tutorial]

Create a Environment Variable HOME

I highly recommend you create a environment variable named HOME. Because the HOME directory is heavily used by emacs from the unix convention.

Set the value of environment variable HOME to the same value as the environment variable HOMEPATH.

In PowerShell, run this:

[Environment]::SetEnvironmentVariable("home", $env:homepath, "User")

[see PowerShell: Set Environment Variable]

Changes to environment variable in registry are not reflected in current PowerShell session. Type exit to exit PowerShell. Start a new process.

Create a Emacs Init File

I recommend you create a emacs init file at


How to find out if emacs init is loaded?

put this in your Emacs Init File:

(set-background-color "grey")

If emacs starts with new background color, then it's loaded.

How to Start Emacs by Command Line?

Launch PowerShell , then type for example: ~\Downloads\emacs-27.1-x86_64\bin\runemacs

How to start emacs in graphical user interface?

Go to emacs folder, then in the “bin” dir, then click on file runemacs.exe

How to start emacs with default dir at home dir?

Create a Windows shortcut, then set the “Start in” field.

Windows 10 emacs shortcut bXv5F
Windows 10 emacs shortcut

To create a file shortcut:

  1. Hold Alt then drag that runemacs.exe icon to desktop.
  2. In the newly created alias icon, right click to open file properties. Then, in the “Start in” field, enter your home directory.
  3. In the “Target” field, you can add emacs command line options. For example: %home%\apps\emacs-24.1\bin\runemacs.exe -q --load=%home%\ErgoEmacs_dev\init.el --load=%home%\.emacs. Here, i suppress loading init files by -q, but load ErgoEmacs init files, then load my personal init files.

How to disable Ctrl+Space on Windows

How to disable Ctrl+Alt+s in Microsoft Windows?

How to run PowerShell or Bash in emacs?

Setting Environment Variable for Emacs Only

Install Linux Tools

Some of emacs's features require unix utilities. The essential ones are these:

There are several ways to get linux tools for Microsoft Windows.

I recomment one of the following:

Alternatively, i recommend not rely on unix {find, grep, diff}, because they are 30 years old technology.

You can easily use PowerShell for unix find/grep/diff. [see PowerShell Tutorial]

For find/replace/grep needs within emacs, try Emacs: Xah Find Replace (xah-find.el)