1

我已按照如何从 Emacs 中运行 Cygwin Bash Shell 中的说明进行操作?这个问题,我更进一步并添加了(setq explicit-bash-args '("--login" "-i"))命令,但是当我键入时,emacs 继续只显示 dos 提示符M-x shell。总而言之,我的 .emacs 文件如下所示:

(defun cygwin-shell ()
  "Run cygwin bash in shell mode."
  (interactive)
  (let ((explicit-shell-file-name "C:/cygwin/bin/bash"))
    (call-interactively 'shell)))
(setq explicit-bash-args '("--login" "-i"))`

请对答案保持温和,因为我正处于著名的垂直 emacs 学习曲线的底部!

4

1 回答 1

4

如果您实现了该问题的答案,请注意您必须执行M-x cygwin-shell启动 bash。如果您想将它用于M-x shell您需要调用的所有内容

(setq explicit-shell-file-name "C:/cygwin/bin/bash")

既然你说你正在学习,这里有一些尝试时的提示。

  • 键入C-x C-f ~/.emacs以在您的用户路径中打开您的 .emacs 文件。
  • 最后在上面输入你的函数
  • M-x load-file [RET] .emacs:加载缓冲区(无需重新启动 emacs)
  • C-h a: 如果你对一些具体的动作感兴趣,可以查一下
  • C-h v [RET] variable:可以检查变量,explicit-bash-args例如检查值

而且,顺便说一句,我不确定“--login -i”是做什么的,但是有人在评论中说你应该有这样的“ls”可以工作。如果 PATH 环境变量中有 cygwin bin 路径,bash 无论如何都会找到 ls 。也不需要转义路径变量,这是由 bash 处理的(echo $PATH当你让它工作时做一个 in bash,你会看到)。

于 2012-04-12T18:18:28.003 回答