如何为Windows和Linux计算机设置常见的emacs环境?

时间:2010-01-12 16:28:55

标签: windows linux emacs ubuntu environment

我使用emacs进行文本编辑和脚本开发。我使用windows和ubuntu emacs 23.1分发。

现在我希望我的linux和windows环境都能复制相同的环境。

  1. 我将在此处保存我的emacs环境https://bitbucket.org/krish/emacs/,因此文件同步不会出现问题。

  2. 对于环境

  3. ,我没有任何不同的分辨率设置
  4. 我在Windows和Linux中使用需要特定路径和不同安装程序的aspell

  5. 我使用perl,python,ruby模式以及其他html,css,js-2和nxml

  6. 是否有任何特定方式/建议来管理Windows和Linux之间的常见emacs环境?特别是如何管理程序路径?

3 个答案:

答案 0 :(得分:7)

没有真正直截了当的方式。您必须将大多数(如果不是全部)平台特定的例程隔离到不同的文件中,并在检查平台后加载它们。

Steve Yegge提供了一些关于他如何管理他的.emacs文件以及here上的实际代码本身的信息。他的一个观点是他如何保持跨平台的可攻击性。值得一读。

答案 1 :(得分:3)

我有一个非常类似的设置(Emacs 22.1,22.2,23.1在各种Linux版本上有和没有X和Windows,有和没有Cygwin)。我的设置包括ELPA,auctex,emacsw32,CEDET,JDEE,nxml和各种其他elisp软件包。我不使用系统附带的任何内容,而是将这些软件包的副本保存在subversion中。

大多数设置仅适用于所有环境。关于路径,我认为大多数想要调用的东西,比如aspell,也可以从命令行在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...

)

基本上,这是在一个系统上进行设置,在另一个系统上进行设置并将任何需要与系统特定设置不同的因素分解出来的问题。

Steve Yegge在Noufal答案中的文章非常好。

答案 2 :(得分:0)

您可以查看my emacs configs,其中不同计算机的操作被拆分为单独的文件