在Windows上有很多方法可以将Cygwin与Emacs集成。 EmacsWiki显示了一些想法。以下是我找到的选项:
清楚说明“为什么”。以下是我希望Cygwin与Emacs一起使用的几个例子:
那么Emacs / Cygwin的哪个选项对其他人有效?还有,有没有人成功尝试过MSYS?
答案 0 :(得分:19)
在Cygwin中使用Emacs。不是XEmacs..Emacs。我只是从Cygwin安装所有内容并输入以下命令来运行Emacs:
XWin -multiwindow export DISPLAY=:0.0 emacs&
创建指向C驱动器(或任何其他驱动器)的链接也可能有所帮助:
ln -s /cygdrive/c /c
我已经使用了几个月,它总是运作良好。我经常使用TRAMP和颠覆等高级功能而没有任何问题。像cedet这样的所有高级软件包都能正常工作。
如果你没有注意到,我就是原版海报。经过我的所有研究和尝试,这个工作,我很高兴。干得好Cygwin!
另外,我建议不要在Emacs中使用shell。像top
这样的工具似乎不起作用。相反,使用MinTTY和屏幕。 Cygwin直接在MinTTY中为你提供ssh(你不需要putty)。最好的部分是我的许多Linux知识在Windows中无缝运行。
答案 1 :(得分:9)
最好的解决方案必须是cygwin emacs-w32。它使用win32 native gui,并使用cygswin POSIX系统。这意味着你有一个windows native gui程序和所有cygwin路径,shell工作。
安装非常简单:setup.exe - > emacs的-W32。 现在版本号是:24.2.93.1
太好了。
答案 2 :(得分:8)
第四种选择是在Cygwin的一个替代终端中运行emacs:(u)rxvt,mintty,xterm。这些都提供了比控制台更好的终端仿真,这意味着改进了emacs体验。
答案 3 :(得分:7)
我倾向于将emacs on windows的原生版本与gnu utils的(也是原生的)端口结合使用,这些端口比Cygwin端口快得多,但不完整。
然后我只使用一个cygwin窗口来显示bash shell和缺少的东西。
答案 4 :(得分:4)
我在root上安装了cygwin。它明确警告你反对它,但我没有看到任何不良影响。 (我从Steve Yegge那里得到了一条建议。)
我还安装了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)
)
答案 5 :(得分:1)
我喜欢您从Cygwin安装程序中获得的xemacs
版本。开箱即用, Alt 键映射到 Meta 就好了,只要你需要它就可以使用bash shell缓冲区。
答案 6 :(得分:1)
第三种选择。我正在使用NTEmacs + EmacsW32 + Cygwin。这样我就有了一个带有Unix实用程序和bash shell的本机Windows应用程序。 makefile工作,但我从未使用过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")
答案 7 :(得分:1)
就像@justinhj一样,我在windows上使用本机版本的emacs以及gnu utils的(也是原生的)端口(例如,用于'strings'等的binutils)。
我始终使用cygwin作为shell,在Emacs中或独立于Emacs。这样,我保留了外观&当我转回来时感觉我的工作环境从Windows到/从Linux / AIX / Solaris。
不幸的是,当我将我的Emacs从21.2升级到23.2时,默认情况下Emacs失去了识别'/ cygwin / c'的能力。我现在必须研究它,看看为什么它不再起作用,我能做些什么来解决这个问题。我刚刚找到以下信息,我会查看它是否有用。现在我需要一个外部软件包,而且默认情况下总是会出现这种情况,这似乎很奇怪:
但是,我更喜欢尽量减少使用额外的包。所以,我只是进一步检查了我的“新”Emacs + Cygwin的行为,似乎只需输入'/'即可访问C:驱动器。这很酷 - 只有一个字符(斜杠)而不是/ cygdrive / c。但是,Emacs中的shell会提示'/ cygdrive / c',这有点令人困惑。
答案 8 :(得分:0)
我调查了三个选项,都使用了窗口(但不是X11)版本的Emacs。 (终端对我来说太硬了。)这里有:
Cygwin的人们希望引导你进入他们的Emacs / XEmacs。在http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs中,他们写道“请注意,如果您使用Cygwin安装程序中的Emacs或XEmacs的Cygwin端口,则所有这些都”正常工作“。
除xemacs外,请务必安装xemacs-sumo软件包;否则M-x shell将无法正常工作。您可以在不使用X11作为
的情况下启动xemacsDISPLAY= xemacs &
缺点:1)男孩,这是一个旧 Emacs。当其他人都使用Emacs 23时,我真的不想继续使用它.2)我发现即使你没有运行X11,安装也需要一大堆X11库,这有点令人讨厌。 3)没有开箱即用的cua模式。
EmacsW32(http://ourcomments.org/Emacs/EmacsW32.html)具有一键安装程序,M-x cygwin-shell命令和CUA模式。但Cygwin shell中的制表符完成使用Windows路径,这让我发疯。自2008年以来,W32端口似乎没有得到积极改进,但它们为安装人员提供了最新的Emacs版本。
Windows的标准Emacs似乎是最好的选择。从http://ftp.gnu.org/pub/gnu/emacs/windows/下载,解压缩,然后从Cygwin内部启动 。然后它拿起主目录等。将http://cygwin.com/faq/faq-nochunks.html#faq.using.ntemacs的mumbo-jumbo粘贴到〜/ .emacs中。重新启动Emacs并运行M-x shell。一切都按预期工作。
答案 9 :(得分:0)
FWIW,我使用正常的GNU Emacs Windows版本,我使用Cygwin。我从来没有遇到任何问题,但我对Emacs以外的Cygwin并没有做太多的事情。哦,我正在使用旧版本的Cygwin(包含所有版本的Emacs)。
对于设置,我按顺序加载这两个文件:
答案 10 :(得分:0)
从源代码构建emacs:
- Download最新的稳定版本(撰写本文时为24.5)。
-Unzip并cd进emacs文件夹
- 按顺序运行这些步骤:
$ ./autogen.sh
$ ./configure --with-w32
$ make
$ make install
手动将emacs.exe从“emacs文件夹”/ src复制到cygwin / bin
-Run emacs:
$ emacs&
答案 11 :(得分:0)
我在Win32 27.1发行版中使用wsl2。我按照此处的说明进行操作:https://www.emacswiki.org/emacs/NTEmacsWithCygwin我所做的唯一更改是:
(let* ((cygwin-root "//wsl$/Ubuntu/")
Ubuntu是您的发行版。
我没有正确的/ mnt / c工作。