【问题标题】:Command line won't let me type, in the midst of a Rails Console session在 Rails 控制台会话中,命令行不允许我输入
【发布时间】:2019-05-31 06:31:45
【问题描述】:

在 Rails 控制台中,我输入了一个 Active Record 查询,它占用的空间超过了整个屏幕,所以它在滚动。我忘了打q 来摆脱它,而是打Ctrl-C。我遇到了一些错误,然后我得到了一些 Rails 控制台输出,然后我再次点击 ^C,然后我的提示出现了......

但是我什么都打不出来。嗯,实际上我可以打字,但我什么都看不到。

如果我输入exit,它将退出Rails 控制台并让我回到我的提示,然后如果我输入rails c,我会回到我的控制台。除了我刚才提到的输入 ,当我输入它们时,屏幕上都没有出现。

一旦我回到控制台,我仍然看不到我在输入什么。我必须打开一个新终端。

我在许多不同的场景中都发生过这种情况,可能都是我的反应以错误的方式退出进程(比如用 ^C 而不是 q),这只是我可以确定的第一个.

有谁知道如何解决这个问题而不必放弃我的工作并打开一个新终端?

【问题讨论】:

    标签: ruby-on-rails ruby bash terminal


    【解决方案1】:

    您输入的内容或控制台中查询的输出内容已禁用或重定向 shell 中的“回显”设置 - 因此,您仍然可以输入命令,但看不到它们.如果 Active Record 查询返回二进制数据,很可能二进制数据的某些字节恰好是一个转义码,它改变了你的回显设置。同样重要的是要意识到,如果您的回声设置发生了变化,其他设置也很可能也发生了变化。

    如果您在 shell 提示符下,您只需键入 unix 命令reset 即可恢复正常设置。但是,如果您仍在 Rails 控制台中,则需要输入:

    system 'reset'
    

    从 Ruby 运行该命令。

    【讨论】:

    • 感谢您的详细解答!如果我再次找到这个泡菜,我会把它标记为正确的。
    【解决方案2】:

    输入reset并回车,应该是固定的。

    【讨论】:

      猜你喜欢
      • 2017-06-20
      • 1970-01-01
      • 2013-01-25
      • 2012-02-05
      • 1970-01-01
      • 2012-04-17
      • 1970-01-01
      • 2012-01-30
      • 2012-06-21
      相关资源
      最近更新 更多