ruby-on-rails - 在 Rails 控制台会话中,命令行不允许我输入
问题描述
在 Rails 控制台中,我输入了一个 Active Record 查询,它占用的空间超过了整个屏幕,所以它在滚动。我忘了打来q
摆脱它,而是打Ctrl-C
。我遇到了一些错误,然后我得到了一些 Rails 控制台输出,然后我再次点击 ^C,然后我的提示出现了......
但是我什么都打不出来。嗯,实际上我可以打字,但我什么都看不到。
如果我键入exit
它将退出 Rails 控制台并让我回到我的提示符,然后如果我键入rails c
我会回到我的控制台。除了我刚才提到的输入内容,当我输入它们时,屏幕上都没有出现。
一旦我回到控制台内,我仍然看不到我在输入什么。我必须打开一个新终端。
我在许多不同的情况下都发生过这种情况,可能都是我的反应以错误的方式退出进程(比如用 ^C 而不是 q),这只是我可以确定的第一个。
有谁知道如何解决这个问题而不必放弃我的工作并打开一个新的终端?
解决方案
您输入的内容或控制台中查询的输出内容已禁用或重定向 shell 中的“echo”设置 - 因此,您仍然可以输入命令,但您看不到它们。如果 Active Record 查询返回二进制数据,很可能二进制数据的某些字节恰好是一个转义码,它改变了你的回显设置。同样重要的是要意识到,如果您的回声设置发生了变化,其他设置也很可能也发生了变化。
如果您在 shell 提示符下,您只需键入 unix 命令reset
即可恢复正常设置。但是,如果您仍在 Rails 控制台中,则需要输入:
system 'reset'
从 Ruby 运行该命令。
推荐阅读
- css - 如何使 flex 组件的底部固定到浏览器底部但顶部位置是动态的
- php - 验证数组中每个字符串的长度
- python - 如何抓取网站,我无法防止登录错误
- javascript - 无法使用来自 POST 的请求正文
- jwt - 绕过 auth0 中的登录页面以使用 Jest & Puppeteer 运行 e2e 测试
- javascript - 从节点模块在 VueJS 中提供 firebaseui.css 的问题
- javascript - 如何在 VSCode 中调试 ES6 + JSX Javascript 文件?
- sas - 在 SAS 中按顺序处理多个文件
- matlab - 将显式欧拉转换为隐式欧拉(通过定点迭代)
- elasticsearch - ids 查询中 id 的最大计数是多少?