这里完全缺乏直觉。首先我以为我只在从编辑器复制和粘贴代码时发生。不幸的是,它更常见。我唯一要做的就是尝试在当前输入中间的某个地方插入更多代码或修改它。
预期行为:
- 修改输入没有副作用。
实际发生的情况:
- 修改输入时经常会搞砸。
- 如果发生这种情况,每次按键都会复制并插入当前输入以及按下的字符。
重要提示:
终端中的编码设置为 UTF-8
问题在不同的模拟器上仍然存在(终结者,gnome-terminal)
使用不同的 Ruby 运行时控制台(IRB、Pry)时问题仍然存在
问题似乎与 Ruby 运行时有关,而不是 Linux shell(我猜......)
问题出现的原因是:
- 自系统安装。没有出现在我的 MacBook Air 上
系统:
- ArchLinux,尽管同事报告说他的 MacBook Pro 上发生了同样的事情。
如何重现(对我有用):
- 开放式导轨控制台
- 键入示例代码: Shift.where(name: "som").where(name: "dom").where(name: "pom")
- 导航光标以修改第一个 where 语句。
- 将“som”更改为“SOM”
- 应该看到它打破
- 反复按随机键可以看到它更破。
图片:
- 良好的输入
现在我将导航到第一个 where 语句以将“som”更改为大写“SOM”
我基本上浏览了我的光标并按下了 SHIFT+S、SHIFT+O、SHIFT+M
希望它足够清楚:-) 谢谢!
编辑1:
尝试使用 zsh 而不是 bash,没有帮助
禁用弹簧宝石,没有帮助
编辑2:
reddit 上的人们建议我应该检查是否有任何 Ruby readline 警告,例如。“未安装 Readline”。它们都没有出现在任何地方。还重新安装了 ruby 2.4.1,在我的情况下似乎不是问题。
编辑 3:
我无法在不同的 Rails 项目中重现该问题。问题出现在 Rails 5.1.1上,同时5.0.3完美运行。Rails 本身(或者更确切地说是它的宝石之一)是否可能是原因?

