【问题标题】:I want to run the cygwin bash shell from native windows emacs app我想从本机 windows emacs 应用程序运行 cygwin bash shell
【发布时间】:2012-04-25 02:48:29
【问题描述】:

我已按照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 学习曲线的底部!

【问题讨论】:

  • 正如帕特里克所说,你应该通过M-x cygwin-shell启动shell
  • 还要注意你在M-x eshell 有emacs shell,有点像bash,没有cygwin

标签: emacs cygwin


【解决方案1】:

如果您实现了该问题的答案,请注意您必须执行 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,你会看到)。

【讨论】:

猜你喜欢
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-30
  • 2011-11-22
  • 2013-03-22
相关资源
最近更新 更多