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