在 cygwin 中运行 emacs

sta*_*orn 6 cygwin emacs

我已经安装了 Cygwin 附带的 Emacs。我怎样才能让 Cygwin 在它自己的窗口中而不是从 Cygwin 的控制台窗口中运行 Emacs。

我喜欢在 Ubuntu 中,当我从终端运行 Emacs 时,它会打开 Emacs 的 GUI。

Nif*_*fle 6

需要运行 X 服务器并安装 x 版本的 emacs,cygwin 包括两者(如果您在安装过程中选择了正确的软件包)。

X-server 可能在startx安装后使用该命令启动。

  • @klw - No xemacs 是 emacs 的不同风格(另一个非常相似的程序)。它不是包含“X”库的 emacs。命名有点混乱。 (2认同)

小智 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)])