我在这里看到了如何启动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总是出现在每个命令的末尾\否则输出文本工作正常。无论如何要摆脱这个结局?
答案 0 :(得分:4)
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\$ "
如果您想保留原始颜色和格式。