我已经安装了 Cygwin 附带的 Emacs。如何让 Cygwin 在其自己的窗口中运行 Emacs,而不是从 Cygwin 的控制台窗口运行。
我喜欢在 Ubuntu 中,当我从终端运行 Emacs 时,它会打开 Emacs 的 GUI。
答案1
需要运行 X 服务器并安装 x 版本的 emacs,cygwin 包含这两者(如果您在安装过程中选择了正确的软件包)。
startx
一旦安装完成,X-server 可能就会使用该命令启动。
答案2
非 X 解决方案是 cygwin 设置中 Editors 下的 emacs-w32 包。它将 emacs 作为原生 Windows 应用程序运行,但仍然是纯 Cygwin。如果您直接从快捷方式启动它,您可能会喜欢 ~/.emacs 中的这些设置:
如果 cygwin 默认不在您的 PATH 中,则将 cygwin 添加到路径并执行路径:
(setenv "PATH" (concat "/bin:/usr/bin:/usr/local/bin:" (getenv "PATH"))) (nconc 执行路径'("/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 参数) “将 Windows 文件名转换为 Cygwin 文件名。” ;; 以相同的方式处理所有操作 (让((第一个(汽车参数)) (禁止文件名处理程序 (缺点'cygwin-name-hook (和(eq 抑制文件名操作操作) 禁止文件名处理程序))) (禁止文件名操作操作)) (setq first(替换字符串中的正则表达式“^C:”“/c”first t)) (setq first(替换字符串中的正则表达式“\\\\”“/” first t)) (应用操作(cons first(cdr args)))) (添加到列表'文件名处理程序列表'("^[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)])