我试过runemacs --user d:\path\to\init\.emacs,但它提供了
Error (initialization): Invalid user name d:\path\to\init\.emacs
我的意思是自定义文件在自定义位置,如在我的挂盘等,而不是在我的默认位置在用户文件夹。我尝试为不同的配置创建一个cmd文件,其中包含相应的init。
发布于 2013-06-17 21:43:53
我猜你的最终目标是从你可以随身携带的USB驱动器上运行Emacs。有两种方法可以让Emacs从不同的init文件开始:
(1) -q --加载方式
这只是简单地运行
emacs -q --load path-to-your-init.el它启动Emacs而不进行任何初始化,然后加载path-to-your-init.el
这种方式的缺陷:在这种情况下,Emacs实际上并不认为el文件是一个init文件,事实上,Emacs根本没有进行初始化,这意味着跳过了以下初始化后步骤:
after-init-hook,即评估(run-hooks after-init-hook)您可能需要在备用init文件中添加初始化后的内容。
此外,如果Emacs使用-q选项启动,则自定义界面不允许保存设置。
(2) the HOME way
使用以下内容创建my-emacs.bat:
set HOME=%~dp0
C:\path-to-your\Emacs\bin\runemacs.exe --xrm "emacs.Background: light green"当您单击该bat文件时,Emacs将在bat文件所在的位置而不是通常的用户目录中创建名为.emacs.d的文件夹。您可以将自己的init.el放在该.emacs.d文件夹中。使用这个Emacs,计算(find-file "~/.emacs.d/init.el")将打开您自己的可移植init.el,而不是通常用户目录中的初始化文件。您可能想要删除--xrm "emacs.Background: light green"部分,我将其包括在内,因为我总是忘记哪个Emacs是哪个。
陷阱:这个Emacs在它自己的.emacs.d目录中有自己的包目录。这可能是你想要的,也可能不是。如果您想要共享包目录,您可以更改package-user-dir或使用link Shell扩展创建一个指向要共享的包目录的符号链接。
在USB驱动器上运行Emacs时需要考虑的事项:
Emacs将其一些功能外包给外部工具。grep和比较都外包给Grep和diff,所以您的系统上可能至少安装了GnuWin32 Grep和GnuWin32 DiffUtils。拼写检查的一部分外包给aspell,这也是一个单独的安装。加密是外包给GPG,所以Gpg4Win另一个单独的安装。为了让您的便携式Emacs具有所有这些功能,所有这些外部工具也应该在您的USB驱动器上。幸运的是,GnuWin32和aspell是便携友好的。我不知道GPG是不是。如果您设法创建只依赖于eshell自己的grep的lgrep和rgrep版本,那么对外部grep的依赖可能会被消除,但似乎还没有人这样做,所以创建这样的lgrep/rgrep就是大胆地去了以前没有人去过的地方。
发布于 2013-06-17 19:59:56
您可以通过在命令行中输入emacs --help来获取有关所有emacs选项的帮助。该帮助说明--user需要用户名,而不是elisp文件的路径。
要在启动时加载lisp文件,可以使用--load选项:
$ emacs --help
...
--load, -l FILE load Emacs Lisp FILE using the load function
...如果您希望阻止加载默认的init文件,可以使用以下选项:
$ emacs --help
...
--no-init-file, -q load neither ~/.emacs nor default.el
...https://stackoverflow.com/questions/17146844
复制相似问题