我参照了 Windows 上面 Emacs 简易入门最佳实践 这篇帖子进行了设置, 不同的是 Emacs 压缩包是从 www.gun.org 官网上下载的, 不是使用作者介绍的 Releases · m-parashar/emax64 · GitHub 里的压缩包.
自己做了以下工作:
1. 在环境变量中设置了 HOME
可以看到我设置了
HOME
环境变量
C:\Users\c\Documents\hurricane
. 并且进行了重启.
2. 将 Emacs 安装包内文件解压到 HOME 目录下
同时我在 HOME 目录下放置了 spacemac s 的配置文件夹 .emacs.d
和我个人的配置文件夹 .spacemacs.d
.
3. 双击 C:\Users\c\Documents\hurricane\bin\addpm.exe
来安装 Emacs.
接下来我就尝试打开 Emacs 了:
1. 第一种尝试: 双击 C:\Users\c\Documents\hurricane\bin\runemacs.exe
运行
在这过程中 Emacs 成功启动, 我个人的配置包也可以顺利下载安装.
但是在 spacemacs dashboard 界面上使用 SPC d j
调用 dired-jump
, 在 macOS 上是会成功跳到 ~
下面的. 但是此时 Windows 上却是跳到了 C:\Users\c\Documents\hurricane\bin\
目录下, 也就是我双击运行的 runemacs.exe
所在的目录.
我使用 C-x d
运行 dired
, 也是跳转到 C:\Users\c\Documents\hurricane\bin\
.
我运行
eval-expression
:
(getenv "HOME")
后的结果是 “/Users/c”.
这个是我 mac 的家目录(因为打算先在 Parallels Desktop 上尝试运行, 再拷贝到另一台 Windows 电脑.).
为什么我在虚拟机上的 Windows 设置了 HOME
运行得到的却不是正确的.
2. 第二种尝试, 在启动栏搜索 Emacs, 并从这里运行
这中方法, 启动时抛出了错误:
这种方法还是不能正确的获取到我设置的 HOME
.
和第一种方法不同的是 Emacs 会跳到 c:/Windows/System32
.
我目前的疑惑是在 Windows 上都设置好了配置后, 该如何启动 Emacs?
网络上搜索了一番, 论坛帖子也看了, youtube 上教程也看了, 都只是涉及到如何配置, 并没有提及后续该如何 (从哪里) 启动 Emacs.
wsug
2020 年6 月 15 日 03:35
2
我没用addpm.exe,将runemacs.exe创建桌面快捷方式后启动,启动时需要加参数,也是直接在创建的快捷方式->右键->属性->目标 输入框里加,不用命令行也不设HOME变量,windows最好不要改emacs的home变量默认值,会出一些莫名其秒的问题
必须改home变量情况是在启动时加载不同配置 D:\text\emacs\bin\runemacs.exe -q -l d:/text/.emacs2.d/init.el 也在配置文件里面改(setenv "HOME" "d:/text/emacs")
, 你这个直接改在系统环境变量里改HOME变量,emacs外的其它软件也会被影响到吧
home目录,简单的用~表示,或者用全路径表示为/home/,其中xxx表示用户名字,所以,在Linux下将.emacs和.emacs.d放到这个目录下就行了,但windows没有home目录的概念,所以,Emacs就按如下方式来查找配置文件:
如果设置了HOME环境变量,那么就用它的值作为home目录~
如果存在注册表键值HKCU\SOFTWARE\GNU\Emacs\HOME,就用它的值作为home目录~
如果存在注册表键值HKLM\SOFTWARE\GNU\Emacs\HOME,就用它的值作为home目录~(和2的区别是,2只是针对当前用户的注册表路径,3则是针对所有用户)
如果存在C:.emacs,就用C:\作为home目录~
如果以上都不存在的话,就使用\Users<user name>\AppData\Roaming作为home目录~(对于XP和较早windows用户,需要到Documents and Settings目录下去找)
我用的是第二种方法,在current_user子路径下添加的home变量
1 个赞
你好, 我按照你的说明在快捷方式属性
里修改目标
为:
C:\Users\c\Documents\hurricane\bin\runemacs.exe -q -l C:/Users/c/Documents/hurricane/.emacs.d/init.el
并且在 spacemacs 的配置文件夹 .emacs.d
中的文件 init.el
加入:
(setenv "HOME" "c:/Users/c/Documents/hurricane")
然后点击快捷方式启动 emacs, 效果和我描述的一样, 没有效果.
你说的注册表键值, 我电脑上都没有:
所以不知道哪里修改注册表.
而其他办法, 如设置环境变量 HOME 为 \Users<user name>\AppData\Roaming
, 并且把我帖子中提到的 hurricane
文件夹下的所有文件都放到 Roaming
下, 这个方法我尝试过了, 结果还是有问题, 没有解决.
xxoo
2020 年6 月 15 日 10:20
6
我看你用的是spacemacs,不知有没有试过 env文件呢? spc f e C-e
看看它获取的HOME是什么
1 个赞
wsug
2020 年6 月 17 日 07:59
8
在windows下,emacs的HOME路径除了放emacs的配置文件,还有什么用处吗?应该可以不用管的吧?只需要关注当前当前工作目录default-directory
这个变量的值就可以了,default-directory
被我设置成了显示在emacs的最上方第一行(header-line),按 “行号" “文件名” default-directory
显示,至于标题栏好像没办法做到显示行号,也被隐藏了
我看你用的是spacemacs,不知有没有试过 env文件呢? spc f e C-e
看看它获取的HOME是什么
他的这个提醒了我,我使用的是 spacemacs,使用了 SPC f e e 快捷键查看一下 .spacemacs.env
文件中的 HOME
为 \Users\c
c,因为我的所有配置文件都是直接从 MacOS 拷贝过来的,所以这个文件需要重新生成才能正确。虽然经过他提醒我才知道我自己的乌龙。但是你的答案可能更具有普遍性意义,为了能帮到更多人,我选择你的回答是解决方案。谢谢。
谢谢提醒,我重新生成了 .spacemacs.env 文件后可以了。