让GNU emacs和xemacs共同居住的良好实践是什么

让GNU emacs和xemacs共同居住的良好实践是什么,emacs,Emacs,我想逐步从GNU Emacs切换到Xemacs。我有什么技巧可以让这两个人玩得好吗 目前,我看到以下问题: xemacs改变。emacs 这两个文件彼此不喜欢.elc文件 谢谢 在现代系统上,我认为不再需要预编译的elisp文件。查看和动态更改.el文件的好处更大 .emacs:在.emacs\u startup(或您更喜欢的名称)中添加您自己的定义,并将所有gnu-enmacs内容放在那里,并在.emacs中添加一个条件加载。我不使用xemacs,但较新的gnu-emacs也会检查.emacs

我想逐步从GNU Emacs切换到Xemacs。我有什么技巧可以让这两个人玩得好吗

目前,我看到以下问题:

xemacs改变。emacs 这两个文件彼此不喜欢.elc文件


谢谢

在现代系统上,我认为不再需要预编译的elisp文件。查看和动态更改.el文件的好处更大


.emacs:在.emacs\u startup(或您更喜欢的名称)中添加您自己的定义,并将所有gnu-enmacs内容放在那里,并在.emacs中添加一个条件加载。我不使用xemacs,但较新的gnu-emacs也会检查
.emacs.d/init.el
,因此将.emacs内容移动到
init.el
是有意义的。此外,如果您能够使自定义同时适用于这两种情况,则可以将其链接到
.xemacs/init.el


还有一个关于emacs更喜欢什么的讨论。

有趣的是,大多数似乎正朝着另一个方向发展,因为我认为XEmacs处于相当休眠状态(基于XEmacs公告列表的活动)。简单的包可以共存,但许多人已经放弃了让包在XEMAC和Emacs中工作

但是,为了回答您的问题,为了让您的.emacs同时在这两种语言中工作,我将开始编写一些例程来在这两种语言之间进行函数转换。例如,有一次我需要这样做才能让我的.emacs在XEmacs中工作:

(if (not (fboundp 'tags-table-files))
    (defun tags-table-files ()
      (tag-table-files tags-file-name)))
Emacs变体触发了其他事件,我将其存储在变量GNU中:

(setq GNU (not (string-match "XEmacs\\|Lucid" (emacs-version))))
(if GNU 
    (do-emacs-thing)
  (do-xemacs-thing))
我保存了编译后的.emacs文件,并执行了以下操作:

(setq compiled-dot-emacs-name (format ".emacs-%d%s" emacs-major-version 
                                                    (if GNU "" "X")))
关于已编译的包,我可能会将所有的.el文件存储在一个目录中(比如emacs lisp),但有一个xemacs变体(xemacs lisp),带有指向.el文件的符号链接。然后,您只需从适当的Emacs变量对每个目录进行字节编译,并确保您的加载路径指向正确的路径


EmacsWiki上有一个页面,这可能是一个很好的起点,可以找到让他们同居的其他技巧。具体来说,这里有一个页面。

我不久前开始缓慢地从Xemacs迁移到Emacs。我现在每天都使用这两种方法。为了使转换更平滑(一组init文件),我从中窃取了以下.emacs文件(但链接现在已失效)

My ~/.xemacs/init.el的开头是:

(unless (boundp 'running-xemacs)
  (defvar running-xemacs nil))
(setq load-path (cons "~/.elisp" load-path))             ; packages for both emacsen
(if running-xemacs
    (setq load-path (cons "~/.elisp/xemacs" load-path))  ; packages for Xemacs only
  (setq load-path (cons "~/.elisp/gnuemacs" load-path))) ; packages for Gnuemacs only

从那时起,我所拥有的(偶尔的(如果运行xemacs的话)。我还删除了~/.elsp中的所有.elc文件,但我认为Trey Jackson的建议会起作用。

xemacs和emacs同居?据联合国称,我认为这是不合法的。
(unless (boundp 'running-xemacs)
  (defvar running-xemacs nil))
(setq load-path (cons "~/.elisp" load-path))             ; packages for both emacsen
(if running-xemacs
    (setq load-path (cons "~/.elisp/xemacs" load-path))  ; packages for Xemacs only
  (setq load-path (cons "~/.elisp/gnuemacs" load-path))) ; packages for Gnuemacs only