首页 > 解决方案 > 在 Rails 控制台会话中,命令行不允许我输入

问题描述

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

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

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

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

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

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

标签: ruby-on-railsrubybashterminal

解决方案


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

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

system 'reset'

从 Ruby 运行该命令。


推荐阅读