如何使IRB和Rails控制台在Gitbash中正常工作



我在Windows 7上使用Gitbash Ver 2.9.0,64位。

大多数时候,吉特巴什·贝壳(Gitbash Shell)似乎正常工作。您可以使用箭头键,例如任何bash shell,并且它们按预期执行,能够滚动浏览先验命令等。

但是,当使用irbrails console(运行irb)时,它非常薄弱。UP Arrow没有将光标移到屏幕上,而不是滚动先前的命令,而是将箭头控制代码进入输入缓冲区中的内容。另外,必须使用 ^c而不是 ^d退出irb。^d除了进入输入缓冲区(如果我键入 ^d then ^c,它将退出 irb),因为 ^c,由于 ^c而退出gitbash,因为 ^d)。

我找不到有关此问题的其他报告的太多,而我发现的几乎没有老化。我已经尝试了这篇文章中显示的解决方案:Backspace和Arrow键在Windows Machine上没有在IRB(Git Bash Console)中工作,但它们根本没有更改该行为。

有人找到了解决此问题的合法解决方案吗?

git bash终端模拟器(mintty)并没有真正与Windows Console程序相处。因此,您可能需要寻找一个运行控制台程序的包装器(例如irb.cmdpython.exe等),然后与Git Bash接口。

具体地,一旦您在git bash的$PATH中拥有wintpy.exeirb,就可以将别名设置为这样的别名

$ alias irb='winpty "$(which irb).cmd"'

请注意,有两个irb S带有默认的Ruby Windows安装程序运输:一个良好的旧bash脚本irb和一个Windows批处理脚本irb.cmd。只有后者使用winpty技巧对我有用。

非常感谢 krim !在学习了添加-.cmd -Trick后,我尝试了Rails Console bin/rails c),并以~/scripts/rails_ bash脚本结尾:

#!/usr/bin/bash
winpty rails.bat "$@"

所以我现在可以做rails_ crails_ db等。

除了克里姆的答案外,您还可以放置

alias irb='winpty "$(which irb).cmd"'
alias rails='winpty "$(which rails).bat"'

在文本文件中,并将其保存为 .bashrc 在您的主目录%homepath%中。那么,每次启动git bash时,您都不必在控制台中键入它。

来源:在https://fool-dev.com/switch-to-inspect-mode-on-gitbash-in-windows/

上发表评论

最新更新