Emacs中的cygwin shell - 输出搞砸了?

时间:2010-10-02 23:53:28

标签: emacs cygwin

我在这里看到了如何启动cygwin shell的答案。但是,cygwin shell输出搞砸了。

(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"))

这是shell的示例输出

]0;~
seth@seth ~
$ cd ~
]0;~
seth@seth ~
$ dir
]0;~
seth@seth ~
可以看出,输出被搞砸了。我该如何解决这个问题?

编辑:我刚注意到^ [] 0总是出现在每个命令的末尾\否则输出文本工作正常。无论如何要摆脱这个结局?

4 个答案:

答案 0 :(得分:4)

好吧,我想通了。在〜/ .bashrc中,我添加了

export PS1="\e[0;31m[\u@\h \W]\$ \e[m "

这会使单线提示红色(在原始的cygwin提示中,这对于黄色很容易对黄色!)

http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/

此外,您必须确保不使用dos结尾。要将dos结尾转换为unix,请键入C-x RET f unix并保存或放入.emacs文件

(set-buffer-file-coding-system 'unix)

答案 1 :(得分:2)

查看EmacsW32。有了它,您的.emacs配置变为

  (setq w32shell-cygwin-bin "c:\\cygwin\\bin")
  (require 'w32shell)
  (w32shell-add-emacs)
  (w32shell-set-shell "cygwin")

一切正常。

答案 2 :(得分:2)

在Emacs 24.2中,我不得不将Seth的答案(2)中的export PS1=...行放在〜/ .emacs_bash而不是〜/ .bashrc中。

答案 3 :(得分:1)

使用

export PS1="\e[0;32m\u@\h\e[m \e[0;33m\w\e[m\n\$ "

如果您想保留原始颜色和格式。