我使用emacs进行文本编辑和脚本开发。我同时使用windows和ubuntu emacs 23.1发行版。
现在,我希望我的linux和windows环境都能复制相同的环境。
是否有任何特定的方法/建议来管理windows和linux之间的公共emacs环境?特别是如何管理程序路径?
发布于 2010-01-12 16:34:00
没有真正直接的方法。您必须将大多数(如果不是全部)特定于平台的例程隔离到不同的文件中,并在检查平台后加载它们。
Steve有一些关于他如何管理他的.emacs文件以及实际代码本身在这里上的一些信息。他的一个观点是,他保持的方式是跨平台的。值得一读。
发布于 2010-01-12 19:02:33
我有一个非常类似的设置(Emacs22.1,22.2,23.1在不同的Linux版本,有和没有X和Windows有和没有Cygwin)。我的设置包括ELPA、auctex、emacsw32、CEDET、JDEE、nxml和其他各种elisp包。我不使用系统附带的任何东西,但将这些包的副本保存在subversion中。
大多数安装程序只在所有环境中工作。关于路径,我认为大多数想要调用的东西,比如一个咒语,也可以通过命令行在Emacs之外调用,因此值得将它们放在$PATH中,从而避免在Emacs中指定完整的路径。
对于其他事情,我在.emacs中这样做:
; Load system-specific library and setup system-specific things that
; must be setup before main setup
(cond ((eq system-type 'windows-nt) (load-library "ntemacs-cygwin"))
((eq system-type 'gnu/linux) (load-library "linux"))
(t (load-library "default")))
(system-specific-setup)
; Set up things as usually, no more system-type queries.在linux.el中:
(defun system-specific-setup()
; Default font
(add-to-list
'default-frame-alist
'(font . "-Misc-Fixed-Medium-R-Normal--14-130-75-75-C-70-ISO8859-1"))
(setq my-frame-width 95)
(setq my-frame-height 56)
; Not much else
)在ntemacs-cygwin.el:
(defun system-specific-setup()
;; EmacsW32
(setq emacsw32-root (concat private-elisp-lib "EmacsW32"))
(add-to-load-path emacsw32-root)
;; Work around XSymbol initialization bug
;; ("C:\\ImageMagick\\convert" instead of system $PATH? Seriously?)
(setq x-symbol-image-convert-program "convert")
;; etcetera...
)基本上,这是一个在一个系统上设置东西的问题,在另一个系统上尝试它们,并分解出与系统特定的设置不同的任何东西。
史蒂夫·耶格在努法尔的回答中的文章是非常好的。
发布于 2010-01-13 08:12:01
您可以查看我的埃玛奇吐露,其中对不同网络机器的操作被拆分为不同的文件。
https://stackoverflow.com/questions/2050473
复制相似问题