【问题标题】:How to get irb and rails console to work properly in gitbash?如何让 irb 和 rails 控制台在 gitbash 中正常工作?
【发布时间】:2016-11-03 02:34:29
【问题描述】:

我在 Windows 7 上使用 gitbash 版本 2.9.0,64 位。它使用 mintty 版本 2.0.3。

大多数时候 gitbash shell 似乎工作正常。您可以像使用任何 bash shell 一样使用箭头键等,它们按预期执行,能够滚动浏览先前的命令等。

但是,当使用 irb 或 rails console(运行 irb)时,它非常不稳定。向上箭头不是滚动先前的命令,而是将光标向上移动到屏幕上,并将可能是向上箭头控制代码的内容输入到输入缓冲区中。此外,irb 必须使用 ^C 而不是 ^D 退出。 ^D 除了进入输入缓冲区之外什么都不做(如果我输入 ^D 然后 ^C,它会因为 ^C 而退出 irb,然后因为 ^D 而退出 gitbash)。

我在其他关于此问题的报告中找不到太多内容,而且我发现的内容有些陈旧。我已经尝试了这篇文章中显示的解决方案:Backspace and arrow keys aren't working in IRB (Git Bash console) on windows machine,但它们根本没有改变行为。

有没有人找到解决这个问题的合法方法?

【问题讨论】:

  • ruby -S irb 呢?
  • @VonC 我已经偶然发现了ruby -S irb,但这也不起作用。它有完全相同的问题。从长远来看,我可能不得不求助于你的链接中更激烈的东西,但我不明白为什么 gitbash 不能工作。这似乎是一个正常的用例。我曾想过尝试找到适用于 Windows 的 gitbash 的 rlwrap 版本...
  • 与 Git for Windows v2.8.1 有同样的问题。运行$ ruby -v 时,它会识别已安装的Ruby:ruby 2.3.0p0 (2015-12-25 revision 53290) [x64-mingw32]。当点击irb 时,它很糟糕:Switch to inspect mode. 在标准 Windows 命令提示符(Windows + R + cmd)中没有问题。

标签: git-bash irb


【解决方案1】:

git bash 终端模拟器 (mintty) 并不能真正与 Windows 控制台程序相处。因此,您可能想要寻找运行控制台程序(例如 irb.cmd、python.exe 等)然后与 git bash 交互的 a wrapper。

具体来说,一旦你在 git bash 的 $PATH 中有 wintpy.exe 和 irb,你就可以这样设置别名

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

请注意,默认的 ruby​​ windows 安装程序附带了两个 irbs:一个很好的旧 bash 脚本 irb 和一个 windows 批处理脚本 irb.cmd。只有后者适用于 winpty 技巧。

【讨论】:

    【解决方案2】:

    非常感谢krim! 在学习了 add-.cmd-trick 之后,我尝试了相同的 rails 控制台 bin/rails c) 并以 ~/scripts/rails_ bash 脚本结束:

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

    所以我现在可以rails_ c 或rails_ db 等等。

    【讨论】:

      【解决方案3】:

      除了krim's answer,还可以放

      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/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-21
        • 2013-06-08
        • 1970-01-01
        相关资源
        最近更新 更多