我已经安装了 Cygwin 附带的 Emacs。我怎样才能让 Cygwin 在它自己的窗口中而不是从 Cygwin 的控制台窗口中运行 Emacs。
我喜欢在 Ubuntu 中,当我从终端运行 Emacs 时,它会打开 Emacs 的 GUI。
需要运行 X 服务器并安装 x 版本的 emacs,cygwin 包括两者(如果您在安装过程中选择了正确的软件包)。
X-server 可能在startx安装后使用该命令启动。
小智 5
非 X 解决方案是 cygwin 设置中编辑器下的 emacs-w32 软件包。它作为本机 Windows 应用程序运行 emacs,但仍然是纯 Cygwin。如果您直接从快捷方式启动它,您可能会喜欢 ~/.emacs 中的这些设置:
如果默认情况下 cygwin 不在您的 PATH 中,请将 cygwin 添加到路径和执行路径:
(setenv "PATH" (concat "/bin:/usr/bin:/usr/local/bin:" (getenv "PATH")))
(nconc exec-path '("/bin" "/usr/bin" "/usr/local/bin"))
如果您编译 java 或其他生成文件名(例如 C:\whatever)的东西,您可能首先需要编辑 /etc/fstab 并添加从 C:\ 到 /c 的挂载,例如:
C: /c ntfs 二进制文件,用户 1 1
然后将以 C: 开头的文件视为“神奇文件名”,并在 ~/.emacs 中将其转换为 Cygwin 样式文件名。在这里,我只是对第一个参数进行了两个正则表达式替换,并忽略其余的。有人可能应该为此创建一个 .el ,使其更加健壮并将其发布到http://www.emacswiki.org/emacs/ElispArea:
; 在 cygwin 中时,允许 C:\whatever 变成 /c/whatever
(defun cygwin-name-hook (操作 &rest args)
“将 Windows 文件名转换为 Cygwin 文件名。”
;; 处理所有操作相同
(让((第一个(汽车参数))
(禁止文件名处理程序
(cons 'cygwin-name-hook
(和(eq 禁止-文件名-操作操作)
抑制文件名处理程序)))
(禁止文件名操作操作))
(先setq(替换字符串中的正则表达式“^C:”“/c”第一个t))
(先setq(替换字符串中的正则表达式“\\\\”“/”第一个t))
(应用操作(cons 首先(cdr args)))))
(添加到列表 'file-name-handler-alist '("^[Cc]:" . cygwin-name-hook))
然后如果你在 mintty 中运行 emacs -nw ,你可能希望它识别更多的键,放入 ~/.emacs 中:
;***** 对于薄荷味 (定义键功能键映射“\e[1;5m”[(control ?-)]) (定义键功能键映射“\e[1;5k”[(control ?=)]) (定义键功能键映射“\e[1;5q”[(control ?1)]) (定义键功能键映射“\e[1;5s”[(control ?3)]) (定义键功能键映射“\e[1;5t”[(control ?4)]) (定义键功能键映射“\e[1;5u”[(control ?5)]) (定义键功能键映射“\e[1;5w”[(control ?7)]) (定义键功能键映射“\e[1;5x”[(control ?8)]) (定义键功能键映射“\e[1;5y”[(control ?9)]) (定义键功能键映射“\e[1;5p”[(control ?0)])