2012-04-12 44 views
1

我遵循How can I run Cygwin Bash Shell from within Emacs?这个问题的说明,并且我进一步添加了(setq explicit-bash-args '("--login" "-i"))命令,但是当我输入M-x shell时,emacs将继续显示dos提示符。在夏日我.emacs文件看起来是这样的:我想从本机窗口运行cygwin bash 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的学习曲线的底部!

+0

这是在你的.emacs文件中? – Patrick 2012-04-12 18:07:26

+1

正如帕特里克所说,你应该用'Mx cygwin-shell'开始shell# – kindahero 2012-04-12 18:24:18

+1

还要注意,你在'Mx eshell'上有emacs shell,这有点像bash,没有cygwin – Patrick 2012-04-12 22:27:01

回答

3

如果您从该问题实施了回答,请注意您必须执行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,当你得到它的工作,你会看到)。

+1

还有,如果你想学习emacs key快捷方式:http://refcards.com/docs/gildeas/gnu-emacs/emacs-refcard-a4.pdf – Patrick 2012-04-12 19:10:58

+0

这看起来像一个梦幻般的答案!我会尝试你明天说的,然后接受你的回答。对于有用的提示也是大量+1。 – user1098798 2012-04-12 21:50:02

相关问题