在 Emacs 中运行 Cygwin Inferor Shell

在 Emacs 中运行 Cygwin Inferor Shell

我在跑步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 会导致严重的错误。

相关内容