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

如何最好地集成Emacs和Cygwin?

  •  40
  • User1  · 技术社区  · 15 年前

    在Windows上有很多方法可以将Cygwin与Emacs集成在一起。 EmacsWiki 展示了一些想法。以下是我找到的选项:

    1. 使用Cygwin附带的Emacs。(然后找到一种方法,如果需要,可以访问cmd.exe。)
    2. 将ntemacs和cygwin用作“有时”shell。(启动Cygwin的特别命令)
    3. 使用ntemacs和cygwin作为“始终”外壳。(M-X Shell启动Cygwin)

    明确“为什么”。下面是几个例子,我希望我有Cygwin和Emacs:

    1. M-X whois不适用于ntemacs。
    2. 类包 Wanderlust 包括不支持Windows的makefile。
    3. 有时候我只需要一个弹壳就行了。

    那么,Emacs/Cygwin的哪一个选项对其他人很有效?此外,是否有人成功尝试过MSYS集成?

    11 回复  |  直到 8 年前
        1
  •  18
  •   User1    14 年前

    使用Cygwin中的Emacs。不是Xemacs..emacs。我只需安装cygwin中的所有内容并键入以下内容即可运行emacs:

    XWin -multiwindow
    export DISPLAY=:0.0
    emacs&
    

    它还可以帮助创建到C驱动器(或任何其他驱动器)的链接,如下所示:

    ln -s /cygdrive/c /c

    我用这个已经好几个月了,它总是很好用的。我经常使用高级功能,如不定期和颠覆没有任何问题。像cedet这样的高级软件包都可以工作。

    如果你没注意到,我就是原来的海报。经过我所有的研究和尝试,这一个工作,我很高兴。干得好Cygwin!

    另外,我建议不要在Emacs中使用shell。效用像 top 只是好像不管用。相反,使用mintty和screen。Cygwin在Mintty中直接给你ssh(你不需要油灰)。最好的一点是,我的许多Linux知识在Windows中无缝工作。

        2
  •  9
  •   Mingo    11 年前

    最好的解决方案必须是Cygwin Emacs-W32。它使用win32本机GUI,并使用cygswin posix系统。这意味着你有一个Windows本地的图形用户界面程序和所有的cygwin路径,shell工作。

    安装非常简单:setup.exe-->emacs-w32。 现在版本号是:24.2.93.1

    这么好。

        3
  •  8
  •   ak.    15 年前

    第四种选择是在Cygwin的一个替代终端中运行Emacs:(u)RXVT、Mintty、Xterm。这些都比控制台提供了更好的终端仿真,这意味着emacs体验得到了很大的改善。

        4
  •  7
  •   justinhj    15 年前

    我倾向于使用 emacs on windows gnu utils 它比Cygwin更快,虽然还不够完整。

    然后我就用一个cygwin窗口来显示bash shell和丢失的东西。

        5
  •  4
  •   Jonathan Arkell    15 年前

    我在根上安装了cygwin。它明确警告你不要这样做,但我没有看到任何不良影响。(我找到了史蒂夫·耶格的建议)。

    我也安装了 cygwin-mount 对很多人都有帮助。另外,我必须从ispell切换到aspell。最后,稍微调整一下.emacs,我很高兴去:

    ;;;;;;;;;;;;;;;;;;;;;;
    ;;CygForTheWin
    ;;*cygwin
    (when (equal system-type 'windows-nt) 
    (message "Setting up Cygwin...")
    (let* ((cygwin-root "c:")
           (cygwin-bin (concat cygwin-root "/bin"))
           (gambit-bin "/usr/local/Gambit-C/4.0b22/bin/")
           (snow-bin "/usr/local/snow/current/bin")
           (mysql-bin "/wamp/bin/mysql/mysql5.0.51a/bin/"))
       (setenv "PATH" (concat cygwin-bin ";" ;
                              snow-bin ";" 
                              gambit-bin ";"
                              mysql-bin ";"
                              "c:/usr/local/jdk1.60_03/bin/"
                              ".;")  
               (getenv "PATH"))
       (setq exec-path (cons cygwin-bin exec-path)))
    
    (require 'cygwin-mount)
    (cygwin-mount-activate)
    
    (setq shell-file-name "bash")
    (setq explicit-shell-file-name "bash")
    
    (defun jonnay-cygwin-shell ()
      "Wrapper around cygwin-shell so that it doesn't throw an error"
      (interactive)
      (condition-case e
       (cygwin-shell)
       (message "There was an error trying to launch the shell: %s" e)))
    
    (message "Setting up Cygwin...Done")
    
    
    ;; found from the manual, check, use and make go?
     (defun my-shell-setup ()
       "For Cygwin bash under Emacs 20"
       (setq comint-scroll-show-maximum-output 'this)
       (setq comint-completion-addsuffix t)
       (setq comint-eol-on-send t)
       (setq w32-quote-process-args ?\")
       (make-variable-buffer-local 'comint-completion-addsuffix))
    
    (setq shell-mode-hook 'my-shell-setup)
    (add-hook 'emacs-startup-hook 'jonnay-cygwin-shell)
    )
    
        6
  •  1
  •   mob    15 年前

    我喜欢 xemacs 从Cygwin安装程序获得的版本。开箱即用, 中高音 关键图到 很好,只要您需要,bash shell缓冲区就在那里。

        7
  •  1
  •   Laurynas Biveinis    15 年前

    第三种选择。我正在使用ntemacs+emacsw32+cygwin。这样,我就有了一个带有UNIX实用程序和bash shell的本机Windows应用程序。我从来没有用过这些文件 M-x whois 不过。我想不出这种设置有什么直接的缺点。

    以下是我的一些有趣的设置,基本上与 http://www.emacswiki.org/emacs/NTEmacsWithCygwin :

    (setq cygwin-root "c:/cygwin/")
    (setq private-bin (concat home-dir "/usr/bin"))
    (setq exec-path (cons private-bin exec-path))
    (setenv "PATH" (concat private-bin ";" (getenv "PATH")))
    ; Add Cygwin Emacs stuff
    (add-to-load-path "/usr/share/emacs/site-lisp")
    ; Add Cygwin Info pages
    (add-to-list 'Info-default-directory-list
                 (concat cygwin-root "usr/share/info/"))
    
    (setq shell-file-name "bash")
    (setenv "SHELL" shell-file-name)
    (setq explicit-shell-file-name shell-file-name)
    
    (setq w32shell-cygwin-bin "c:\\cygwin\\bin")
    (require 'w32shell)
    (w32shell-add-emacs)
    (w32shell-set-shell "cygwin")
    
        8
  •  1
  •   Android Eve    14 年前

    就像@justinhj一样,我在Windows上使用Emacs的本机版本,并结合gnu utils的(也是本机)端口(例如,binutils用于“字符串”等)。

    而我 总是 使用Cygwin作为外壳,在Emacs中或独立于Emacs。这样,当我从Windows切换到/从Linux/AIX/Solaris时,我保留了工作环境的外观。

    但不幸的是,当我将emacs从21.2升级到23.2时,emacs在默认情况下失去了识别'/cygwin/c'的能力。我现在必须研究一下,看看它为什么不再工作,我能做些什么来解决这个问题。我刚刚找到了以下信息,我会检查一下,看看是否有帮助。奇怪的是,现在我需要一个外部包来处理一些默认情况下一直存在的内容:

    不过,我更喜欢尽量减少使用额外的软件包。所以,我进一步检查了我的“新”emacs+cygwin的行为,似乎只需输入“/”就可以访问c:drive。

    这很酷-只有一个字符(斜线)而不是/cygdrive/c。但是,emacs中的shell会提示使用“/cygdrive/c”,这是一个有点令人困惑的区别。

        9
  •  0
  •   cayhorstmann    14 年前

    我研究了三个选项,都是有窗口(但不是x11)版本的Emacs。(终端对我来说太硬了。)这里是:

    1. 赛格温的至尊者
    2. EMACW32
    3. Windows的标准Emacs

    Cygwin的人想把你带到他们的emacs/xemac上。在 http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs 他们写道:“请注意,如果您使用来自cygwin安装程序的emacs或xemacs的cygwin端口,所有这些‘只起作用’”。

    除了XEMAC之外,一定要安装XEMCS SUMO软件包;否则M-X外壳将无法工作。不使用x11作为

    DISPLAY= xemacs &
    

    缺点:1)孩子,这是 古老的 Emacs当其他人都在使用Emacs23时,我真的不想继续这样做。2)我发现安装需要大量的x11 libs(即使您没有运行x11),这有点烦人。3)框外无CUA模式。

    emacsw32(http://ourcomments.org/emacs/emacsw32.html)有一个单击安装程序、一个m-x cygwin shell命令和CUA模式。但是CygwinShell中的标签完成使用了Windows路径,这让我疯狂。W32端口自2008年以来似乎没有得到积极的改进,但它们为安装程序提供了更新的Emacs版本。

    标准的Emacs for Windows似乎是最好的选择。从下载 http://ftp.gnu.org/pub/gnu/emacs/windows/ ,解压并启动 从Cygwin内部 . 然后,它拿起主目录等粘贴从 http://cygwin.com/faq/faq-nochunks.html faq.using.ntemacs 进入~/Emacs。重新启动emacs并运行m-x shell。一切按预期工作。

        10
  •  0
  •   Drew    13 年前

    fwiw,我使用正常的gnu emacs Windows版本,我使用cygwin。我从来没有遇到过任何问题,但在Emacs之外,我对Cygwin没有做太多的工作。哦,我用的是旧版本的cygwin(所有版本的emacs)。

    对于安装程序,我加载这两个文件,顺序如下:

        11
  •  0
  •   mihai    8 年前

    从源生成Emacs:

    - Download 最新的稳定版本(本文撰写时为24.5)。

    -解压缩并CD到Emacs文件夹中

    -按顺序运行这些步骤:

    $ ./autogen.sh
    $ ./configure --with-w32
    $ make
    $ make install
    

    -手动将emacs.exe从“emacs文件夹”/src复制到cygwin/bin

    运行Emacs:

    $ emacs&