我想从本机windows emacs app运行cygwin bash shell

时间:2012-04-12 17:49:01

标签: emacs cygwin

我已经按照How can I run Cygwin Bash Shell from within Emacs?这个问题的说明进行了操作,我已经进一步添加了(setq explicit-bash-args '("--login" "-i"))命令,但是当我输入M-x shell时,emacs继续只显示dos提示符。总之,我的.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学习曲线的底部!

1 个答案:

答案 0 :(得分: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处理的(当你使它运行时你会看到bash中的echo $PATH)。

相关问题