代码之家  ›  专栏  ›  技术社区  ›  user90150

如何为Windows和Linux计算机设置通用Emacs环境?

  •  9
  • user90150  · 技术社区  · 15 年前

    我使用emacs进行文本编辑和脚本开发。我同时使用Windows和Ubuntu Emacs 23.1发行版。

    现在,我希望我的Linux和Windows环境都能复制相同的环境。

    1. 我会在这里保存我的Emacs环境 https://bitbucket.org/krish/emacs/ ,所以文件同步不会有问题。

    2. 对于这两种环境,我没有任何不同的分辨率设置

    3. 我在windows和linux中使用的aspell需要特定的路径和不同的安装程序

    4. 我使用Perl、Python、Ruby模式以及其他HTML、CSS、JS-2和NXML。

    在Windows和Linux之间管理通用Emacs环境有什么具体的方法/建议吗?尤其是如何管理程序路径?

    3 回复  |  直到 15 年前
        1
  •  7
  •   Noufal Ibrahim    15 年前

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

    SteveYegge有一些关于他如何管理自己的.emacs文件以及实际代码本身的信息 here . 他的观点之一是他如何保持跨平台的可攻击性。值得一读。

        2
  •  3
  •   Laurynas Biveinis    15 年前

    我有一个与您的非常相似的设置(Emacs22.1、22.2、23.1在各种Linux版本上,有或没有x,有或没有cygwin的Windows)。我的设置包括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...
    
    )
    

    基本上,这是在一个系统上设置东西,在另一个系统上尝试它们,并分解出任何需要与系统特定设置不同的东西。

    史蒂夫耶格在《诺法尔的答案》中的文章是一篇很好的文章。

        3
  •  0
  •   Alex Ott    15 年前

    你可以看看 my emacs configs ,其中不同机器的操作被分割成单独的文件