.emacs.d目录和.emacs文件的独立emacs安装和位置

.emacs.d目录和.emacs文件的独立emacs安装和位置,emacs,dot-emacs,Emacs,Dot Emacs,我在我的Windows 7计算机上安装了多个emacs,每个emacs的配置略有不同。假设installation1和installation2,其中installation1是主emacs,installation2是辅助emacs 我想维护两组.emacs文件和.emacs.d。目录,以便installation1在默认主目录或%appdata%目录C-x C-f~/.emacs-RET中查找它,但installation2在这些目录中根本找不到.emacs文件。也就是说,我希望instal

我在我的Windows 7计算机上安装了多个emacs,每个emacs的配置略有不同。假设installation1和installation2,其中installation1是主emacs,installation2是辅助emacs

我想维护两组.emacs文件和.emacs.d。目录,以便installation1在默认主目录或%appdata%目录C-x C-f~/.emacs-RET中查找它,但installation2在这些目录中根本找不到.emacs文件。也就是说,我希望installation2不要在主目录或%appdata%位置查找.emacs.d目录或.emacs文件。理想情况下,这可以通过重新定义~expansion for installation2来实现

我想我可以有一个添加到列表“加载路径C:/installation2 location/.emacs.d/lisp/,并将其保存到installation2 emacs可执行文件所在目录下的.emacs文件中,但我不确定这是一个健壮的解决方案


欢迎您的建议。

您可以使用系统类型变量。来自Emacs帮助

系统类型是“C源代码”中定义的变量。它的价值是 达尔文

文档:该值是一个符号,指示操作类型 您正在使用的系统。特殊值:为 GNU Hurd system.GNU/linux'是为GNU/linux系统编译的。 为带有FreeBSD内核的gnu系统编译的gnu/kfreebsd。 达尔文'为达尔文编译GNU达尔文,Mac OS X。。。。 ms dos“编译为ms-dos应用程序。windows nt” 编译为本机W32应用程序`使用 西格温图书馆。Emacs 24.1中的其他内容,可能性 是:aix、berkeley unix、hpux、irix、usg-unix-v表示某种类型 Unix系统的设计

或使用系统名称来确定同一计算机的不同


最后,您可以创建一个函数来加载installation-1中需要的内容,另一个函数来加载installation-2中需要的内容。但是我看不到任何有效的理由来解释为什么要在同一台机器上维护不同的emacs.d。

这种完全分离真的有必要吗?您知道可以从命令行设置站点和用户初始化文件吗?您可以设置.emacs文件,从几个基本配置中选择一个,具体取决于,例如,一个对Windoze不太有用的环境变量,一个命令行参数,等等。@tripleee您可以再细分一点吗?我想我不完全理解您的建议。您是说我从命令行启动emacs时使用了类似于>runemacs-init file=.emacs-installation1-init directory=C:/installation1 location/.emacs.d的命令。我不确定这些开关是否存在。emacs-help没有显示这样的选项,但类似的命令可能存在?我一点也不确定你关于环境的建议意味着什么,但正如你提到的,这可能是因为我使用的是有史以来最好的Windows操作系统,顺便说一句;Windows有像%home%这样的环境变量,但它们的行为与Unix系统不同,因此您最好使用一些本机机制-我想到的是注册表,但它是全局AFAICT,我不知道从Elisp访问有多困难或容易。如果您有一个单独的用户,则emacs-u him运行他的emacs配置文件,而不是你的您可能更喜欢emacs-q-la:\files\config.el,甚至更喜欢emacs-q。请进一步了解,我不清楚为什么您需要两种不同的配置,为什么您有两种不同的安装,为什么您特别希望在一种安装中使用一种配置,在另一种安装中使用另一种配置。你能告诉我一些细节吗?根据您的具体需求,解决方案可能是干净和简单的,也可能是相当复杂和不可靠的。