我需要一个可维护的MSYS shell。这是我目前的困境:

默认的rxvt.exe有一个滚动条并且可以复制和粘贴,但不会将控制字符或箭头键发送到shell中正在运行的程序(如解释器/调试器)。当使用Haskell解释器ghci时,这是一个真正的刺。

另一个shell sh.exe处理控制字符(或至少其中一些),但没有滚动条或复制和粘贴。

rxvt在输出缓冲方面也存在(相对)更多问题

我有什么选择?替换shell需要知道msys吗?我想要的只是一个理智的环境,可以使用Haskell(ghc),C ++(gcc)和基本工具链(make和what not)。如果它不涉及疯狂的恶作剧,我愿意编译一个shell。

有帮助吗?

解决方案

如果您正在使用更好的终端模拟器,我已成功使用 http://sourceforge.net /项目/控制台/

它取代了标准的Windows命令窗口。您可以设置MSYS或Cygwin,或任何您想要的外壳支持它。

其他提示

检查 http://code.google.com/p/mintty/ 。那个怎么样?我发现它绝对有用。还是puttycyg(较老的尝试)?

来自msys shell:

mingw-get install mintty
mintty

你混淆了“shell”和“终端仿真器”。 sh.exe 是前者; rxvt是后者。 (请注意,在Windows下,您可以在没有终端模拟器的情况下进行操作,因为Windows会为任何控制台程序(例如sh.exe)创建一个(“控制台窗口”),如果它尚未在其中运行)

使用PowerShell代替旧cmd。然后像这样运行

C:\msys64\usr\bin\sh.exe --login -i

我在Winows 8.1上使用MSYS2和Haskell Platform 2014.2.0.0进行了测试。使用GHCi没有问题。所有箭头键和其他键都按预期工作。

另外,我无法让Console2在Windows8上正常工作,如其他答案所示。

这个问题有点陈旧;现在,MSYS2中默认包含 mintty 。具有讽刺意味的是,我无法访问GHCi中的命令历史记录 - 按下将移动光标,并将 \ ESC 代码放入输入缓冲区 - 这是由修复的从MSYS2 shell中删除 mintty pacman -R mintty )。

我没有使用msys的东西,但它应该足以使用除rxvt以外的东西并在其中运行sh.exe。现在,如果你正在使用控制字符,你可能需要确保你使用的任何东西支持你需要的东西(即vt100仿真)。

一条路线可能是使用cygwin。我通常使用无根X服务器运行cygwin,并在其上运行xterm。到目前为止它已经非常好了,我没有遇到很多问题。我知道箭头键和这样的工作就好了。

帮自己一个忙,并使用适当的Cygwin而不是msys的旧Cygwin版本的非维护分叉。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top