Windows 7 中的主目录和 .emacs 文件

Posted

技术标签:

【中文标题】Windows 7 中的主目录和 .emacs 文件【英文标题】:home directory and .emacs file in Windows 7 【发布时间】:2012-04-24 03:43:09 【问题描述】:

我在 c:/emacs-23.3 中安装了 emacs 23.3.1。 按照this page 中的提示,我更新了 site-start.el 以设置 HOME 环境变量。

(setenv "HOME" "c:/users/USER/emacs")

并且我制作了 c:/users/USER/.emacs(就像我在 unix/mac 中所做的那样)来编写使用 slime 的代码,但它似乎无法正确启动 slime。

这是在 Windows 7 中设置 emacs 的正确方法吗?我应该把 .emacs 文件放在哪里?

【问题讨论】:

【参考方案1】:

您需要在计算机设置中的环境变量中设置HOME(如果我没记错的话),或者将初始化文件放到默认目录(只需启动Emacs,然后按C-x C-f ~/查看实际目录)。 我记得,在 Windows 上,init 文件可以称为 _emacs...

【讨论】:

我收到了一些关于:_emacs 的讨论。我决定从 cmd 提示符重命名,而在目录中,ren _emacs .emacs 更改 HOME 变量可能会影响所有其他已安装的应用程序,因此这似乎不是一个好的解决方案。 据我所知,没有预先存在的 HOME 变量。我前几天刚做了这个,好像还可以。【参考方案2】:

我将 emacs 作为便携式应用程序运行,这对我来说非常有效:

在您的 emacs 目录的根目录中创建一个批处理文件。例如,我创建了:

C:\Dropbox\PortableApps\emacs-24.3\run_emacs_portable.bat

然后,编辑文件并将此文本放入其中:

set HOME=.\
bin\runemacs.exe %*

现在,我只是通过 run_emacs_portable.bat 文件启动 emacs,我的 HOME 文件夹总是指向我的 emacs 安装文件夹。

%* 允许您将参数传递给 .bat 文件并将它们转发到 runemacs.exe

【讨论】:

您应该在runemacs.exe 之后添加%* 以转发参数并能够Open With 便携Emacs。 谢谢,我在你的建议中添加了!好主意。 我正在考虑制作一个 .bat 文件,将 HOME=.\ 添加到系统中,这样我就可以在执行 .bat 后在所有系统上使用标准 .exe。我试过setx -m,但似乎效果不太好。你知道我如何让它工作吗? @EivindDahl 当 .bat 文件运行 set HOME=.\ 时,它只会更改该 shell 实例的环境变量。如果双击批处理文件,则运行一个新的 shell (cmd.exe),它的 HOME 值被更改,然后 shell 被关闭。这就是为什么此解决方案调用set HOME=.\ 与调用runemacs.exe 在同一个.bat 文件中进行。从 .bat 文件中执行 runemacs.exe 时,正在运行的 shell 的 HOME 的值为 .\ 【参考方案3】:

在主目录.emacs.d 是自动创建的,您可以将 init.el 作为启动文件。另请参阅此question。

【讨论】:

【参考方案4】:

要在 Windows 用户文件夹 (C:\Users\User\.emacs.d) 中设置 Emacs 主文件夹,只需将此代码添加到当前的 init 文件并重新启动 Emacs。

(when (eq system-type 'windows-nt)
  (unless (getenv "Home")
    (shell-command (format "setx \"%s\" \"%s\"" 'Home (getenv "UserProfile")))))

【讨论】:

【参考方案5】:

我喜欢 Роман Захаров 的回答,这似乎有助于维护跨平台配置,但它不起作用。

这最终对我有用。

(when (eq system-type 'windows-nt)
  (setenv "Home" (getenv "UserProfile")))

【讨论】:

【参考方案6】:

您可以启动 emacs,输入 M-x pwd,这将显示您在 Windows 文件树中的位置。你可以把你的.emacs放在那里。

【讨论】:

【参考方案7】:

在 Windows 上,Emacs 启动时定义了一些属性,这些属性在您右键单击 Windows 系统上的可执行文件时找到。在那里你可以定义

    执行目录,例如“C:\Users\loggedin_user\”(括号内)

    emacs 的执行位置

    并查找 .xemacs (.emacs) 目录,并在其中找到它的 init.el。

    您可以在哪里定义启动指令(例如 (setenv "HOME" "c:/Users/Username/") )等。

如果你这样配置,下次emacs会从你定义的目录开始,初始化文件

【讨论】:

【参考方案8】:

如果您想使用 c:/users/USER/.emacs,您应该将 HOME 变量设置为 c:/users/USER,而不是 c:/users/USER/emacs。

【讨论】:

以上是关于Windows 7 中的主目录和 .emacs 文件的主要内容,如果未能解决你的问题,请参考以下文章

Window 7 上的 Emacs 将文件保存到 VirtualStore 目录

在 Windows 7 上从 emacs 运行 nmake

如何找到已加载的 .emacs 文件?

Emacs 和 ESS:使用正确版本的 R

Emacs 快速指南(中文翻译)

7.Emacs进阶之模式