我在 Windows XP 上运行 EmacsW32。
我想知道在执行时如何告诉 Emacs 启动 Cygwin shell M-x shell
。现在它启动 Windows cmd shell,我必须手动启动 Cygwin shell。
我知道这是可以做到的,因为在重新安装 Windows 之前我已经成功做到了。但现在我找不到说明。
答案1
这似乎有您正在寻找的信息: http://www.khngai.com/emacs/cygwin.php
具体来说,在文件中添加以下内容.emacs
:
(add-hook 'comint-output-filter-functions
'shell-strip-ctrl-m nil t)
(add-hook 'comint-output-filter-functions
'comint-watch-for-password-prompt nil t)
(setq explicit-shell-file-name "bash.exe")
;; For subprocesses invoked via the shell
;; (e.g., "shell -c command")
(setq shell-file-name explicit-shell-file-name)
答案2
我发现更简单的替代方法是设置这样的环境变量:
variable ESHELL, value c:\ProgramFiles\cygwin\bin\bash.exe
(当然也可以是安装 Cygwin 的地方)