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 文件的主要内容,如果未能解决你的问题,请参考以下文章