我在跑步Cygwin 作为 Emacs 中的次级 Shell。这是我遵循的基本步骤:
- Cu Mx shell(将缓冲区重命名为 cygwin)
- 光盘\ cygwin
- cygwin脚本
以下是我所看到的:
目录:\cygwin>cygwin 赛格威 ]0;~ [32muser1@mymachine [33m~[0m $
如果我在 emacs 之外运行 cygwin.bat,它会给我:
用户1@mymachine〜 $
我几乎可以处理多余的字符,但是当我尝试 ls 时,结果如下:
$ ls bash:$‘ls\r’:未找到命令
我肯定做错了什么。有什么建议吗?
编辑:Mx ansi-color-for-comint-mode-on 修复了提示,但系统仍然无法解码 ls 命令。
答案1
以下是针对 unix 换行垃圾的修复: http://osdir.com/ml/emacs.windows/2007-12/msg00007.html
基本上,只需运行:
Mx 设置缓冲区进程编码系统
带有 'undedeced-unix 和 'undedeced-unix 参数。
另外,将提示更改为:
导出 PS1="\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$"
默认的 PS1 会导致严重的错误。